我正在查看 Intel-x86 程序跟踪并遇到此指令
REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:
Run Code Online (Sandbox Code Playgroud)
我知道
REP MOVS
Run Code Online (Sandbox Code Playgroud)
导致 MOV 指令运行由 ECX 寄存器中的值指定的次数,在我的例子中是 0x2b。
我知道
BYTE PTR
Run Code Online (Sandbox Code Playgroud)
正在确定信息的大小,在这种情况下只是一个字节。
我知道
ES:[EDI]
Run Code Online (Sandbox Code Playgroud)
告诉将 BYTE PTR DS: 中的任何内容移动到 EDI 指向的地址。
我不知道逗号后面的部分是做什么的。
BYTE PTR DS:
Run Code Online (Sandbox Code Playgroud)
问题:
PTR指令为什么会这样?为什么不只是
REP MOVS BYTE ES:[EDI]. BYTE DS:
Run Code Online (Sandbox Code Playgroud)
ES和DS对应的是什么?
谢谢