私は現在 Intel x86 Assembly を学んでおり、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
前もってありがとう、アニキヤン