这个汇编代码有什么问题?我收到未知的注册错误



这有什么问题?我看不出这里有错误。它告诉我未知的寄存器,但由于我对汇编知之甚少,所以我真的不知道这个问题。

;  Clicking button saves & builds using commands:
;    nasm -f elf -g -F stabs evil.asm
;    ld -o evil evil.o
section .data
Snippet: db "@E9>06G@Q:CN3C57I<)<)*"
SnipLen: equ $-Snippet
section .text
global _start
_start:
nop
mov ecx,Snippet
mov edx,SnipLen
mov eax,6
DoMore: add byte [ecx],af
inc ecx
inc eax
dec edx
jnz DoMore
mov eax,4
mov ebx,1
sub ecx,SnipLen
mov edx,SnipLen
int 80H
mov eax,1
mov ebx,0
int 80H
nop
DoMore: add byte [ecx],af

该指令允许一个参数为寄存器或内存,另一个仅为寄存器(按任意顺序(。由于[ecx]使用间接语法;存储器";用法,而另一个参数必须是寄存器的名称。

我在您的清单中没有看到任何数据标签值af,如果这是您想要的话。但这无论如何都不起作用,因为另一个参数必须是一个简单的寄存器名。


更新

你似乎对你应该在评论中写什么感到困惑
由于您用6加载了eax,我怀疑您想在[ecx]指向的位置添加6,然后依次向每个字节添加下一个数字。在这种情况下,您指的是al,即构成eax的低字节。

最新更新