LODS和LEA有什么区别?

JeanLove 2011-01-04 10:47:36
我怎么感觉这LODS=LEA AX呢?

我的理解有什么问题?
...全文
191 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
shzhfu 2011-01-05
  • 打赏
  • 举报
回复
不知你问的是lods还是lds?如果不看对标志位的影响,不考虑语法,从最后取到的结果看,它们分别相当于

LEA ax,a <==> mov ax,offset a (a可以是任何一种类型的变量或标号)

LODS 字类型的变量名 <==> lodsw <==> mov AX,ds:[si] add(或sub) si,2
LODS 字节类型的变量名 <==> lodsb <==> mov Al,ds:[si] inc(或dec) si

LDS AX,a <==> mov ax,word ptr a mov ds,word ptr a (此时要求a必须是双字类型的变量)
MSOKD 2011-01-04
  • 打赏
  • 举报
回复
楼上说的已经很清楚了.
masmaster 2011-01-04
  • 打赏
  • 举报
回复
lea装入的是偏移地址
lds装入的是段地址和偏移地址
比如:

lea bx,buff ;将标号buff的偏移地址装入寄存器BX中, 默认段是DS。

lds bx,buff ;将标号buff的地址装入BX,将buff+2的地址装入DS。也就是说,这个buff应该是32位地址。

我的理解, 仅供参考。

21,497

社区成员

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

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