Telitett Negyzet Kirajzolasa Assemblyben
unknown
assembly_x86
4 years ago
1.4 kB
8
Indexable
Code Segment assume CS:Code, DS:Data, SS:Stack Start: mov ax, Code mov DS, AX ; Képernyő Törlés mov ax,03h int 10h ; Kurzor pozicionálás mov ah,02h mov bl,0 mov dl,40 mov dh,12 int 10h ; Beállítom a négyzet méretét a CX regiszterbe és beteszem a stackbe mov cx,5 push cx ; Átmásolom a DI regiszterbe a CX értékét (5) mivel 5x kell majd lefusson a ciklus mov di,cx Kulso: pop cx ;megbizonyosodom rolla hogy cx ben ; a eredeti meret legyen megadva a belso loop miat push cx Belso: ; Karakter kiíratása - * mov ah,02h mov dl,"*" int 21h loop Belso ; Kurzor pozicionálás - Megnöveljük a DH-t hogy a kovetkezo oszlop kovetkezzen mov ah,02h mov bl,0 mov dl,40 inc dh int 10h dec di ; Csökkentjük a DI-t mert már ugye egyszer lefutott a ciklus, így már csak pl: 4x kell lefutnia mov cx,di ; Átmásoljuk a CX regiszterbe. Amennyiben 0 van a CX-ben kilépünk a loop-bol loop Kulso ; Ha leutunk egy billentyut akkor vege a program futásának xor ax,ax int 16h pop ax ; A végén kiürítjük a vermet Program_Vege: mov ax, 4c00h int 21h Code Ends Data Segment Data Ends Stack Segment Stack Ends End Start
Editor is loading...