80X86微机原理与接口技术 教学课件 作者 喻宗泉 第4-6章第5章.pptVIP

  • 3
  • 0
  • 约2.93万字
  • 约 234页
  • 2019-10-03 发布于广东
  • 举报

80X86微机原理与接口技术 教学课件 作者 喻宗泉 第4-6章第5章.ppt

5.4.5 控制转移指令 1.无条件转移指令 表5-12 无条件转移指令 注:IP、CS入、出栈操作如下: 1) 无条件转移指令JMP 格式:JMP 转移目的标号 功能:让程序无条件地转移到指令中给出的存储器目标地址。按照目标地址所在位置可以分为4种。 (1) 段内直接转移。 格式:JMP DISP8/16 目标地址与JMP指令在同一代码段内,称为段内转移,这时只需给IP赋予新值;目标地址直接由8/16位位移量DISP8/16给出,称为直接转移。直接转移还可以进一步划分。8位位移量给出目标地址的称为短程转移,转移范围为-128~+127字节;16位移量给出目标地址的称为近程转移,转移范围为-32 767~+32 768字节。格式为JMP DISP8的操作结果是IP+DISP8→IP。格式为JMP DISP16的操作结果是IP+DISP16→IP。DISP8/16既可直接以十六进制数形式出现,也可以用符号地址表示,短程转移使用“SHORT”,近程转移使用“NEAR”。如果不注明这些关键字,计算机将自动作出适当的处理。 【例5-48】 执行JMP 2500H指令后程序转移到目标位移量为2500H单元中执行,2500H+IP→IP。在助记符JMP后面出现的不是立即数[2500H],而是偏移地址2500H。 【例5-49】 JMP ADDR指令是段内直接近程转移格式,目标标号可以使用符号地址,无条件转移到标号为ADDR的那条指令执行。如:? JMP XXX ;无条件转移到标号为XXX的那条指令执行 ADD CX, 0205H ;本条指令被跳过 XXX:MOV AX, BX 【例5-30】 设AX=0607H,即AH=06H,AL=07H,BL=02H,则执行 AAD DIV BL; 后的结果如何? 解 第1条指令执行后,AX=0043H,PF=0(AL中奇数个1),SF=0,ZF=0;第2条指令执行后,AX=0121H,对标志位无影响。 5.4.3 逻辑运算和移位循环指令 表5-10 逻辑运算和移位循环指令 1.逻辑运算指令 1) 逻辑“与”指令AND 格式:AND DST,SRC 功能:DST←DST∧SRC。目的操作数限于使用8/16位通用寄存器、存储单元,源操作数允许使用8/16位通用寄存器、存储单元和立即数,但目的操作数和源操作数不允许同时为存储器操作数。指令影响PF、SF和ZF标志位,且使CF=0,OF=0,不影响AF。 【例5-31】 AND AL,AL有什么作用? 解 功能为AL∧AL→AL,所以AL内容维持不变。 (1) 进行了一次运算,可以为以后的转移指令提供依据,指令需时间3T=3×125 μs=375 μs(设8086使用时钟频率8 MHz)。 (2) 使标志位CF清零。 2) 逻辑“或”指令OR 格式:OR DST,SRC 功能:DST←DST∧SRC。对DST和SRC的限制及标志位影响同于“与”指令。 【例5-32】 OR AL,80H的作用为将AL的 D7位置1。 3) 逻辑“异或”指令XOR 格式:XOR DST,SRC 功能:DST←DST⊕SRC。对DST和SRC的限制及标志位影响同于“与”指令。XOR可用于使寄存器清零。如XOR BX,BX能使BX=0000H。 【例5-33】 编程使某存储单元(位于DS段,用BX寻址)清零,要求使用异或指令。 解 因为XOR[BX],[BX]是非法的,所以程序如下: XOR AX,AX MOV WORD PTR[BX],AX 【例5-34】 写出5条能使SI清零的指令。 解 XOR SI,SI;MOV SI,0000H;AND SI,0000H;LEA SI,[0000H];SUB SI,SI。 【例5-35】 写出5条能使CF清零但又不影响寄存器内容的指令。 解 AND AX,AX;OR AX,AX;XOR AX,00H;TEST AX,00H;TEST AX,AX。 4) 求反指令NOT 格式:NOT DST 功能:DST←DST,将DST 所有位逐位求反。DST为8/16位通用或存储器操作数

文档评论(0)

1亿VIP精品文档

相关文档