From 7b989eb032745825c6d870199aa977bd9d50bba7 Mon Sep 17 00:00:00 2001 From: Fabio Scotto di Santolo Date: Wed, 2 Jul 2025 16:04:05 +0200 Subject: [PATCH] Added a simple program for compare numbers --- README.md | 0 max.asm | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) mode change 100755 => 100644 README.md create mode 100644 max.asm diff --git a/README.md b/README.md old mode 100755 new mode 100644 diff --git a/max.asm b/max.asm new file mode 100644 index 0000000..9e31571 --- /dev/null +++ b/max.asm @@ -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 +