新手提问_变量内存放着的是另一个变量的偏移地址和段地址是怎么回事呢

meeming 2007-07-15 05:40:42
题目是这样,一段逻辑框架

ORG 120H
BUFF DW 64H DUP(?)
ADDR1 DW 10H,20H
ADDR2 DD ADDR1
...
MOV BX,ADDR1+4
MOV AX,ADDR1+6

以上执行完以后,
试问在ADDR2单元存放的内容是什么?
我还没有学懂,不明白,就看了答案,答案说是存放的ADDR1的偏移地址和段地址.
不理解啊~
查书也无从下手~
请赐教!
不胜感激!
...全文
181 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
meeming 2007-07-15
  • 打赏
  • 举报
回复
谢谢楼上细心讲解
终于明白了
czlyc006 2007-07-15
  • 打赏
  • 举报
回复
这个理解方法在以后利用间接寻址传递数据时尤其重要,
例如 mov eax,[ADDR1+2]
即相当于 mov eax,[404002h]
czlyc006 2007-07-15
  • 打赏
  • 举报
回复
ADDR2内存放的数值与
MOV BX,ADDR1+4
MOV AX,ADDR1+6
这两句毫无关系

可以以类似C/C++的理解方法,将ADDR1看成是代表了数组首地址的一个标号,
假如ADDR1数组的首地址是404000h,那么ADDR2 DD ADDR1实际上就相当于ADDR2 DD 404000h
在定义ADDR2的同时赋了初值
meeming 2007-07-15
  • 打赏
  • 举报
回复
哦?

谢谢楼上指点.

我没有找到书上是在何处描述"数据标号"的有关内容呢,

"数据标号就是这样" 是说 用伪指令DD 的数据定义语句中的 变量字段 就是将后面一个变量的偏移地址和段地址存到前面一个变量所在的地址吗?

既然是这么简单的定义,还是想找书中的有关部分来看下呢,可是不知道这除了关联伪指令,"数据标号"的定义应该查哪里?
hkbyest 2007-07-15
  • 打赏
  • 举报
回复
ADDR2 DD ADDR1
在地址ADDR2处分别以WORD格式存放ADDR1的偏移地址和段地址,数据标号就是这样啊。
meeming 2007-07-15
  • 打赏
  • 举报
回复
题目只是关于汇编的语法,是没有完整程序的,只是一段逻辑框架
我就是不明白这段框架的全部内容怎么得到答案的
我绝对没有抄漏掉题目的内容
难道是书印刷错误?
mengshijie_1981 2007-07-15
  • 打赏
  • 举报
回复
程序不完整,何以解答?

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧