%macro WRITE 2
mov rax, 01
mov rdi, 01
mov rsi, %1
mov rdx, %2
syscall
%endmacro
%macro READ 2
mov rax, 00
mov rdi, 00
mov rsi, %1
mov rdx, %2
syscall
%endmacro
%macro EXIT 0
mov rax, 60
mov rdi, 00
syscall
%endmacro
section .data
msg1 db "Enter 2 numbers", 10
len1 equ $-msg1
msg2 db "Addition is: "
len2 equ $-msg2
section .bss
a resb 1
b resb 1
c resb 1
section .text
global _start
_start:
WRITE msg1, len1
READ a, 1
sub byte [a], 30H
READ b, 1
sub byte [b], 30H
mov bl, byte [a]
add bl, byte [b]
add bl, 30H
mov byte [c], bl
WRITE msg2, len2
WRITE c, 1
EXIT
JW1hY3JvIFdSSVRFIDIKICAgIG1vdiByYXgsIDAxCiAgICBtb3YgcmRpLCAwMQogICAgbW92IHJzaSwgJTEKICAgIG1vdiByZHgsICUyCiAgICBzeXNjYWxsCiVlbmRtYWNybwoKJW1hY3JvIFJFQUQgMgogICAgbW92IHJheCwgMDAKICAgIG1vdiByZGksIDAwCiAgICBtb3YgcnNpLCAlMQogICAgbW92IHJkeCwgJTIKICAgIHN5c2NhbGwKJWVuZG1hY3JvCgolbWFjcm8gRVhJVCAwCiAgICBtb3YgcmF4LCA2MAogICAgbW92IHJkaSwgMDAKICAgIHN5c2NhbGwKJWVuZG1hY3JvCgpzZWN0aW9uIC5kYXRhCgptc2cxIGRiICJFbnRlciAyIG51bWJlcnMiLCAxMApsZW4xIGVxdSAkLW1zZzEKCm1zZzIgZGIgIkFkZGl0aW9uIGlzOiAiCmxlbjIgZXF1ICQtbXNnMgoKc2VjdGlvbiAuYnNzCgphIHJlc2IgMQpiIHJlc2IgMQpjIHJlc2IgMQoKc2VjdGlvbiAudGV4dApnbG9iYWwgX3N0YXJ0Cgpfc3RhcnQ6CgogICAgV1JJVEUgbXNnMSwgbGVuMQoKICAgIFJFQUQgYSwgMQogICAgc3ViIGJ5dGUgW2FdLCAzMEgKCiAgICBSRUFEIGIsIDEKICAgIHN1YiBieXRlIFtiXSwgMzBICgogICAgbW92IGJsLCBieXRlIFthXQogICAgYWRkIGJsLCBieXRlIFtiXQoKICAgIGFkZCBibCwgMzBICiAgICBtb3YgYnl0ZSBbY10sIGJsCgogICAgV1JJVEUgbXNnMiwgbGVuMgogICAgV1JJVEUgYywgMQoKICAgIEVYSVQ=