求助,edi和esi到底指的是什么

黎前点星 2016-02-17 04:30:50
百度了很久,他们都说是 源/目标索引寄存器,本人小白,搞不定具体的含义,哪位大哥能帮我指点一下,或者有个例子给我参考一下,最好是C或者是C++的,谢谢
...全文
1646 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
大熊猫侯佩 2016-02-18
  • 打赏
  • 举报
回复
可以按照字面理解,在进行2个数组(或其他like array)的操作时,我们往往将原数组偏移放在esi中而将目的数组偏移放在edi中 当然这只是一种约定写法,你也可以不遵守
zara 2016-02-18
  • 打赏
  • 举报
回复
“都说是 源/目标索引寄存器”,这个是指在串操作指令里的吧,如 movs/cmps/stos/lods。这这类指令里,esi 和 edi 的使用是固定的,比如 movs 是由 ds:[esi] 复制到 es:[edi] 处,无可变化(据说 ds: 是可以被段前缀指令改动的),尽管指令表面上没有任何的表示。
此外,它们又作为通用寄存器可以进行任意的常规的操作,如加减移位或普通的内存间接寻址(这时是不和 ds: 或 es: 联动的)。
至于例子,说是 c 或 c++ 的,这个语言面子上是不触及寄存器的吧。

21,459

社区成员

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

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