什么x86寄存器表示movsb指令中的源位置?
答案 0 :(得分:35)
在32位模式下,esi
。
具体而言,movsb
将ds:esi
中的一个字节复制到es:edi
,将esi
和edi
调整为1,向上或向下调整,具体取决于方向旗。
答案 1 :(得分:9)
如何从手册中提取该信息
现在您已登录osdev.org,现在是时候通过实际学习来支付您的道德债务了。 : - )
Intel Manual Volume 2 Instruction Set Reference - 325383-056US September 2015部分" MOVS / MOVSB / MOVSW / MOVSD / MOVSQ-将数据从字符串移动到字符串"表示:
将第二个操作数(源操作数)指定的字节,字或双字移动到指定的位置 使用第一个操作数(目标操作数)。源操作数和目标操作数都位于内存中。该 从DS:ESI或DS:SI寄存器
读取源操作数的地址
最小化测试计划
最后,你必须制作一个使用该指令的最小程序,看看你是否正确理解它:
section .data
src db 0
dest db 1
section .text
global _start
_start:
mov esi, src
mov edi, dest
cld
movsb
/* dest == 0*/
带有断言on GitHub的可运行版本。