第四篇 8086指令系统-4.pptVIP

  • 7
  • 0
  • 约1.46万字
  • 约 71页
  • 2017-06-03 发布于湖北
  • 举报
逻辑运算指令包括逻辑非(NOT)、逻辑与(AND)、逻辑测试(TEST)、逻辑 或(OR)和逻辑异或(XOR)指令。这些指令的操作数可以是8位、16位,运算按位进行。对操作数的要求与MOV指令相同。指令格式如表所示: (2)SHR (Shift logical right )逻辑右移指令 格式: SHR dest ,cnt ;逻辑右移指令, B/W 执行操作:相当于无符号数的÷2功能。 SHR指令操作示意图如下图所示: dest : 寄存器、存储器寻址方式。 dest CF 0 指令格式举例: SHR BL , 1 SHR AX , CL SHR BYTE PTR [DI+BP],1 SHR WORD PTR BLOCK ,CL (3)SAR (Shift arithmetic right )算术右移指令 格式: SAR dest ,cnt ;算术右移指令, B/W 执行操作:相当于带符号数的÷2功能,对负数向下舍入 IDIV指令对负数向上舍入。(下页解释) SAR指令操作示意图如下图所示:最高位保持不变 dset 指令格式举例: SAR AL , 1 SHR DL , CL SHR WORD PTR TABLE[SI],1 SHR BYTE PTR STATUS ,CL dest : 寄存器、存储器寻址方式。 用SAR指令与用IDIV指令做除法的区别: 用SAR指令做除法(对负数向下舍入): MOV AX , 81H ; (AX) = -127 SAR AX , 1 ; (AX)= - 64 用IDIV指令做除法(IDIV指令对负数向上舍入) : MOV AX , 81H ;(AX)= -127 MOV CL , 2 IDIV CL ;(AL)= -63 ,(AH)= -1 应用举例: (BX)=84F0H (1) 若(BX)无符号数,求(BX)/2 SHR BX,1 ; (BX)=4278 CF=0,OF=1,SF=0,ZF=0 (2) 若(BX)带符号数,求(BX)/4 MOV CL,02H 或SAR BX,1 SAR BX,CL SAR BX,1 ; CF=0,OF无意义, SF=1,ZF=0 (3)每四位一组存入堆栈(字操作) (BX)=84F0H (SS)=3000H (SP)=1000H MOV CH,4 MOV CL,4 NE : ROL BX,CL MOV AX,BX AND AX,000FH PUSH AX DEC CH JNZ,NE … (BX)=84F0H (AX)=84F0H (AX)=0000H (30FF4H)=0000H ROL BX,CL MOV AX,BX AND AX,000FH PUSH AX (CH)=1 (BX)=084FH (AX)=084FH (AX)=000FH (30FF8H)=000FH ROL BX,CL MOV AX,BX AND AX,000FH PUSH AX (CH)=2 (BX)=F084H (AX)=F084H (AX)=0004H (30FFCH)=0004H ROL BX,CL MOV AX,BX AND AX,000FH PUSH AX (CH)=3 (BX)=4F08H (AX)=4F08H (AX)=0008H (30FFEH)=0008H ROL BX,CL MOV AX,BX AND AX,000FH PUSH AX (CH)=4 2、循环移位( 4条): ROL, ROR , RCL, RCR。 共同点: ROL、ROR 不含CF循环移位指令,操作数移动8次后还原。 RCL、 RCR 含CF循环移位指令,操作数移动9次后还原。 影响标志OF、CF SF、ZF、PF、AF不影响。 (1)、ROL (Rotate left )不含C

文档评论(0)

1亿VIP精品文档

相关文档