gpt4 book ai didi

assembly - 将指令转换为汇编代码 lods 和 stos 以便 NASM 可以编译

转载 作者:行者123 更新时间:2023-12-02 14:42:06 25 4
gpt4 key购买 nike

好吧,我正在尝试使用 nasm -f elf Final.asm 在汇编中汇编一些代码:

xor eax,eax
push eax
push dword(0x75792273)
push dword(0x70742027)
push dword(0x77777875)
push dword(0x20237678)
push dword(0x76727827)
push dword(0x27797175)
push dword(0x75711225)
push dword(0x72747676)
push dword(0x74231476)
push dword(0x70707470)
push dword(0x23247077)
push dword(0x78707822)
push dword(0x24711174)
push dword(0x22707373)
push dword(0x78717974)
push dword(0x75771777)
push dword(0x70777125)
push dword(0x73731472)
push dword(0x71277377)
push dword(0x79251822)
push dword(0x79707478)
push dword(0x78742779)
push dword(0x72727871)
push dword(0x71251475)
push dword(0x27247772)
push dword(0x79757479)
push dword(0x70227071)
push dword(0x77737420)
push dword(0x70251970)
push dword(0x74747127)
push dword(0x23277677)
push dword(0x79712024)
push esp
pop esi
mov edi,esi
mov edx,edi
cld
mov ecx,0x80
mov ebx,0x41
xor eax,eax
push eax
lods byte[esi]
xor eax,ebx
stos byte[es:edi]
loop 0xb7
push esp
pop esi
int 0x3

这会导致以下错误:

final.asm:44: error: parser: instruction expected
final.asm:46: error: parser: instruction expected

我在以下位置找到了这些错误的答案: NASM: parser: instruction expected rep movs

基本上,这表示 NASM 不识别 lods 和 stos 指令。这意味着我需要将它们转换为 NASM 可以识别的东西,这样我才能得到相同的结果。

我的问题是,我可以将这两行更改为什么,以便 NASM 可以编译它,以便我最终可以调试它。

最佳答案

什么lodsb所做的是:

mov al,[esi]
inc esi ; (or dec, according to direction flag)

你也可以使用
lodsw加载单词(到 ax ,将 esi 增加 2),或
lodsd加载双字(到 eax ,将 esi 增加 4)。

stosb确实

mov [es:edi],al
inc edi

同样,stoswstosd将存储 2 或 4 个字节(并相应地调整 edi)

首先从 SOURCE (ESI) 寄存器指向的内存加载,然后写入 DESTINATION (ES:EDI) 寄存器指向的内存。

您不需要(也不能)指定将使用哪些寄存器。来源始终为 ESI,目标始终为 EDI

<小时/>

编辑段寄存器:lods指令可以与段覆盖前缀一起使用(即 ss lodsb )。 stos指令固定为es (原始答案中缺少详细信息)分段使用,并且不能被覆盖。

movsb/movsw/movsd指令( size*(mov [es:edi],[ds:esi] inc esi inc edi) )也可以在源端被覆盖,即es movsb将从 es:esi 获取字节而不是ds:esi ,但目标段寄存器固定为 es .

关于assembly - 将指令转换为汇编代码 lods 和 stos 以便 NASM 可以编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40092145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com