Ami*_*mar 4 x86 assembly intel-syntax
我正在尝试运行从 GAS 风格获取的指令,但是当我将此指令移植到 intel 风格时,出现如下错误:
"error: parser: instruction expected"
Run Code Online (Sandbox Code Playgroud)
我尝试了各种组合,例如 REP movsl、REP loadsl,但都给出了相同的问题,任何人都可以告诉这个正确的命令相当于 x86 中的 REP stosl
我相信是的
rep stosd
Run Code Online (Sandbox Code Playgroud)
用于重复存储字符串DWORD(32位)。
(在具有ERMSB 功能的CPU 上,效率很高,因此如果您有字节值而不是双字模式,则rep stosb无需imul eax, 0x01010101进行设置。)rep stosd
您可以在 Intel 指令集参考中找到这些stos_指令。它们使用1 字节、2 字节、4 字节和8 字节字符串操作的后缀。bwdq
/ /有一个单独的手动条目repreperepne,它记录了它作为实际重复前缀有效的每条指令。
(但请注意,只有 和rep stos_具有rep movs_快速字符串微码;所有条件 repe/ne cmps/scas 指令在现代 CPU 上都很慢,每 1 个甚至 2 个时钟仅进行 1 次计数。)
istrep只是一个前缀,表示后面的指令必须重复 (E)CX 次。但这仅对有限的指令集有效。实际的指令是stos在你的情况下,它需要一个类型操作数。b对于字节、w字和d双字操作数大小。
在你的情况下d应该是正确的操作数大小。