section .data
msg db "Enter first number",10 ; Enter first no
len equ $-msg ; length of first number
msg1 db "Enter second number",10 ; Enter second no
len1 equ $-msg1 ; length of second number
msg2 db "The sum is",10
len2 equ $-msg2
section .bss
num1 resb 2 ; allocate memory for first number like int num1
num2 resb 2 ; Allocate memory for second number like int num2
sum resb 2 ; Allocate memory for sum like int sum
section .text
global _start
_start:
mov rax,1 ; write operation/display first message
mov rdi,1 ; fd value monitor
mov rsi,msg
mov rdx,len
syscall
mov rax,0 ; read/input first number
mov rdi,0 ;fd value of the keyboard
mov rsi,num1
mov rdx,2
syscall
mov rax,1 ; display second message
mov rdi,1
mov rsi,msg1
mov rdx,len1
syscall
mov rax,0 ; input second number
mov rdi,0
mov rsi,num2
mov rdx,2 ;size of num2
syscall
mov rax,[num1] ; move first number in rax
sub rax,30h ; convert it in original number
mov rbx,[num2] ; move second number in rbx
sub rbx,30h ; convert it in original number
add rax,rbx ; add two numbers
add rax,30h ;convert it in ascii
mov [sum],rax ; mov result in sum
mov rax,1 ;display msg2
mov rdi,1
mov rsi,msg2
mov rdx,len2
syscall
mov rax,1 ; display sum
mov rdi,1
mov rsi,sum
mov rdx,2
syscall
mov rax,60
mov rdi,0
syscall
c2VjdGlvbiAuZGF0YQptc2cgZGIgIkVudGVyIGZpcnN0IG51bWJlciIsMTAgICAgIDsgRW50ZXIgZmlyc3Qgbm8KbGVuIGVxdSAkLW1zZyAgICAgICAgICAgICAgICAgICAgICA7IGxlbmd0aCBvZiBmaXJzdCBudW1iZXIKbXNnMSBkYiAiRW50ZXIgc2Vjb25kIG51bWJlciIsMTAgICA7IEVudGVyIHNlY29uZCBubwpsZW4xIGVxdSAkLW1zZzEgICAgICAgICAgICAgICAgICAgOyBsZW5ndGggb2Ygc2Vjb25kIG51bWJlcgptc2cyIGRiICJUaGUgc3VtIGlzIiwxMApsZW4yIGVxdSAkLW1zZzIKIApzZWN0aW9uIC5ic3MKbnVtMSByZXNiIDIgOyBhbGxvY2F0ZSBtZW1vcnkgZm9yIGZpcnN0IG51bWJlciBsaWtlIGludCBudW0xCm51bTIgcmVzYiAyIDsgQWxsb2NhdGUgbWVtb3J5IGZvciBzZWNvbmQgbnVtYmVyIGxpa2UgaW50IG51bTIKc3VtIHJlc2IgMiAgICAgICA7IEFsbG9jYXRlIG1lbW9yeSBmb3Igc3VtIGxpa2UgaW50IHN1bQogCnNlY3Rpb24gLnRleHQKZ2xvYmFsIF9zdGFydApfc3RhcnQ6Cm1vdiByYXgsMSAgICAgICAgIDsgd3JpdGUgb3BlcmF0aW9uL2Rpc3BsYXkgZmlyc3QgbWVzc2FnZQptb3YgcmRpLDEgOyBmZCB2YWx1ZSBtb25pdG9yCm1vdiByc2ksbXNnCm1vdiByZHgsbGVuIApzeXNjYWxsCiAKbW92IHJheCwwCTsgcmVhZC9pbnB1dCBmaXJzdCBudW1iZXIKbW92IHJkaSwwIDtmZCB2YWx1ZSBvZiB0aGUga2V5Ym9hcmQKbW92IHJzaSxudW0xCm1vdiByZHgsMgpzeXNjYWxsCiAKbW92IHJheCwxICAgICAgICA7IGRpc3BsYXkgc2Vjb25kIG1lc3NhZ2UKbW92IHJkaSwxCm1vdiByc2ksbXNnMQptb3YgcmR4LGxlbjEKc3lzY2FsbAogCm1vdiByYXgsMCAgICAgICAgOyBpbnB1dCBzZWNvbmQgbnVtYmVyCm1vdiByZGksMAptb3YgcnNpLG51bTIKbW92IHJkeCwyIDtzaXplIG9mIG51bTIKc3lzY2FsbAogCm1vdiByYXgsW251bTFdICA7IG1vdmUgZmlyc3QgbnVtYmVyIGluIHJheApzdWIgcmF4LDMwaCAgOyBjb252ZXJ0IGl0IGluIG9yaWdpbmFsIG51bWJlcgptb3YgcmJ4LFtudW0yXSA7IG1vdmUgc2Vjb25kIG51bWJlciBpbiByYngKc3ViIHJieCwzMGggOyBjb252ZXJ0IGl0IGluIG9yaWdpbmFsIG51bWJlcgogCmFkZCByYXgscmJ4ICA7IGFkZCB0d28gbnVtYmVycwphZGQgcmF4LDMwaCA7Y29udmVydCBpdCBpbiBhc2NpaQptb3YgW3N1bV0scmF4IDsgbW92IHJlc3VsdCBpbiBzdW0KIAptb3YgcmF4LDEgICAgICA7ZGlzcGxheSBtc2cyCm1vdiByZGksMQptb3YgcnNpLG1zZzIKbW92IHJkeCxsZW4yCnN5c2NhbGwKIAptb3YgcmF4LDEgICA7IGRpc3BsYXkgc3VtCm1vdiByZGksMQptb3YgcnNpLHN1bQptb3YgcmR4LDIKc3lzY2FsbAogCiAKbW92IHJheCw2MAptb3YgcmRpLDAKc3lzY2FsbAog