什么X86寄存器表示MOVSB指令中的源位置?
-
28-09-2019 - |
题
什么X86寄存器表示MOVSB指令中的源位置?
解决方案
在32位模式下, esi
.
具体而言 movsb
复制一个字节 ds:esi
到 es:edi
, ,调整两者 esi
和 edi
到1,取决于方向标志。
其他提示
如何从手册中提取这些信息
现在,您已经登录了Osdev.org,现在该通过学习来偿还道德债务了。 :-)
英特尔手册卷2指令集参考-325383-056US 2015年9月 “ movs/movsb/movss/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*/
主张的可运行版本 在github上.
不隶属于 StackOverflow