bits 32
section .data
num1 dd 250
num2 dd 10
num3 dd 5
msg db "Result (lower byte): 0x", 0
newline db 10
section .bss
hex_digit resb 2
section .text
global _start
_start:
mov eax, [num1]
mov ebx, [num2]
mov ecx, [num3]
add eax, ebx
sub eax, ecx
mov al, al
and al, 0x0F
cmp al, 0x0A
jl is_digit
add al, 0x37
jmp save_digit
is_digit:
add al, 0x30
save_digit:
mov [hex_digit], al
mov byte [hex_digit+1], 0
mov eax, 4
mov ebx, 1
mov ecx, msg
mov edx, 20
int 0x80
mov eax, 4
mov ebx, 1
mov ecx, hex_digit
mov edx, 1
int 0x80
mov eax, 4
mov ebx, 1
mov ecx, newline
mov edx, 1
int 0x80
mov eax, 1
xor ebx, ebx
int 0x80
Yml0cyAzMiAgICAgICAgICAgICAKCnNlY3Rpb24gLmRhdGEKICAgIG51bTEgZGQgMjUwICAgICAgICAKICAgIG51bTIgZGQgMTAgICAgICAgICAKICAgIG51bTMgZGQgNSAgICAgICAgICAKICAgIG1zZyBkYiAiUmVzdWx0IChsb3dlciBieXRlKTogMHgiLCAwCiAgICBuZXdsaW5lIGRiIDEwCgpzZWN0aW9uIC5ic3MKICAgIGhleF9kaWdpdCByZXNiIDIKCnNlY3Rpb24gLnRleHQKICAgIGdsb2JhbCBfc3RhcnQKCl9zdGFydDoKICAgIG1vdiBlYXgsIFtudW0xXQogICAgbW92IGVieCwgW251bTJdCiAgICBtb3YgZWN4LCBbbnVtM10KCiAgICBhZGQgZWF4LCBlYngKCiAgICBzdWIgZWF4LCBlY3gKICAgIG1vdiBhbCwgYWwKICAgIGFuZCBhbCwgMHgwRiAgICAgICAgCgogICAgY21wIGFsLCAweDBBCiAgICBqbCBpc19kaWdpdAogICAgYWRkIGFsLCAweDM3CiAgICBqbXAgc2F2ZV9kaWdpdAoKaXNfZGlnaXQ6CiAgICBhZGQgYWwsIDB4MzAKCnNhdmVfZGlnaXQ6CiAgICBtb3YgW2hleF9kaWdpdF0sIGFsCiAgICBtb3YgYnl0ZSBbaGV4X2RpZ2l0KzFdLCAwCgogICAgbW92IGVheCwgNCAgICAgICAgICAgIAogICAgbW92IGVieCwgMSAgICAgICAgICAgIAogICAgbW92IGVjeCwgbXNnICAgICAgICAgIAogICAgbW92IGVkeCwgMjAgICAgICAgICAgIAogICAgaW50IDB4ODAKCiAgICBtb3YgZWF4LCA0CiAgICBtb3YgZWJ4LCAxCiAgICBtb3YgZWN4LCBoZXhfZGlnaXQKICAgIG1vdiBlZHgsIDEKICAgIGludCAweDgwCgogICAgbW92IGVheCwgNAogICAgbW92IGVieCwgMQogICAgbW92IGVjeCwgbmV3bGluZQogICAgbW92IGVkeCwgMQogICAgaW50IDB4ODAKCiAgICBtb3YgZWF4LCAxICAgICAgICAgICAgCiAgICB4b3IgZWJ4LCBlYngKICAgIGludCAweDgwCg==