bits 32
section .data
num1 dd 10
num2 dd 5
msg db "Product (lower byte): 0x", 0
newline db 10
section .bss
hex_digit resb 2
section .text
global _start
_start:
mov eax, [num1]
mov ebx, [num2]
mul 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, 23
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
Yml0cyAzMgoKc2VjdGlvbiAuZGF0YQogICAgbnVtMSBkZCAxMCAgICAgICAgICAKICAgIG51bTIgZGQgNSAgICAgICAgICAgCiAgICBtc2cgZGIgIlByb2R1Y3QgKGxvd2VyIGJ5dGUpOiAweCIsIDAKICAgIG5ld2xpbmUgZGIgMTAKCnNlY3Rpb24gLmJzcwogICAgaGV4X2RpZ2l0IHJlc2IgMgoKc2VjdGlvbiAudGV4dAogICAgZ2xvYmFsIF9zdGFydAoKX3N0YXJ0OgogICAgbW92IGVheCwgW251bTFdICAgICAKICAgIG1vdiBlYngsIFtudW0yXSAgICAgCgogICAgbXVsIGVieCAgICAgICAgICAgICAKCiAgICBtb3YgYWwsIGFsICAgICAgICAgCiAgICBhbmQgYWwsIDB4MEYgICAgICAgIAoKICAgIGNtcCBhbCwgMHgwQQogICAgamwgaXNfZGlnaXQKICAgIGFkZCBhbCwgMHgzNwogICAgam1wIHNhdmVfZGlnaXQKCmlzX2RpZ2l0OgogICAgYWRkIGFsLCAweDMwCgpzYXZlX2RpZ2l0OgogICAgbW92IFtoZXhfZGlnaXRdLCBhbAogICAgbW92IGJ5dGUgW2hleF9kaWdpdCsxXSwgMAoKICAgIG1vdiBlYXgsIDQgICAgICAgICAgIAogICAgbW92IGVieCwgMSAgICAgICAgICAgCiAgICBtb3YgZWN4LCBtc2cgICAgICAgICAKICAgIG1vdiBlZHgsIDIzICAgICAgICAgIAogICAgaW50IDB4ODAKCiAgICBtb3YgZWF4LCA0CiAgICBtb3YgZWJ4LCAxCiAgICBtb3YgZWN4LCBoZXhfZGlnaXQKICAgIG1vdiBlZHgsIDEKICAgIGludCAweDgwCgogICAgbW92IGVheCwgNAogICAgbW92IGVieCwgMQogICAgbW92IGVjeCwgbmV3bGluZQogICAgbW92IGVkeCwgMQogICAgaW50IDB4ODAKCiAgICBtb3YgZWF4LCAxICAgICAgICAgICAKICAgIHhvciBlYngsIGVieAogICAgaW50IDB4ODAK