Цикл в сборке Intel x86 продолжается вечно
В настоящее время я изучаю сборку Intel x86, и яМы столкнулись с проблемой при попытке создать простой цикл, который повторяется 10 раз. Это'Должен остановиться после 10 циклов, но он будет продолжаться вечно.
Это код, который я использую:
section .data
msg db "Hello, World!", 0x0a
len equ $-msg
section .text
global _start
_start:
mov cx, 10 ; loop counter
_loop_start:
mov ebx, 0x01
mov ecx, msg
mov edx, len
mov eax, 0x04
int 0x80
dec cx
cmp cx, 0
jge _loop_start
_done:
mov ebx, 0x00
mov eax, 0x01
int 0x80
Прежде чем пытаться написать этот код, я посмотрел наэтот урок для выполнения простой арифметики.
Я компилирую это так:
nasm -f elf64 test.s -o test.o
И ссылка, как это:
ld -s -o test_exec test.o
Заранее спасибо, Аникян