bits 32
section .data
num1 dd 15
num2 dd 20
msg db "Sum (lower byte): 0x", 0
newline db 10
section .bss
hex_digit resb 2
section .text
global _start
_start:
mov eax, [num1]
mov ebx, [num2]
add eax, ebx
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, 19
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
CmJpdHMgMzIgICAgICAgICAgICAgCgpzZWN0aW9uIC5kYXRhCiAgICBudW0xIGRkIDE1ICAgICAgICAKICAgIG51bTIgZGQgMjAgICAgICAgICAKICAgIG1zZyBkYiAiU3VtIChsb3dlciBieXRlKTogMHgiLCAwCiAgICBuZXdsaW5lIGRiIDEwCgpzZWN0aW9uIC5ic3MKICAgIGhleF9kaWdpdCByZXNiIDIKCnNlY3Rpb24gLnRleHQKICAgIGdsb2JhbCBfc3RhcnQKCl9zdGFydDoKICAgIG1vdiBlYXgsIFtudW0xXQogICAgbW92IGVieCwgW251bTJdCgogICAgYWRkIGVheCwgZWJ4ICAgICAgICAKCiAgICBtb3YgYWwsIGFsICAgICAgIAogICAgYW5kIGFsLCAweDBGICAgICAgICAKCiAgICBjbXAgYWwsIDB4MEEKICAgIGpsIGlzX2RpZ2l0CiAgICBhZGQgYWwsIDB4MzcKICAgIGptcCBzYXZlX2RpZ2l0Cgppc19kaWdpdDoKICAgIGFkZCBhbCwgMHgzMAoKc2F2ZV9kaWdpdDoKICAgIG1vdiBbaGV4X2RpZ2l0XSwgYWwKICAgIG1vdiBieXRlIFtoZXhfZGlnaXQrMV0sIDAKCiAgICBtb3YgZWF4LCA0ICAgICAgICAgICAgCiAgICBtb3YgZWJ4LCAxICAgICAgICAgICAgCiAgICBtb3YgZWN4LCBtc2cgICAgICAgICAgCiAgICBtb3YgZWR4LCAxOSAgICAgICAgICAgCiAgICBpbnQgMHg4MAoKICAgIG1vdiBlYXgsIDQKICAgIG1vdiBlYngsIDEKICAgIG1vdiBlY3gsIGhleF9kaWdpdAogICAgbW92IGVkeCwgMQogICAgaW50IDB4ODAKCiAgICBtb3YgZWF4LCA0CiAgICBtb3YgZWJ4LCAxCiAgICBtb3YgZWN4LCBuZXdsaW5lCiAgICBtb3YgZWR4LCAxCiAgICBpbnQgMHg4MAoKICAgIG1vdiBlYXgsIDEgICAgICAgICAgICAKICAgIHhvciBlYngsIGVieAogICAgaW50IDB4ODAK