Added a simple program for compare numbers
This commit is contained in:
46
max.asm
Normal file
46
max.asm
Normal file
@@ -0,0 +1,46 @@
|
||||
; A simple program that print in output
|
||||
; the max between two numbers.
|
||||
;
|
||||
; Author: Fabio Scotto di Santolo
|
||||
; Date: 02/07/2025
|
||||
|
||||
global _start
|
||||
|
||||
section .text
|
||||
_start:
|
||||
mov eax, [a] ; load a value in eax register
|
||||
mov ebx, [b] ; load b value in ebx register
|
||||
cmp eax, ebx ; compare a and b values
|
||||
jg greater
|
||||
jle less_or_equal
|
||||
|
||||
less_or_equal: ; print b is greater or equal than b
|
||||
mov eax, 0x04 ; write syscall
|
||||
mov ebx, 1 ; STDOUT file descriptor
|
||||
mov ecx, msg1
|
||||
mov edx, len1
|
||||
int 0x80 ; trigger syscall
|
||||
jmp end
|
||||
|
||||
greater: ; print a is greater than b
|
||||
mov eax, 0x04 ; write syscall
|
||||
mov ebx, 1 ; STDOUT file descriptor
|
||||
mov ecx, msg2
|
||||
mov edx, len2
|
||||
int 0x80 ; trigger syscall
|
||||
jmp end
|
||||
|
||||
end:
|
||||
; call syscall exit
|
||||
mov eax, 0x1
|
||||
xor ebx, ebx ; reset register to 0
|
||||
int 0x80 ; trigger syscall
|
||||
|
||||
section .data
|
||||
a: dd 10
|
||||
b: dd 40
|
||||
msg1: db "A is less or equal than B", 0xA
|
||||
len1: equ $ - msg1
|
||||
msg2: db "A is greater than B", 0xA
|
||||
len2: equ $ - msg2
|
||||
|
||||
Reference in New Issue
Block a user