Cześć, może mi ktoś pomóc wskazać błędy w tym niedziałającym programie?
global main
section .data
liczba1 dq 1
liczba2 dq 1
wynik dq 1
section .bss
section .text
main:
mov rax, 3
mov rbx, 0
mov rcx, liczba1
mov rdx, 4
int 80h
mov rax, 3
mov rbx, 0
mov rcx, liczba2
mov rdx, 4
int 80h
sub qword [liczba1], 48
sub qword [liczba2], 48
mov rdx, 0
mov rax, [liczba1]
mov rbx, [liczba2]
div rbx
mov [wynik], rax
add qword [wynik], 48
mov rax, 4
mov rbx, 1
mov rcx, wynik
mov rdx, 1
int 80h
;******************************
; usuwajac: sub qword [liczba1], 48
;
; mov rax, 4
; mov rbx, 1
; mov rcx, liczba1
; mov rdx, 1
; int 80h
; i wówczas jak wpisze 65 to zamiast pokazywania "A" wypisuje mi 65?
; dlaczego tak jest?
;******************************
mov rax, 1
mov rbx, 0
int 80h
Niestety nikt nie odpowiedział i musiałem się męczyć sam, ale dałem radę. Polecam debugger'a - SASM. Dla potomnych:
global main
section .data
number1 dq 1
number2 dq 1
result dq 1
newline dq 1
section .bss
section .text
main:
mov rbp, rsp; for correct debugging
mov rax, 3
mov rbx, 0
mov rcx, number1
mov rdx, 1
int 80h
mov rax, 3
mov rbx, 0
mov rcx, newline
mov rdx, 1
int 80h
mov rax, 3
mov rbx, 0
mov rcx, number2
mov rdx, 1
int 80h
mov rdx, 0
mov rax, [number1]
sub rax, 48
mov rbx, [number2]
sub rbx, 48
div rbx
add rax, 48
mov [result], rax
mov rax, 4
mov rbx, 1
mov rcx, result
mov rdx, 1
int 80h
mov rax, 1
mov rbx, 0
int 80h