320x100
소스코드 작성
Hello world를 출력하는 어셈블리어 코드 작성
section .data
text1 db "What is your name?", 10 ; "Hellow World"문자열을 저장하고 뒤의 숫자 10은 개행문자의 ASCII code이다.
text2 db "Hello "
section .bss
name resb 16
section .text
global _start
_start:
call _printText1
call _getName
call _printText2
call _printName
mov rax, 60
mov rdi, 0
syscall
_getName:
mov rax, 0 ; rax 0번은 표준 입력이다.
mov rdi, 0
mov rsi, name
mov rdx, 16
syscall
mov byte [rsi + rax], 0 ; 입력된 문자열 끝에 널 문자 추가
ret
_printText1:
mov rax, 1
mov rdi, 1
mov rsi, text1
mov rdx, 19
syscall
ret
_printText2:
mov rax, 1
mov rdi, 1
mov rsi, text2
mov rdx, 6
syscall
ret
_printName:
mov rax, 1
mov rdi, 1
mov rsi, name
mov rdx, 16
syscall
ret
실행
nasm -f elf64 hello_user.asm -o hello_user.o
ld hello_user.o -o hello_user
./hello_user
반응형
'프로그래밍 > Assembler' 카테고리의 다른 글
[어셈블리어] 1. x86_64 Hello world (0) | 2024.06.09 |
---|
댓글