extern printf
extern scanf
section .text
global main
main:
mov rdi, format
mov rsi, liczba
mov rax, 0
call scanf
mov r8, [liczba]
mov r9, [liczba]
inc r8
petla1:
dec r8
cmp r8, 0
je koniec
petla2:
cmp r9, 0
je petla1
dec r9
mov rdi, napis
mov rax, 0
call printf
jmp petla2
koniec:
mov rax, 0
ret
section .data
liczba dq 0
format db "%d", 0
napis db "*",0
Witajcie
Mam problem z wyżej pokazanym kodem. Rozwiązuję takie zadanie : * Napisz program, który narysuje kwadrat z gwiazdek (*) o wczytanej z klawiatury długości boku *
Otóż program się kompiluje, nawet nie wywala błędu przy wprowadzeniu liczby, ale zaraz po niej wyprowadza tylko jedną * zamiast całego kwadratu pomimo pętli.
Gdzie tu błąd?