+ -
当前位置:首页 → 问答吧 → [分析程序]逻辑右移

[分析程序]逻辑右移

时间:2010-12-25

来源:互联网

分析下面程序段,
MOV AL,200
SAR AL,1
MOV BL,AL
MOV CL,2
SAR AL,CL
ADD AL,BL
试问程序段执行后(BL)= (AL)=

作者: kartik   发布时间: 2010-12-25

自己debug一下吧

作者: masmaster   发布时间: 2010-12-25

你自己跑跑DEBUG

C:\>debug
-a 0100
0B6F:0100 mov al,c8
0B6F:0102 sar al,1
0B6F:0104 mov bl,al
0B6F:0106 mov cl,2
0B6F:0108 sar al,cl
0B6F:010A add al,bl
0B6F:010C
-t

AX=00C8 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0B6F ES=0B6F SS=0B6F CS=0B6F IP=0102 NV UP EI PL NZ NA PO NC
0B6F:0102 D0F8 SAR AL,1
-
下面都用t可以直接看寄存器的状态

作者: va_zaixuexi   发布时间: 2010-12-25

引用 2 楼 va_zaixuexi 的回复:
你自己跑跑DEBUG

C:\>debug
-a 0100
0B6F:0100 mov al,c8
0B6F:0102 sar al,1
0B6F:0104 mov bl,al
0B6F:0106 mov cl,2
0B6F:0108 sar al,cl
0B6F:010A add al,bl
0B6F:010C
-t

AX=00C8 BX=0000 CX=0000 D……

楼上各位同志啊,我不要debug啊,考试怎么debug?

作者: kartik   发布时间: 2010-12-26

你现在连DEBUG都不用下,怎么知道自己想的对不对,你先自己做,再用DEBUG判断正误,错了就看看是哪步错了,然后再思考不就得了,想不明白就翻书看指令的意思,呵呵
MOV AL,200 ;AL=C8H
SAR AL,1 ;AL=C8H>>1(符号位不变)=E4H
MOV BL,AL ;BL=E4
MOV CL,2 ;CL=2
SAR AL,CL ;AL=E4>>2(符号位不变)=F9H
ADD AL,BL ;AL=F9+E4=DD(进位位在CF)

作者: va_zaixuexi   发布时间: 2010-12-26