ASSUME该如何理解

leiht 2009-01-16 11:05:04
ASSUME的汉语意思是“假设”,教程上说它可以指定默认的段寄存器与段的关系。请看下面的代码:
(1)
ASSUME DS:DATA ...
(2)
MOV AX,DATA
MOV DS,DATA
我想问的是,(2)部分的意思不就是(1)部分的意思么?如果不是,那(1)部分该如何理解才好呢?
...全文
181 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zoologist 2009-01-19
  • 打赏
  • 举报
回复
等一等吧,过一段时间就会茅塞顿开的。

leiht 2009-01-19
  • 打赏
  • 举报
回复
大家说的都够好的,只是我太笨了,还是不能理解,能不能说详细一点
叶落寒山 2009-01-18
  • 打赏
  • 举报
回复

ASSUME是伪指令,用来指明一个数据段的段名和某个段寄存器的关系。assume并不分配内存。
子然君 2009-01-18
  • 打赏
  • 举报
回复
ASSUME是伪指令,只在编译时候有用,可以理解为在编译得时候指明一个数据段的段名和某个段寄存器的关系。
zoologist 2009-01-16
  • 打赏
  • 举报
回复
assume是伪指令,就是说实际上生成代码是不生成机器码(换句话说就是只给编译器看的)

比如,我们assume esi到一个结构体,下面我们编译器就知道了,

你可以直接使用 [esi].成员a 这样的形式。
cdcjk 2009-01-16
  • 打赏
  • 举报
回复
哈哈哈一起学习
cdcjk 2009-01-16
  • 打赏
  • 举报
回复
学习
cdcjk 2009-01-16
  • 打赏
  • 举报
回复
学习
vamking_boy 2009-01-16
  • 打赏
  • 举报
回复
that's right
leiht 2009-01-16
  • 打赏
  • 举报
回复
学习
sunchaohuang 2009-01-16
  • 打赏
  • 举报
回复
assume 是伪代码由编译器执行的代码
xiaopoy 2009-01-16
  • 打赏
  • 举报
回复
你可以认为它没有作用。
cnzdgs 2009-01-16
  • 打赏
  • 举报
回复
assume是告诉编译器如何来看待某个寄存器,例如assume cs:code,ds:data,是告诉编译器,程序中用ds来指向data段,当程序中使用data段中定义的变量时,编译器会认为使用ds段寄存器可以找到该变量;当程序中使用code段中定义的变量时,编译时会加上cs:段前缀。

21,459

社区成员

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

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