第3章微处理器及其系统-4-1_第1页
第3章微处理器及其系统-4-1_第2页
第3章微处理器及其系统-4-1_第3页
第3章微处理器及其系统-4-1_第4页
第3章微处理器及其系统-4-1_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、3.4.4指令分类、指令分类、一个数据传输指令、两个算术运算指令、三个逻辑运算和移位周期指令、四个系列运算指令、五个程序控制指令、六个处理器控制指令、一个数据传输指令、一个通用数据传输、两个目标地址传输、三个标志位传输和四个输入输出数据传输。数据传输指令可以完成寄存器、寄存器和存储器以及寄存器和输入输出端口之间的字节或字传输。它们的共同特点如下:这种教学可分为四种类型。特性:不影响标志寄存器,1。通用数据传输指令,MOV目标操作数,源操作数,函数:(源)(目标),movs,dxmovax,bxmovdi,axmovcx,1000hmovdx,5040h movword ptrbx2000h,1

2、2ABH,例如:1)源操作不允许目标操作数是一个立即数,其他操作数是同一个源。源和目标不能同时是内存操作数。2)源和目标操作数类型必须匹配,例如,MOV字节PTR BX,12H 3)立即数不能写入段寄存器,例如,MOV AX,2000 MOV DS,AX 4)所有以CS为目标的传输指令都是非法的,5)标志位不受影响,描述:推源,函数:推,推轴推字PTR SI 4,弹出目的,函数:堆栈,弹出轴弹出字PTR SI 5,例如:例如,1)指令的操作数必须是16位。2)操作数可以是寄存器或存储器,但不能是立即数。3)一个字不能从栈顶弹出到CS 4)PUSH和POP指令一般成对出现在程序中5)PUSH指令

3、的操作方向是从高地址到低地址,而POP指令的操作方向正好相反。堆栈操作描述:XCHG目的,源,函数:该指令交换源和目标的值。1)两个操作数之一必须在寄存器中。2)数据可以在寄存器之间或寄存器与存储器之间交换。两个存储单元之间不允许交换。3)不允许分段注册;4)两个操作数长度相等,可以是字或字节。描述:示例:1 XCHG AL,BL;CX BX XCHG 2的A1和B1之间的字节交换;BX和CX之间的单词交换是3xchg2530h,CX被设置为(DS)2000H,(22530H)88H,(22531H)66H。指令执行后,(CX)=6688H,XLAT,一个编码表示被转换成另一个编码表示。它可以

4、将累加器中的一个值转换成存储表中的一个值,一般用于实现编码系统的转换。XLAT指令需要在使用前将编码表的第一个地址加载到BX,并将表的索引值加载到a1,索引值为0-255。当指令被执行时,BX和A1中的值将被相加,并且所获得的值将被作为地址,然后对应于该地址的单元中的值将被作为A1。假设(DS)=A000H表的起始地址是ASCII码,在A0010H表中数字为0-9、a000: 0010 30h、31h、a000: 0016 36h,例如MOV BX、0010H MOV AL、06h xlat、AL、36h,可用于传输操作数的段地址或偏移地址包括以下三个指令:1)、取有效地址指令2)、加载指向d

5、s和另一个寄存器指令的地址指针3)、加载指向es和另一个寄存器指令的地址指针、LEA目的、源和功能:将源操作数的偏移地址转移到目的操作数。LEA指令中的目标操作数必须是16位通用存储器。例如:LEA SP,0428H使堆栈指针成为SP 0482H LEABX。如果(BX)=1000小时和(二进制)=0200小时,在BX二进制6指令执行之前,(二进制)=1206小时,在指令执行之后,LDS目的,源,函数:将源操作数指定的4个连续字节转移到目标操作数和目标操作数。在传输期间,低2字节加载目标操作数,高2字节加载直接序列。例如:LDS DI,2130H,例如,LDS DI,1200H MOV AX,

6、DI,12h,34h,00H,60h,1200H,数据段1,(1) LAHF函数:将标志寄存器FR的低字节传送到AH (2) SAHF函数:将AH寄存器的内容传送到标志寄存器FR的低字节(3) PUSHF函数:首先将SP的值减少2,然后将16位的FR放在堆栈上(4) POPF函数:将当前堆栈顶部和第二个堆栈顶部的数据弹出到FR,然后将SP的值加上2,指向新的堆栈顶部3。标志位传送指令,1)上述指令的累加器可以是A1或AX,2)当端口地址在0255之间时,可以使用立即寻址模式,否则,应该先将端口地址放入DX,然后再使用间接寻址模式。(1)输入累加器,端口地址(2)输出端口地址,累加器,例如:输入

7、A1,20H MOV DX,0AB4H;请注意,字母不能是第一个输入输出数据传输指令,描述:两个算术运算指令,运算数据类型及其对标志位的影响,(1)数据类型,(2)运算对标志位的影响,其对标志位的影响:当无符号数运算结果溢出时,所有算术运算指令都会影响状态标志CF,PF,AF,ZF,SF和OF,CF=1当有符号数运算发生溢出时, 当运算结果的低8位为偶数或零时,PF=1如果第三位在加法中携带第四位或在减法中从第四位借用第三位,AF=1如果运算结果为0,ZF=1如果运算结果为负,SF=1,1加法指令将目标操作数相加。 源操作数源操作数目标操作数模数转换器目标操作数源操作数目标操作数目标操作数CF

8、目标操作数影响六个标志A,C,O,P,S和Z INC目标操作数目标操作数1目标操作数影响五个标志A,O,P,S和Z,1)加法A1,50H将A1和50H相加,并将结果放入AL 2)添加AX,BX 2000H;将BX 2000小时和BX 2001小时引用的两个单位的内容添加到AX的内容中,并将结果放入AX中。3)INC AL;4)将CX公司添加到美国航空公司的内容中;添加CX的内容,例如,MOV国际标准化组织,2000小时;MOV迪,3000小时;MOV斧,西;增加斧,去离子;MOV西,斧;MOV斧,国际标准化组织2;模数转换器AX,DI 2;MOV西2,斧头;例如:两个四字节的无符号数相加:这两

9、个数分别放在2000小时和3000小时开始的存储单元中,低位在前,高位在后,结果放在2000小时:2开始的存储单元中。减法指令,SUB目标操作数,源操作数目标操作数-源操作数目标操作数SBB目标操作数,源操作数目标操作数-源操作数-CF目标操作数DEC目标操作数目标操作数-1目标操作数NEG目标操作数0目标操作数影响6个标志位A,C,O,P,S和Z,SUB BX,CX SUB BP 2,CL SBB AX,2030H DEC AX DEC BL,例如,如果(AL)解决方案:9AH-65H=9AH (-65H)注意:9AH本身是负补码-65H补码=10011100 溢出,无借用,无借用,标志位:

10、SF=0,ZF=0,AF=0,PF=1,CF=0解决方案:执行指令后,FFFFFFH-6780H 1=0000-6780H=9880H,(BX)=9880H标志位:SF=1 CF=1,OF=0,ZF=0,PF=0,AF=0,比较指令的目标操作数、源操作数和CMP ax将ax的内容与2000H的内容进行比较,执行两个数的减法运算,但不返回减法结果,只影响标志位。它可以作为条件转移指令的条件。(1)两种无符号数比较判断方法目的=来源:ZF=1目的来源:ZF=0,CF=0目的来源:ZF=0,CF=1,(2)有符号数比较目的=来源:ZF=1目的来源:ZF=0 OF=0 SF=0或of=1 SF=3。乘

11、法指令,Mul乘法器无符号乘法字节乘法:被乘数默认为A1,乘积存储在AX字中进行乘法运算;被乘数默认为AX,乘积存储在DX/AX IMUL乘法器中,用于带符号乘法。IMUL指令将操作数视为有符号数。如果操作数在运算过程中为负,则操作数应先进行补码,然后运算后对结果进行补码。乘法指令影响标志位CF和OF,其余四个标志位没有意义。,4。除法指令,DIV除数无符号除法字节除法:被除数默认为AX,商存储在AL中,余数存储在AH字除法中:被除数默认为DX/AX,商存储在AX中,余数存储在DX IDIV除数有符号除法中,余数符号与被除数一致。注意:该指令是隐式寻址模式,要求除数是除数字长的两倍。当商超出范

12、围时(即除法溢出),将自动产生0型中断。乘法和除法汇总、乘法运算、除法运算、字节转换指令,CBW将A1寄存器中的符号位扩展到AH :当AL=80H时,AH=执行CBW指令后的FFH。CWD将AX寄存器中的符号位扩展到DX。当AX=8000H时,DX=执行CWD指令后的FFFFH。6。十进制调整指令,十进制运算方法:先进行二进制运算,然后进行十进制调整。为什么使用BCD代码调整?示例:8 715。由组合的BCD码表示,运算结果为:如果一个BCD码对应的4位二进制数超过9,则应补充一个6,生成进位进行调整。9 918,由组合的BCD码表示的操作过程是:当操作BCD码时,只要自动对焦变为1,就应该调

13、整低6位。结果是12,调整原则,当一个4位二进制码对应的BCD码大于9时,加6进行调整;无论何时在低4位产生进位,都通过增加6来进行调整。当对多个字节执行BCD码操作时,如果低字节产生对高字节的进位,则它是CF1,而当一个字节的低4位产生对高4位的进位时,它是AF1。十进制调整指令将根据CF和AF的值判断是否进行“加6调整”,并进行具体的调整操作。然后,程序对高位字节执行运算,然后执行十进制调整。BCD代码调整指令,共6条,均为隐式寻址方式,隐式操作数为AL或AL,AH;不能单独使用,但应紧跟在相应的算术运算指令前后;执行结果是由压缩的BCD码或扩展的BCD码表示的十进制数。DAA加法的压缩后

14、的BDC码调整指令对A1中的压缩后的BDC码进行加法和校正,而AAA加法的未压缩后的BDC码调整指令对A1中的未压缩后的BCD码进行加法和校正,并将其携带到AH中。DAS减法的压缩BDC码调整指令用于自动机中压缩BDC码的减法校正。AAS减法的未压缩BCD码调整指令用于AL中未压缩BCD码的减法校正。从AH中减去借用位,清除AL的高4位,AAM乘法的未压缩BDC码调整指令为AL/10。未压缩BDC代码调整指令AH * 10alal0ah、movax、08h movbl、09h addal、blaaa、用于商AH余数AL AAD除法;(铝)=08H(BL)=09H;(铝)=11H(AX)=0107,(铝)=7DH(A1)=77,十进制算术运算示例1,实现十进制数乘法的程序68=48,06movbl,08 mov bl;AAM十进制调整,使(AX)=0408,例3的十进制算术运算,程序实现十进制数除法482=24,movax,0408h movbl,02h aad设计资料表格;AAM将商转换成

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论