Wpis z mikrobloga

Witam, uczę się assemblera i zajmuje się aktualnie działaniami arytmetycznymi. Mam program na sume 2 liczb wprowadzanych z klawiatury. Program działa ale tylko jeśli wynik jest liczba jednocyfrową, jeśli suma wynosi 10 wyświetla : jeśli 11 wyświetla ; . Nie mam pojęcia co źle zrobiłem. Oto kod:

section .tekst
global start

start:

mov eax, 4
mov ebx, 1
mov ecx, tekst
mov edx, [dlugosc]
int 80h

mov eax, 3
mov ebx, 0
mov ecx, x
mov edx, [dlgx]
int 80h

mov eax, 4
mov ebx, 1
mov ecx, tekst2
mov edx, [dlg2]
int 80h

mov eax, 3
mov ebx, 0
mov ecx, y
mov edx, [dlgy]
int 80h

mov eax, 4
mov ebx, 1
mov ecx, tekst3
mov edx, [dlg3]
int 80h

mov ecx, [x]
add ecx, [y]
sub ecx, 48
mov [wynik], ecx
mov edx, [dlgw]

mov eax, 4
mov ebx, 1
mov ecx, wynik
mov edx, [dlgw]
int 80h

mov eax, 1
int 80h

section .data

tekst db "Program obliczajacy sume dwoch liczb", 0ah, "Podaj pierwsza liczbe:", 0ah
dlugosc dd $-tekst
x dd 0
dlgx dd $-x
tekst2 db "Podaj druga liczbe:", 0ah
dlg2 dd $-tekst2
y dd 0
dlgy dd $-y
tekst3 db "Suma podanych liczb wynosi:", 0ah
dlg3 dd $-tekst3
wynik dd 0
dlgw dd $-wynik
#assembler #assembly #programowanie
  • 2