我是新手,在Linux中组装NASM有一个很小的问题。我制作了一个简单的练习程序,当您输入文字时,它会以星状形式添加简单的装饰。预期的输出是:
*********EXAMPLE*********
相反:
*********EXAMPLE
*********
这是程序的完整代码(长),我已经使用edb来检查代码,并检查EDX寄存器是否与len take相匹配(通过空字节检查)以打印正确的字符数。
section .data
prompt db "Please enter a word (MAX: 10 Characters) : ", 0xa, 0xd
plen equ $ - prompt
stars times 9 db "*"
section .bss
text resb 10
section .text
global _start
_start:
mov eax, 4
mov ebx, 1
mov ecx, prompt
mov edx, plen
int 0x80
mov eax, 3
mov ebx, 0
mov ecx, text
mov edx, 11
int 0x80
xor ecx, ecx
mov esi, text
mov ecx, 0
loop1:
inc ecx
cmp byte [esi + ecx], 0x00
jne loop1
push ecx
jmp printexit
printexit:
mov eax, 4
mov ebx, 1
mov ecx, stars
mov edx, 9
int 0x80
mov eax, 4
mov ebx, 1
mov ecx, text
pop edx
int 0x80
mov eax, 4
mov ebx, 1
mov ecx, stars
mov edx, 9
int 0x80
mov eax, 1
int 0x80