Wpis z mikrobloga

@Kicer86:

nie bij xD

global start

section .data
zm1 db 0
zm2 db 0
wynik db 0,10

section .text

start:

mov rax,3
mov rbx,0
mov rcx,zm1
mov rdx,2
int 80h

mov rax,3
mov rbx,0
mov rcx,zm2
mov rdx,2

int 80h

;konwersja

mov al,[zm1] ; al = *zm1
sub al,'0' ; al = (int)*zm1
mov [zm1],al ;*zm1 = al

mov al,[zm2] ; al = *zm1
sub al,'0' ; al = (int)*zm1
mov
@numeryczny_mikolaj12:

z głowy to cie nie powiem ale powinieneś zrobić coś w stylu
ustawiasz 4 lokacje pamięci ( znak a i b i stan)
i w przerwaniu klawiatury piszesz tak
jeśli stan==1 to obsługa a
jeśli stan==2 to obsługa b
jeśli stan==3 to obsługa znaku

obsługa a wygląda mniej więcej tak

weź wartość A z pamięci i #!$%@? do EAX
jeśli al > "9" albo al <"0" to przejdz do kolejnego
@numeryczny_mikolaj12: zrobiłbym tak:
1. zm1 i zm2 są buforami na ciąg znaków, powinny zatem być odpowiednio dużymi tablicami.
2. po odczytaniu danych od użytkownika, przeleć się bo obydwu buforach i poodejmuj '0' od każdego elementu
3. w pętli dodawaj jeden bufor do drugiego. Tu się robi trochę problematycznie bo: 1. trzeba, dla wyników większych od 10 robić przeniesienie do kolejnej pary cyfr, 2. trzeba pamiętać, że liczby mogą być różnej długości.