邪恶的非非 发表于 2012-8-16 12:28:12

一个汇编寄存器问题

本帖最后由 邪恶的非非 于 2012-8-16 17:33 编辑

本人汇编新手……请教一个问题:在Debug中,用"d 0:0 1f"查看内存,结果如下
0000:0000 70 80 F0 30   EF60 30 E2-00 80 80 12 66 20 22 60
0000:0010 62 26 E6 D6 CC 2E 3C 3B-AB BA 00 00 26 06 66 88
下面程序执行前,AX=0,BX=0,写出每条汇编指令执行后相关寄存器中的值
mov ax,1
mov ds,ax
mov ax,
mov bx,
mov ax,bx      
mov ax,
mov bx,
add ax,bx      
add ax,
mov ax,0      
mov al,
mov bx,0      
mov bl,
add al,bl      

这道题是王爽汇编内的一道题。我就是搞不懂俩问题“d 0:0 1f”那个1F是什么意思?参数么?到底该怎么用,
我在Debug下看了下,显示两行。
不知怎么用这个1F第二个问题,
也是一直纠结中的问题。前面两条指令执行后ds=0001H那么物理地址也就是0001:0晒。
为何网上说0001:0000等价于0000:0010H求解答,
第二个问题想了半天了。
希望有心人能够帮忙解答下。
谢谢

结贴,已解决



邪恶的非非 发表于 2012-8-16 12:31:26

自己顶顶~~{:5_90:}

lukelqz 发表于 2012-8-16 14:24:52

第一个问
d 0:0 1f这个命令的是用来查看内存里面存储的内容的。如果不指定结束的地址,那么默认显示8行,1f的作用是指定查看结束的偏移,也就是说,我只要查看到0:1f就可以了。不用给我后面的数据了。
debug图

------------------------------------------------------------------------------------------------------------------------------------
第二个问题
0001:0000=00010H
0000:0010=00010H
内存本身并没有分段,只不过我们人为的分段,这样方便寻址。物理地址=段地址*10H+偏移地址 ,记住这个公式。上面的两个实际对应的是同一个物理地址。

邪恶的非非 发表于 2012-8-16 17:32:43

lukelqz 发表于 2012-8-16 14:24 static/image/common/back.gif
第一个问
这个命令的是用来查看内存里面存储的内容的。如果不指定结束的地址,那么默认显示8行,1f的作用是 ...

俩问题都搞懂了,谢谢啊
{:2_27:}
页: [1]
查看完整版本: 一个汇编寄存器问题