fsnsn 发表于 2020-12-20 23:13:21

汇编语言书中有个地方不太懂,请大神指教。。

检测点3.1原题目:
在Debug中 用"d 0:0 1f" 查看内存,结果如下:
0000:0000 70 80 F0 30 EF 60 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,写出每条汇编指令执行完后相关寄存器中的值。
提示:注意DS的设置
mov ax,1
mov ds,ax
mov ax,

计算过程:
mov ax,1                        //ax=0001
mov ds,ax                //ds=0001
mov ax,                /的地址应该是0001:0000吧??为什么会是0000:0010???

回显应该是段地址:偏移地址吧?
上机验证时0000:0010,百思不得其解啊


jackz007 发表于 2020-12-20 23:24:34

本帖最后由 jackz007 于 2020-12-20 23:27 编辑

      你说得没错,0001:0000和 0000:0010 虽然在形式上有所不同,但实际上确实是同一个地址,因为,SEG : OFF 形式的内存地址如果要换算成 20 位形式的话,计算公式是:
      SEG × 10H + OFF
      用这个公式的计算结果,上述两个地址的 20 位形式的内存地址相等,都是 00010H。

fsnsn 发表于 2020-12-21 09:36:45

感谢大佬指点
页: [1]
查看完整版本: 汇编语言书中有个地方不太懂,请大神指教。。