msg1
mov rdi, msgsize
syscall
mov rax, 0
mov rdi, 0
mov rsi, strbuf1
mov rdx, strsize
syscall
mov rax, 1
mov rdi, 1
mov rsi, msg2
mov rdx, msgsize
syscall
mov rax, 0
mov rdi, 0
mov rsi, strbuf2
mov rdx, strsize
syscall
; Convert from ASCII to Integer
mov rbx, qword[strbuf1]
add rbx, qword[strbuf2]
mov [result1], rbx
sub rbx, 30
mov [result2], rbx
; Convert from Integer to ASCII
; Output
segment readable writeable
strsize = 1024
strbuf1 rb strsize
strbuf2 rb strsize
result1 dq ?
result2 dq ?
msg1 db "Enter first number: ", 10, 0
msgsize = $ - msg1
msg2 db "Enter second number: ", 10, 0
А зачем 0 в конце строк? А ещё msg не разные. С одним из msgsize повезло.
Ещё бы запоминать, сколько байтов прочитали.
Обсуждают сегодня