检测题 3.1 的疑问 求帮忙
检测点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 600000: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,ax= 2662Hmov bx,bx= E626Hmov ax,bx ax= E626Hmov ax,ax= 2662Hmov bx,bx= D6E6Hadd ax,bx ax= FD48Hadd ax,ax= 2C14Hmov ax,0 ax= 0 mov al,ax= 00e6Hmov bx,0 bx= 0 mov bl,bx= 0026Hadd al,bl ax= 000CH在这里的话我想要知道这个指令的意义mov ax,1mov ds,ax这样是传送1这个到ds中,这里是让ds取得数据段的地址那么在这里有个问题,ds为何是从 0000:0010开始的是不是所有的段寄存器都要使用这个公式:SA X 16 + EA,也就是DS * 16 + IP然后得出一个数据段的地址?
段寄存器顾名思义,存放的是段地址,
完整地址是 段地址*16+偏移地址
0000:0010 代表的完整地址是:00010
那么当ds = 0001,
mov ax, 偏移地址为0,即: 0001:0000 ,楼主考虑下,代表的地址和上面是一样的么?
页:
[1]