~~~~~初学汇编有一些菜问题急需解决~~~~~

lihaogao 2004-04-29 07:18:22
如果data是一个数据段名
为什么要这样写:
 mov ax,data
mov ds,ax
可不可以就写:
 mov ds,data
为什么?????


...全文
67 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
02051223 2004-05-03
  • 打赏
  • 举报
回复
不能直接写!
因为他们的类型模糊.
在使用地址表达式是要求类型一直或者有一个不明确.




另外可以这两句都不写.
这样在后面使用数据段时必须在地址表达式前加 DS等数据段前缀.
SDFDSAC 2004-05-03
  • 打赏
  • 举报
回复
立即数不能直接送段地址,用寄存器中转
windandrain 2004-05-01
  • 打赏
  • 举报
回复
1楼
你的第二句我不太明白,
我想是不是因为ds和ax的用法不同
guangzi989 2004-05-01
  • 打赏
  • 举报
回复
data 就是一个立即数,它必须要通过寄存器中转才能读入内存
delphi023445 2004-05-01
  • 打赏
  • 举报
回复
data 是一个标志符,也就是一个地址,就是一个立即数
而直接用立即数传送到DS的指令是无效的
所以不行
dongdongcang 2004-04-30
  • 打赏
  • 举报
回复
因为对DS是不能直接寻址的
dalvin 2004-04-30
  • 打赏
  • 举报
回复
是由处理器结构决定的,
可能INTEL的工程师设计芯片时
就不支持mov ds,data
所以无法对其DECODE。
fairyme 2004-04-30
  • 打赏
  • 举报
回复
确实是这样啊,有时候一些比较基础的东西还是相信书上的好。汇编语言的基本框架就是那样的,无法改变的东东,都用多少年了。如果可以的话,我估计早改了,你说呢?
lihaogao 2004-04-29
  • 打赏
  • 举报
回复

原来如此啊!
fiveyes 2004-04-29
  • 打赏
  • 举报
回复
没错,我的书上也是这样的,书上说这是由于,直接用立即数传送到DS的指令是无效的,所以为了初始化它,就需要两条指令。

21,497

社区成员

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

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