LDS 命令不是很懂啊

ituling 2012-06-10 10:53:29
这里不懂,LDS指令完成把SRC所指向的主存单元的内容(偏移量)传送到所表示的通用寄存器中,把SRC+2 所指向的主存单元的内容(段基址)传送到DS段寄存器中;

这句不理解啊 SRC所指向的主存单元的内容,不就是一个平常的数么?为什么是偏移量
这个偏移量是谁的偏移量啊

SRC+2 所指向的主存单元的内容 不就也是个平常的数么?为什么是段基址? 是谁的段基址

我知道 当他们传送完了 就完成数据段寄存器的段基址的重置,因为他们呢被用作了新的 偏移量和段基址 ,这点我明白 但是 括号里的是什么吗意思啊??
...全文
1774 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
junlinfushi 2014-01-12
  • 打赏
  • 举报
回复
引用 4 楼 u013456314 的回复:
网上找了好久终于找到个明白的回答 课本编的太不严谨 各种歧义 还是大神们厉害 一语中的
多百度,谷歌
你二百是 2014-01-12
  • 打赏
  • 举报
回复
网上找了好久终于找到个明白的回答 课本编的太不严谨 各种歧义 还是大神们厉害 一语中的
sgw888 2012-06-16
  • 打赏
  • 举报
回复
括号里的内容是我们赋予给它的实际意义. 对于机器来说,程序就是数据,数据就是程序,同样的道理,内存单元中存放的数据,我们可以赋予它多种含义,内存单元中可能存放的是要被执行的代码,可能是一个数值,可能是一个字符,它的意义要看用在什么地方,起到什么作用.

LDS 完成的任务是把SRC指向的内存单元的内容传递给指定的通用寄存器,把SRC+2内存单元中的内容传递给DS寄存器.

内存单元中存放的就是一个数值而已,为什么要称为 段基址跟偏移量呢? 其实非常容易理解,我们在访问内存单元时,总是要通过 段地址*16+偏移量 的方法来对内存单元进行访问. 要么指定段前缀,要么使用默认的段寄存器.
DS是常用的数据段 段寄存器,具体到 LDS 指令,用内存中的数据重新设置DS以后,DS的内容发生了变化,既然DS表示了数据段的段值,那么它的值变化了,也就是 段基址发生了变化,因此段基址 是我们在使用LDS指令时,对SRC指向的内存单元中的数据赋予的实际意义.
e379278011 2012-06-14
  • 打赏
  • 举报
回复
lds si,farpointer ;farpointer是一个双字变量。
《80x86汇编放言程序设计》杨季文那本书,p32页,有说明,LZ可以参考下。

21,496

社区成员

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

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