什么x86寄存器表示movsb指令中的源位置?

时间:2010-10-08 03:55:17

标签: assembly x86 cpu-registers

什么x86寄存器表示movsb指令中的源位置?

2 个答案:

答案 0 :(得分:35)

在32位模式下,esi

具体而言,movsbds:esi中的一个字节复制到es:edi,将esiedi调整为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的可运行版本。