У меня новенькая очень маленькая проблема со сборкой NASM в linux. Я сделал простую программу для практики, которая, когда вы вводите текст, добавляет простое оформление в виде звезд. Ожидаемый результат:
*********EXAMPLE*********
вместо
*********EXAMPLE
*********
вот полный код программы (длинный). Я использовал edb, чтобы проверить код и проверить регистр EDX, если он совпадает с длиной, принятой нулевой проверкой байтов, чтобы напечатать правильное количество символов.
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