检测点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 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,ax= 2662H
ds 已经变成1了,mov ax,不就相当于取段地址1位置上的数据吗?
我看了一下上面的一组数据,0000:0010 62 26 E6 D6 CC 2E 3C 3B-AB BA 00 00 26 06 66 88
1位置是26,这样取得的字类型不就是E626了吗? 为什么答案上是2662呢? 0000:0010 62 26 E6 D6 CC 2E 3C 3B-AB BA 00 00 26 06 66 88
对应的是内存地址 00010 到 0001f 的数据
内存地址 = 段地址*16+偏移地址
mov ax, 表示的0001*16+0000 即 00010 处的数据 非常感谢 终于弄懂了 学习学习再学习 我也 这点不明白,不过这一看明白了。 我的怎么查地址就不一样了呢
0000:0010 62 26 E6 D6 CC 2E 3C 3B-AB BA 00 00 26 06 66 88
对应的是内存地址 00010 到 0001f 的数据
内存地址 = 段地址*16+偏移地址
mov ax, 表示的0001*16+0000 即 00010 处的数据
--------------------------------------------
哥那我就想问了,既然是这样啊是不是计算也可以寻址0010:0000的位置呢,计算机要怎么判定 百思不得其解,无答案
页:
[1]