카테고리

asm (27) bootloader_x86_grub (1) C (92) compile (11) config (76) CPP (13) CSS (1) debugging (7) gimp (1) Go (1) html (1) Java (1) JavaScript (1) kernel (19) LibreOffice (3) Linux system progamming (21) MFC (1) opencv (4) OpenGL (1) PHP (1) Python (4) qemu (29) shell (3) socket (7) troubleshooting (2) ubuntu18.04 (2) windows (1)

2018/12/06

asm printf 메세지 출력

SECTION .data ;초기화된 자료형
SECTION .text ;asm 소스 코드
SECTION .bss  ; 초기화 하지 않은 자료형, 단 0으로 초기화된 변수는 이 위치에 지정됨.

msg; db "Hello world, this is assembly", 10, 0 ;사용할 메세지

;printf
SECTION .text  ;asm 소스 코드

global main
main:
    push ebp
    mov ebp, esp

    push msg
    call prinf

    mov esp, ebp
    pop ebp
    ret

; 사용자 언어 사용 가능 void main(){ }


example 
SECTION .data

msg: db "Hello world, this is assembly", 10, 0 ;출력 메세지

SECTION .text    ; asm code

extern printf
global main

main:
 push ebp
 mov ebp, esp

 push msg
 call printf

 mov esp, ebp
 pop ebp
 ret

compile
nasm -f elf -o asm1.o asm1.asm

댓글 없음:

댓글 쓰기