Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
Ostatnio zmieniony przez Plastus : 19-12-2015, 12:22
section .text
global _start:
_start
etykstart:
call wypisywanie_tekstu ; początek, wypisywanie i wczytywanie dla 1 liczby (1)
call wczytywanie
call odejmowanie ascii
cmp esi, 1
je koniec1:
jmp etykstart ;pętla czy wczytana liczba jest równa 1, jeśli nie wraca do początku
;***********************************************
koniec1:
xor ax,ax
mov ax, [cyfra] ;tutaj jest
mov dx, [ax*100] ;duzy cyrk
call wczytywanie
xor al, al ;zerowanie rejestrów
xor esi, esi
call odejmowanie_ascii
cmp esi, 4
je koniec2:
jmp etykstart ;petla nr 2, jesli 2 znak jest równy 4, idzie dalej, jeśli nie to wraca na początek
;*****************************************************************
koniec2:
xor ax,ax ;tutaj jest
mov ax, [cyfra] ;duzy cyrk
mov dx, [ax*10] ;caly czas
call wczytywanie
xor al, al
xor esi, esi ;znowu zerowanie rejestrów
call odejmowani_ascii
cmp esi, 4
je koniec3:
jmp etykstart ;petla nr 3
;*****************************************************************
koniec3:
xor ax,ax ;tutaj jest
mov ax, [cyfra] ;duzy cyrk
mov dx, [ax*1] ;cały czas
mov wynik, dx ;wpisanie liczby 144 z rejestru do wyniku
mov eax, 4
mov ebx, 1
mov ecx, wynik ;tutaj chciałem wypisać wynik 144 na ekran, ale mogłem cos pomieszać bo miałem mętlik w głowie :v.
mov edx, [dlwynik]
int 80h
mov eax, 1
int 80h ; zakonczenie programu
;*****************************************************************
wypisywanie_tekstu:
mov eax, 4
mov ebx, 1
mov ecx, tekst
mov edx, [dl_tekst]
int 80h
ret;*****************************************************************
wczytywanie:
mov eax, 3
mov ebx, 0
mov ecx, zmienna
mov edx, 1
int 80h
ret;*****************************************************************
odejmowanie_ascii:
mov al, [zmienna]
sub al, 48
mov esi, al
mov cyfra, al
ret;*****************************************************************
section .data
tekst db "Podaj wynik mnozenia 12*12, kazda cyfre oddzielajac enterem", 0ah
dl_tekst dd $ - tekst
zmienna db 0
cyfra dd 0
wynik dd 0
dlwynik dd $ - wynik
Ostatnio zmieniony przez Plastus : 19-12-2015, 13:56
mov dx, byte [ax*100]
Ostatnio zmieniony przez szulak : 19-12-2015, 14:02
TIBIANTIS.ONLINE NAJLEPSZY SERWER 7.4
ONLINE SINCE 2020
irc: freenode.net in #torgdevs
ipse se nihil scire id unum sciat
Ostatnio zmieniony przez BBsrv : 23-12-2015, 20:11
Kontakt ze mną:
pw
Aktualnie 3 użytkowników przegląda ten temat. (0 użytkowników i 3 gości)
Zakładki