Dzień dobry!
Chciałem napisać program w 16-bitowym nasm na dosa, który będzie rysował "odwrócony" trójkąt ze znaków, które poda użytkownik. Np. po podaniu abc
zostanie narysowany:
aaaaa
bbb
c
Napisałem już ramy tego programu, tzn program który pobiera do bufora tekst z kosnoli, zadeklarowałem parę zmiennych, i tyle.
org 100h
start:
;zerowanko rejestrów
xor ax,ax
xor bx,bx
xor cx,cx
xor dx,dx
mov ah, 9 ; wypisuje tekst aby podac ciag znakow
mov dx, podaj
int 21h
mov ah, 0ah ; pobiera ciag znakow
mov dx, bufer
int 21h
xor bx, bx
mov bl, [dlugosc]
mov byte [tekst+bx+1], '$'
call wypisz_nl ; nowa linia
;;;;;;;;;;;;;;;;;;;;
; tutaj prawdopodobnie kod do rysowania
;;;;;;;;;;;;;;;;;;;;
mov ax, 4c00h ; zakonczenie programu
int 21h
wypisz_nl:
mov dx, nowalinia
mov ah, 9
int 21h
ret
wypisz_znak:
mov ah, 2
int 21h
ret
nowalinia db 13, 10, '$'
bufer db 20
dlugosc db 0
tekst: times 22 db '$'
podaj db "Podaj mnie tutej ciag znakow: $"
Jednakże nie mam pomysłu (żadnej koncepcji) jak obliczać ilość znaków i spacji do wyświetlenia, jakie pętle stworzyć. Pomożecie? :)