检测点11.1
sub al, al ;zf=1,pf=1,sf=0
mov al,1; zf=1,pf=1,sf=0
push ax ;zf=1,pf=1,sf=0
pop bx ;zf=1,pf=1,sf=0
add al,bl ;zf=0,pf=0,sf=0
add al,10 ;zf=0,pf=1,sf=0
mul al ;zf=0,pf=1,sf=0
检测点11。2
sub al,al ;cf=0,of=0,sf=0,zf=1,pf=1
mov al,10h ;cf=0,of=0,sf=0,zf=1,pf=1
add al,90h ;cf=0,of=0,sf=1,zf=0,pf=1
mov al,80h ;cf=0,of=0,sf=1,zf=0,pf=1
add al,80h ;cf=1,of=1,sf=1,zf=1,pf=1
mov al,0fch ;cf=1,of=1,sf=1,zf=1,pf=1
add al,05h ;cf=1,of=0,sf=0,zf=0,pf=0
mov al,7dh ;cf=1,of=0,sf=0,zf=0,pf=0
add al,0bh ;cf=0,of=1,sf=1,zf=0,pf=1
检测点11。3
(1)jb s0;
ja s0;
(2)jna s0
jnb s0
检测点11。4
(ax)=0045h
- [游客] 以前遇到过。看了讲解,明白不少。 如果我们把断点设置到int 21以后就没事了? 04/09 12:48
- [游客] 这样的问题还是发到论坛好,在这里很容易就被埋没了,嘿嘿~ 12/26 15:17
- [游客] debug下默认是16进制的,也就是说用a命令输入mov ax,354 ,结果变成ax=3 12/26 15:14
- [游客] 支持。 12/22 21:21
- [游客] 博主厉害。 12/22 21:18
- [游客] 博主的第一小题有问题吧。 存放位移的为一个十六位寄存器,它所能表示的最大值为65535,所以最大转 12/22 21:15
- [游客] 检测点11.2 add al,80h ;cf=1,of=1,sf=1,zf=1,pf=1 12/22 20:50
- [mouse] 我前两天也调了半天才把这个弄出来,还费了半天劲精简,我看博主的代码也是可以再精简点的~ 12/22 20:36
- [mouse] 写的真好,我的还没做出来呢 呜呜~~ 12/22 20:33
- [游客] 书上的代码基本都全了,没有问题,自己可以验证后把结果也贴上来~_~ 12/22 20:27
[ 游客 发表于 2007-12-22 20:50 ]
检测点11.2
add al,80h ;cf=1,of=1,sf=1,zf=1,pf=1
执行后al中的值应为0,结果为非负,所以sf应为0。