溢出标志的判断
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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