回忆已成伤 发表于 2013-12-12 16:33:53

检测点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呢?

dancene 发表于 2013-12-12 16:48:19

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 处的数据

回忆已成伤 发表于 2013-12-12 16:53:29

非常感谢 终于弄懂了

菜鸟一个a 发表于 2013-12-24 21:40:50

学习学习再学习

盖作 发表于 2014-6-6 21:10:50

我也 这点不明白,不过这一看明白了。

菜鸡 发表于 2014-6-8 01:05:26

我的怎么查地址就不一样了呢

zhuwei1 发表于 2014-6-8 01:47:08


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的位置呢,计算机要怎么判定

zhuwei1 发表于 2014-6-8 01:47:40

百思不得其解,无答案
页: [1]
查看完整版本: 检测点3.1有个问题蒙了