카테고리

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 조건문 비교 연산자

SECTION .data

x: dd 32
y: dd 56
msg1: db "X is greater thean Y",10,0
msg2: db "Y is greater thean X",10,0

SECTION .bss

SECTION .text

extern printf ;from c standard libray
global main   ; 


main:
 ;create stack frame
 push ebp
 mov ebp, esp

;if( x > y) {
 ; msg1
 ;} else{
 ; msg2
 ;}

 mov eax, DWORD [x]
 mov ebx, DWORD [y]

 cmp eax, ebx ; cmp x, y
 jg .xGreatThany
 push DWORD msg2
 call printf
 jmp .done
.xGreatThany:
 push DWORD msg1
 call printf
 jmp .done

.done:

 ;destory the stack frame
 mov esp, ebp
 pop ebp
 ret

댓글 없음:

댓글 쓰기