| | |
| Stránka: 1 z 1
| [ Príspevkov: 7 ] | |
Autor | Správa |
---|
Registrovaný: 15.04.12 Prihlásený: 06.06.13 Príspevky: 23 Témy: 10 |
cawte mam otazku ze ci niekto nevie ako by sa dal nejaky cyklus zrychlit s poctom opakovani. chcem nech na zaciatku ide pomaly a potom rychlejsie ale nenasiel som take instrukcie ani nic a nemyslim ani ze ma vyznam zatazit procesor ked on aj tak vsetko vykona pomerne rychlo. dakujem za radu
|
|
Registrovaný: 11.01.09 Prihlásený: 29.03.24 Príspevky: 1385 Témy: 9 Bydlisko: Hrinova | Napísal Fico: 03.03.2013 18:22 | |
|
Tak co chces vlastne, zrychlit nejaky cyklus vylepsenim kodu (ak ano, daj sem kod, ktory potrebujes zrychlit) alebo naopak spomalit a casom nech sa zrychli - respektive nech sa vykonava povodnou maximalnou rychlostou? Ak druha moznost, tak zalezi aj od toho, na akej urovni to potrebujes, ci pracujes iba v 16-bite, alebo v 32-bite a mozes pouzit aj WINAPI pripadne ine rozhranie v zavislosti od OS. Ak nie, tak ti staci volat NOP instrukciu --> http://en.wikipedia.org/wiki/NOP
_________________ Ak potrebujete pomoc s diagnostikou/opravou vasej elektroniky ( notebook, motherboard, GPU, a ine ), kontaktujte ma cez SS. |
|
Registrovaný: 15.04.12 Prihlásený: 06.06.13 Príspevky: 23 Témy: 10 |
no ako malo by to byt napisane cisto v textovom editore a potom to uz lend at prelozit cez tasm. no malo by to byt tak ze najprv ukaze znak / a potom znak \ a budu sa striedat a cim dalej sa budu rychlejsie striedat. kod sem hodim az zajtra lebo este som sa k tomu nedostal vypracovavam este dva projekty dalsie. ja ako nechem aby mi to tu niekto urobil za mna. len potrebujem poradit lebo uz som zvazoval viacej sposobov ako to naprogramovat ale ani jeden nebude fungovat podla mna
|
|
Registrovaný: 11.01.09 Prihlásený: 29.03.24 Príspevky: 1385 Témy: 9 Bydlisko: Hrinova | Napísal Fico: 03.03.2013 20:50 | |
|
Jasne, ale spravit nieco v assemberi sa da dost vela sposobmi, takze treba dat viac informacii a hlavne tvoj kod. Skusim otazku znova - mozes pouzit winapi? Alebo to ma byt iba pomocou instrukcii? Ak mozes pouzit winapi, staci ti volat jedinu funkciu Sleep s meniacim sa casom odozvy.
_________________ Ak potrebujete pomoc s diagnostikou/opravou vasej elektroniky ( notebook, motherboard, GPU, a ine ), kontaktujte ma cez SS. |
|
Registrovaný: 15.04.12 Prihlásený: 06.06.13 Príspevky: 23 Témy: 10 | |
Registrovaný: 24.08.12 Prihlásený: 09.02.19 Príspevky: 59 Témy: 0 | Napísal faraon: 04.03.2013 1:42 | |
|
Udělej si čekací smyčku, a pokaždé když se za ní dostaneš tak sniž pro příště počet cyklů. Ale jen dokud je větší než nula
_________________ "Existuje pouze jeden člověk, který má méně přátel než Bill Gates, a tím je Saddám Husajn." (Paul Grayson) |
|
Registrovaný: 15.04.12 Prihlásený: 06.06.13 Príspevky: 23 Témy: 10 |
;Zadanie: Zobrazte na zvolenom miete obrazovky znak / a na tom istom mieste s veľkým oneskorením znak \. ;Striedajte zobrazovanie oboch znakov zvolený početkrát. Zobrazovanie každého znaku zrýchlujte. ;Zhodnotenie: ;---------------------------------------------------------------------------- ZAS SEGMENT STACK ;direktiva pre assembler - zaciatok ; zasobnikoveho segmentu DW 400 DUP(?) ;definicia 64-och slov ZAS ENDS ;koniec zasobnikoveho segmentu ;---------------------------------------------------------------------------- DATA SEGMENT ;zaciatok datoveho segmentu a DB 'Zvolte z moznosti 1, 2, 3.$' ;definicia retazca b DB 'Autor: jozko$' ; c DB 'Zadanie: Zobrazte na zvolenom miete obrazovky znak / a na tom istom mieste s velkym oneskorenim znak \.$' ; d DB 'Striedajte zobrazovanie oboch znakov zvoleny pocetkrat. Zobrazovanie kazdeho znaku zrychlujte.$' ; e DB 'Zadali ste nespravny znak.$' ; DATA ENDS ;koniec datoveho segmentu ;---------------------------------------------------------------------------- CODE SEGMENT ;zaciatok kodoveho segmentu ASSUME CS:CODE, DS:DATA, SS:ZAS ;direktiva oznamuje ;assembleru pouzite segmenty ;----------------------------------------------------------------------------
novyriadok MACRO a mov dl, 13d ; mov ah, 2h ; int 21h ; mov dl, 10d ; mov ah, 2h ; int 21h ; endm delay PROC NEAR ;funkcia na spomalenie procesora ; push ds ; push si ; push ax ; xor ax, ax ;AX = 0 mov ds, ax ;DS = 0 mov si, 046Ch ; t1: mov ax, [si] ; t2: cmp ax, [si] ; je t2 ; loop t1 ; pop ax ; pop si ; pop ds ; ret ; delay ENDP ;
START: call p novyriadok mov ah,1 int 21h cmp al,49 jz vypis1 cmp al,51 jz koniec cmp al,27 jz koniec jmp zlyznak int 21h ;prerusenie na vykonanie ukoncenia programu jmp koniec
;vypis : ; MOV AX, SEG DATA ;do AX vloz adresu segmentu DATA ; MOV DS, AX ;segmentovu adresu presun do DS ; MOV DX, OFFSET a ;do DX vloz posunutie retazca v datovom segmente, ; ;cize relativna adresa TEXT sa ulozi do DX ; ;novyriadok ; MOV AH, 09H ; ; INT 21H ;funkcia na vypis retazca (write string) p proc MOV AX, SEG DATA ;do AX vloz adresu segmentu DATA MOV DS, AX ;segmentovu adresu presun do DS MOV DX, OFFSET a ;do DX vloz posunutie retazca v datovom segmente, ;cize relativna adresa TEXT sa ulozi do DX ;novyriadok MOV AH, 09H ; INT 21H ;funkcia na vypis retazca (write string) ret p endp
vypis1 proc MOV AX, SEG DATA ;do AX vloz adresu segmentu DATA MOV DS, AX ;segmentovu adresu presun do DS MOV DX, OFFSET b ;do DX vloz posunutie retazca v datovom segmente, ;cize relativna adresa TEXT sa ulozi do DX novyriadok MOV AH, 09H ; INT 21H ;funkcia na vypis retazca (write string) jmp vypis2 ret vypis1 endp vypis2 proc MOV AX, SEG DATA ;do AX vloz adresu segmentu DATA MOV DS, AX ;segmentovu adresu presun do DS MOV DX, OFFSET c ;do DX vloz posunutie retazca v datovom segmente, ;cize relativna adresa TEXT sa ulozi do DX novyriadok MOV AH, 09H ; INT 21H ;funkcia na vypis retazca (write string) jmp vypis3 ret vypis2 endp vypis3 proc MOV AX, SEG DATA ;do AX vloz adresu segmentu DATA MOV DS, AX ;segmentovu adresu presun do DS MOV DX, OFFSET d ;do DX vloz posunutie retazca v datovom segmente, ;cize relativna adresa TEXT sa ulozi do DX novyriadok MOV AH, 09H ; INT 21H ;funkcia na vypis retazca (write string) jmp START ret vypis3 endp zlyznak : novyriadok MOV AX, SEG DATA ;do AX vloz adresu segmentu DATA MOV DS, AX ;segmentovu adresu presun do DS MOV DX, OFFSET e ;do DX vloz posunutie retazca v datovom segmente, ;cize relativna adresa TEXT sa ulozi do DX novyriadok MOV AH, 09H ; INT 21H ;funkcia na vypis retazca (write string) jmp START
koniec:
MOV AH, 4CH ;funkcia na ukoncenie programu int 21H
CODE ENDS ;koniec kodoveho segmentu END START ;koniec suboru - pre assembler ; program bude spusteny od navestia START
tu je ten program hore je aj co to ma robit uz som vytvoril cyklus ktory spomaly procesor takze to som vyriesil len neviem rpeco ale blbne mi uvodne menu ma fungovat tak ze napise najprv zvolte jednu z moznosti a potom stlaci uzivatel 1, 2 alebo 3 a jednotka da informacie dvojka spusti program a trojka ukonci a este ked neico ine clovek stlaci tak to trebaosetrit no a nakodil som to a vobec mi to nejde aj keby malo dal som tam porovnavat a potom vzdy vykonat podmieneny skok a aj nejake nepodmienene a nejde to
|
|
| Stránka: 1 z 1
| [ Príspevkov: 7 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| Čas vykonávania skriptu - funkcia v PHP, ASP | 3 | 408 | 18.07.2010 14:00 DARSON | | zmena cyklu v Assembler, C, C++, Pascal, Java | 4 | 494 | 25.03.2011 10:08 zaefrim | | Opakovanie while cyklu v PHP, ASP | 2 | 500 | 05.08.2010 10:24 eth4rendil | | Asembler prevod v Assembler, C, C++, Pascal, Java | 4 | 2120 | 21.04.2010 9:45 dadesk8 | | z funcie do cyklu v Assembler, C, C++, Pascal, Java | 5 | 322 | 30.12.2010 8:55 reDo | | Plis,asembler help:(surne v Assembler, C, C++, Pascal, Java | 2 | 903 | 25.08.2007 15:01 cinges | | Pascal,Asembler a Win XP v Assembler, C, C++, Pascal, Java | 1 | 1562 | 14.11.2005 22:01 JanoF | | Asembler- vystup desiatkovo---pls surne v Assembler, C, C++, Pascal, Java | 1 | 847 | 20.03.2010 20:42 Fico | | [Asembler] pocet malych a velkych pismen v Assembler, C, C++, Pascal, Java | 5 | 498 | 13.04.2015 20:31 TieSTiK | | čast cyklu while obsahujuca IF sa mi neopakuje v PHP, ASP | 6 | 451 | 26.07.2010 12:30 Blackshadow | | da sa pouzit nekonecny cyklus na spustenie mesacneho cyklu? v PHP, ASP | 16 | 1030 | 16.10.2008 15:34 Roko | | ASEMBLER:Určte počet slov obsahujúcich reťazec ASM alebo asm v Assembler, C, C++, Pascal, Java | 7 | 1414 | 25.03.2011 10:07 dury26 | | zrychlenie v Operačné systémy Microsoft | 3 | 612 | 25.07.2008 19:09 exoomer | | zrychlenie Windowsu v Operačné systémy Microsoft | 15 | 997 | 26.08.2007 22:46 yterbium | | Zrychlenie pocitaca [ Choď na stránku: 1, 2 ] v Operačné systémy Microsoft | 40 | 1539 | 21.03.2013 17:48 Milan1 | | Hardwerove zrychlenie v Ovládače | 6 | 3774 | 15.01.2011 13:07 Aliens |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|