溢出标志的判断

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

么是溢出(Overflow)?

•例1: 3AH+7CH=B6H,溢出•例2: AAH+7CH,无溢出

•例3: 3AH-7CH,无溢出

•例4: AAH-7CH=2DH,溢出

例2.33:移位指令的功能

mov cl,4

mov al,0f0h ;al=f0h

shl al,1 ;al=e0h,CF=1,SF=1、ZF=0、PF=0,OF=0

shr al,1 ;al=70h,CF=0,SF=0、ZF=0、PF=0、OF=1

sar al,1 ;al=38h,CF=0,SF=0、ZF=0、PF=0、OF=0

sar al,cl ;al=03h,CF=1,SF=0、ZF=0、PF=1 逻辑左移指令SHL执行一次移位,相当于无符号数的乘2;逻辑右移指令SHR执行一位移位,相当于无符号数除以2,商在目的操作数中,余数由CF 标志反映。

例2.34:利用移位指令计算DX←3×AX+7×BX,假设为无符号数运算,无进位

mov si,ax

shl si,1 ;si←2×ax

add si,ax ;si←3×ax

mov dx,bx

mov cl,03h

shl dx,cl ;dx←8×bx

sub dx,bx ;dx←7×bx

add dx,si ;dx←7×bx+3×ax

例2.35:将DX.AX中的32位数值左移一位

shl ax,1

rcl dx,1

例2.36:把AL最低位送BL最低位,但保持AL不变

ror bl,1

ror al,1

rcl bl,1

rol al,1

利用移位或循环移位指令可以方便地实现BCD码转换。

例2.37:AH/AL分别存放着非压缩BCD码的两位,现将它们合并成为一个压缩BCD码存入AL

mov cl,4

rol ah,cl ;也可以用shl ah,cl

相关文档
最新文档