ai6540182 发表于 2023-1-20 18:33:07

检测点3.1不是很懂


(1)在DEBUG中,用 "D 0:0 lf" 查看内存,结果如下:

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,写出每条汇编指令执行完后相关寄存器中的值

mov ax,1

mov ds,ax

走到这里不应该
ds =0001:0000
0000:0010 跟他有啥关系啊?
不是很明白

jackz007 发表于 2023-1-20 19:22:47

本帖最后由 jackz007 于 2023-1-20 19:26 编辑

      16 位程序使用 段地址 : 偏移地址 来表达一个内存地址,计算公式为:
内存地址 = 段地址 x 10H + 偏移地址
         先来看看地址 0001:0000
         0001 x 10H + 0000H = 00010H
         可见,0001:0000 对应的实际内存地址是 00010H
         再来看看地址 0000:0010
         0000 x 10H + 0010H = 00010H
         说明0000:0010 对应的内存地址也是 00010H
         这就意味着,0001:0000 和 0000:0010 虽然写法完全不一样,但是,它们却代表着相同的内存地址。
      
         
页: [1]
查看完整版本: 检测点3.1不是很懂