section .data
msg db "Hello world!", 0ah
section .text
global _start
_start:
mov rax, 1
mov rdi, 1
mov rsi, msg
mov rdx, 13
syscall
mov rax, 60
mov rdi, 0
syscall
section .data
msg db "Hello world!", 0ah
section .text
global _start
_start:
xor rcx, rcx
mov rcx, 12
_print_loop:
push rcx
mov rax, 1
mov rdi, 1
mov rsi, msg
mov rdx, 13
syscall
pop rcx
dec rcx
cmp rcx, 0
jne _print_loop
mov rax, 60
mov rdi, 0
syscall
rcx에 반복 할 횟수를 적고 실행할 때마다 1씩 줄어들게 해서 cmp와 jne를 통해 만약 rcx 값이 0이 아닐 때 _print_loop
로 점프하도록 하였습니다.
만약 rcx 값이 0일 때 jne에서 분기되지 않고 함수를 마칩니다.
section .data
msg db "Hello world!", 0ah
section .text
global _start
_start:
mov rax, 1
mov rdi, 1
mov rsi, msg
mov rdx, 13
syscall
mov rax, 1
mov rdi, 1
mov rsi, msg
mov rdx, 13
syscall
mov rax, 1
mov rdi, 1
mov rsi, msg
mov rdx, 13
syscall
mov rax, 1
mov rdi, 1
mov rsi, msg
mov rdx, 13
syscall
mov rax, 1
mov rdi, 1
mov rsi, msg
mov rdx, 13
syscall
mov rax, 1
mov rdi, 1
mov rsi, msg
mov rdx, 13
syscall
mov rax, 1
mov rdi, 1
mov rsi, msg
mov rdx, 13
syscall
mov rax, 1
mov rdi, 1
mov rsi, msg
mov rdx, 13
syscall
mov rax, 1
mov rdi, 1
mov rsi, msg
mov rdx, 13
syscall
mov rax, 1
mov rdi, 1
mov rsi, msg
mov rdx, 13
syscall
mov rax, 1
mov rdi, 1
mov rsi, msg
mov rdx, 13
syscall
mov rax, 1
mov rdi, 1
mov rsi, msg
mov rdx, 13
syscall
mov rax, 60
mov rdi, 0
syscall
그냥 아래 코드를 반복하면 됩니다.
mov rax, 1
mov rdi, 1
mov rsi, msg
mov rdx, 13
syscall