[ Príspevkov: 2 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 27.04.08
Prihlásený: 16.07.11
Príspevky: 126
Témy: 33 | 33
NapísalOffline : 29.11.2011 17:50 | eratosthenovo sito - NASM

Ahoj...programujem eratosthenovo sito v nasm no nefunguje to korektne:

Kód:
               bits 16
               %include "rw.asm"
segment code
..start:
               prologue
               
               call Read_Byte ;AL=vstup
               call WriteLn
               mov [j],al ;ulozenie vstupu do datoveho segmentu
               mov cl,al ;pocitadlo pre init
               cmp cl,0
               jz @koniec ;overenie ci bola zadana 0 ked ano koniec programu
               xor ch,ch ;vynulovanie ch
               xor ah,ah
               mov di,POLE ; register DI je nastaveny na adresu pola
               
               xor di,di
               ;inicializacia pola
@init_pole:
               mov [POLE+di],byte 1
               inc di
               loop @init_pole
               
               shr ax,1 ;vydelenie AX 2
               mov [i],al
               call Write_Byte
               call WriteLn
               mov cl,byte 2;nastavenie pocitadla pre cyklus
               ;nulovanie registrov
               xor di,di
               xor si,si
               xor ch,ch
               xor ax,ax
               
               add di,byte 2 ;aby cyklus zacal od 2
               add si, byte 2 ;opat posun pre cyklus
               
@vonkajsi_cyklus:
               cmp [POLE+si],byte 0 ;ked byt je 0 preskoc na dalsi
               jz @posun
               mov ax,si
               call Write_Byte
               mov al,' '
               call Write_Char
               push cx ;ulozenie pocitadla do zasobniku
               mov al,cl ;pre pocitanie nasobkov
@vnoreny_cyklus:
               mul cl ;pocitanie nasobkov i
               mov di,ax;zmnena offsetu na konkretny prvok
               mov [POLE+di],byte 0;prepis prvku nulou
               inc cl
               cmp al,[j] ;podmienka pre ovrenie ukoncenia cyklu
               jbe @vnoreny_cyklus
@posun:
               pop cx;vybe pocitadla zo zasobniku
               inc cl
               mov si,cx
               mov di,cx
               cmp cl,[i]
               jbe @vonkajsi_cyklus
               
               mov al,[j]
               call Write_Byte
               
@koniec            epilogue

segment DATA
POLE resb 256
i resb 1 ;ulozenie hranice
j resb 1; pri nasobeni



Offline

Skúsený užívateľ
Skúsený užívateľ
eratosthenovo sito - NASM

Registrovaný: 11.01.09
Prihlásený: 20.02.25
Príspevky: 1397
Témy: 10 | 10
Bydlisko: Hrinova
NapísalOffline : 30.11.2011 13:45 | eratosthenovo sito - NASM

Tak to je pekne, ale co znamena, "nefunguje korektne" ? Momentalne to na svojom stroji nemozem odskusat, takze bodlo by viac info. Po dalsie, myslim, ze si na nieco zabudol:
Kód:
%include "rw.asm"


Nevieme, co je obsah tohto suboru a teda ako sa spravaju pouzite funkcie z tohto include-u.


 [ Príspevkov: 2 ] 


eratosthenovo sito - NASM



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

eratosthenovo sito

v Assembler, C, C++, Pascal, Java

10

1469

19.11.2010 14:30

sniff

V tomto fóre nie sú ďalšie neprečítané témy.

NASM

v Assembler, C, C++, Pascal, Java

3

588

01.05.2009 2:01

chrono

V tomto fóre nie sú ďalšie neprečítané témy.

TASM na NASM

v Assembler, C, C++, Pascal, Java

0

501

15.05.2010 17:20

djkmito

V tomto fóre nie sú ďalšie neprečítané témy.

Síto nepropustí vodu, kladivo nerozbije displej

v Novinky

12

856

01.05.2012 12:43

Daron



© 2005 - 2025 PCforum, edited by JanoF