|
发表于 2018-6-18 21:52:09
|
显示全部楼层
我的理解如下:
-G=3 13是执行0913:0003~0013的命令
0913:0003 mov si,0 ;si=0000H
0913:0006 mov al,[si] ;ds:[0](0913:0000)=5H=0000 0101B 此时ax=0205H
0913:0008 add al,[si+1] ;ds:[0+1](0913:0001)=96H=1001 0110B,和5H相加=1001 1011B=9BH, 此时ax=029BH
0913:000B jns 13 ;jns在小甲鱼老师和王爽的教材里没写,查资料是SF=0时跳转,上面指令的结果使得SF=1,所以继续向下执行
0913:000D neg al ;查资料发现neg和求补码一样,取反+1, 1001 1011的补码是0110 0101B=65H,此时ax=0265H
0913:000F mov [si+2],al;把65H存储到ds:[0+2](0913:0002)=65H
0913:0012 int 3 ;查资料, 中断int 3就是暂停的意思
因此AX=0265H BX=0000H SI=0000H
-D DS:0 7是显示0913:0000~0007这8个内存单元中的数值的命令
0913:0000 05 96 65 BE 00 00 8A 04
我觉得题目中这段数值好像有问题:
-E DS:0
0913:0000 5 96 46 57 00 45 最后三个数值57,00和45应该是0913:0003~0005内存单元里的值,为何与下面第一条指令对应的机器码值不一样呢? |
|