TITLE MASM Template (main.asm)
INCLUDE Irvine32.inc
.data
cisla DB ? ;postupnost cisel
.code
main PROC
call Clrscr
mov eax,0 ;vynulovanie
mov edi,0
mov [cisla + edi],0 ;x0 = 0
call Vypis ;zavola proceduru na vypis
mov ecx,10 ;do ecx dam 10 lebo bude vypisovat 10 cisel
Cyklus:
inc edi ;zoberem si dalsie xi, najskor teda x1 lebo v edi bude 1 po tomto
mov al,2 ;2 lebo budem nasobit dvojkov
mov bl,[cisla + (edi - 1)] ;do bl si dam predchadzajuce cislo z postupnosti
mul bl ;vynásobím al s bl
add eax, edi ;a podla vzorca + i , kedze i predstavuje edi, pripocitam k cislu
mov [cisla + edi], al ;ulozim si cislo na dalsiu poziciu
call Vypis ;zavolam proceduru na vypis
loop Cyklus ;opakujem cyklus
exit
main ENDP
Vypis PROC uses eax ;procedúra ktorá mi vypíše číslo na obrazovku a pridá medzeru za číslo
mov al,[cisla + edi] ;uložím si do al aktuálne číslo ktoré som vytvoril
add al, '0' ;zmením ho na char aby mi vypísalo 0 1 2 3 ... atd
call WriteChar ;vypíšem
mov al, 20h ;pridám medzeru
call WriteChar ;vypíšem ju
ret ;vrátim sa s5 kde som skončil
Vypis ENDP
END main