| | |
| Stránka: 1 z 1
| [ Príspevkov: 3 ] | |
Autor | Správa |
---|
Registrovaný: 22.03.10 Prihlásený: 02.05.10 Príspevky: 5 Témy: 1 | Napísal baky: 29.04.2010 21:01 | |
|
zdravim...potreboval by som pomoct prerobit tento zdrojak tak aby pocital slova ktore maju rovnake samohlasky ako 1.slovo a nie vsetky znaky..a vypis by mal byt v dvojkovej sustave ...help pls.
Kód: .model SMALL .stack 50 .data
RET1 DB 10,13,'Bolo zadane iba jedno slovo$' ;sprava POCET Dw 0 ;premenna pocet znakov 1.slova 16bitove cislo poc db 0 ;premenna znaky 1.slova, 8 bit zhod dw 0 ;premenna pocet zhodnych znakov so znakmi prveho slova 8bit sum db 0 ;pocet vcetkych vyhovujucich slov 8bit suma dw 0 ;pocet vcetkych vyhovujucich slov 16bit jed db 0 ;pocet jednotiek des db 0 ;pocet desiatok sto db 0 ;pocet stoviek
.code
getchar PROC ;procedura na nacitanie znaku MOV AH,01 INT 21H RET getchar ENDP
napln proc ;procedura pre vytvorenie pomocneho pola znakov preveho slova mov ax,50 ;nastavenia na adresu zaciatku pola s nacitanymi znakmi mov si,ax mov ax,150 ;nastavenia na adresu zaciatku pola kam sa znaky skopiruju mov di,ax mov cx,pocet pokr: mov bl,[si] ;cyklus v ktorom sa znaky skopiruju do pomoc pola mov [di],bl inc di inc si dec cx cmp cx,0 jnz pokr ret napln endp
START: mov ax,50 ;predpriprava premennych mov si,ax MOV AX,@data MOV DS,AX
slovo: CALL getchar ;nacitanie znaku CMP AL,32 ;POROVNANIE S MEDZEROU JZ MEDZ ;ak je medzera skok na medz CMP AL,13 ;POROVNANIE S ENT JZ malo ;ak je ent skok na malo cmp poc,0 ;zistuje ci uz bol nejaky znak ulozeny mov cx,pocet ;uklada pocet ulozenych do registra CX jnz kontr ;ak uz bol ulozeny nejaky znak skace na kontr kde sa skontroluje ci uz bol aktualny znak nacitany
skok: mov [si],a ;nacitanie aktualneho znaku na adresu ulozenu v SI inc si ;SI +1 aby sa mohlo pristupit na dalsiu adresu v poradi INC POCET ;zvysi sa pocet nacitanych znakov 8 aj 16 bitove cislo inc poc JMP slovo ;nacita sa dalsi znak
kontr: mov si,50 ;nastavenie na zaciatok pola so znakmi 1. slova - 1. nacitany znak kon: cmp al,[si] ;porovnanie aktualneho znaku s SI-tym ulozenym znakom jz slovo ;ak su rovnake v poli je uz tento znak ulozeny a cita sa dalsi v poradi inc si ;ak nie je obsiahnuty zvysi sa cislo adresy dec cx ;pomocna premenna s poctom ulozenych sa dekrementuje cmp cx,0 ;ak pomocna premenna CX<>0 cyklus sa opakuje kym sa neskontroluju vsetky znaky jnz kon jmp skok ;ak sa aktualny znak nenachadza v poli, skok a ulozenie na prazdnu adresu
MEDZ: cmp poc,0 ;zistuje sa ci uz bolo nejake prve slovo nacitane jz slovo ;ak nie prvy znak je medzera a cita sa dalsi znak kym sa nenacitaju znaky 1.slova call napln ;nacitane znaky sa ulozia do pomocneho pola CALL GETCHAR ;nacita sa dalsi znak CMP AL,13 ;zistuje sa ci je znak enter JZ MALO ;ak ano bolo zadane iba 1 slovo CMP AL,32 ;zistuje sa ci je znak medzera JNZ CITAT ;ak nie porovnavaju sa znaky dalsieho slova so znakmi prveho JMP MEDZ ;ak je medzera cita sa dalej kym sa nenacita iny znak
malo: MOV DX,offset RET1 ;vypis informacie ze bolo zadane iba 1 slovo MOV AH,09 INT 21H mov ax, 4c00h ;Konec programu, navrat do DOSu INT 21h
CITAT: CMP AL,13 ;opatovne porovnanie znaku s enterom JZ posledne ;ak je enter skok na posledne kde sa zisti ci posledne slovo vyhovuje cmp al,32 ;zistuje sa ci je aktualny znak medzera jz space ;ak je skok na space kde sa zisti ci obsahuje vsetky znaky 1. slova mov si,150 ;nastavenie cyklu na adresu s 1. znakom pomocneho pola mov cx,pocet ;do pomocnej premennej sa nacita pocet znakov 1. slova
zisti: cmp al,[si] ;v cykle sa porovna aktualny znak so znakmi pomocneho pola, jnz dalej ;ak sa nerovna niektoremu znaku skok na dalej kde sa pripravy citanie dalsieho znaku mov bl,0 ;ak sa rovna niektoremu znaku ulozi sa na jeho miesto 0 aby ho nezapocitalo viac krat mov [si],bl ;v pripade ze sa znak v slove opakuje inc zhod ;a inkrementuje sa pocet zhodnych znakov dalej: inc si ;nastavi sa na dalsiu adresu dec cx ;pomocna premenna sa znizi o 1 cmp cx,0 ;ak sa pomocna premenna nerovna 0 cyklus sa opakuje jnz zisti dalsi: CALL GETCHAR ;ak so rovna nule nacita sa dalsi znak v poradi JMP CITAT ;a zistuje sa aky znak to je
posledne: mov cx,pocet cmp zhod,cx ;zistuje sa ci sa pocet znakov 1. slova rovna poctu zhodnych znakov prveho a posledneho nacitaneho jnz prevod ;ak sa nerovna pokracuje sa na prevod do 10 sustavy inc sum ;ak sa rovna slovo vyhovuje a zvysi sa pocer vyhovujuciyvh slov 8 aj 16 bitove cislo inc suma jmp prevod ;a skok na prevod space: mov cx,pocet ;zistuje sa ci sa pocet znakov 1. slova rovna poctu zhodnych znakov prveho a posledneho nacitaneho cmp zhod,cx jnz zle ;ak sa nerovna slovo nevyhovuje a skok na zle a preskoci sa tvysenie poctu vyhovujucuych inc sum ;ak sa rovna zvysi sa pocet vyhovujuciych 8 aj 16 bit inc suma zle: mov zhod,0 ;vynuluje sa pocet zhodnych znakov call napln ;nanovo sa do pomocneho pola nacitaju znaky prveho slova jmp dalsi ;nacita sa dalsi znak
prevod: jmp vypis
vypis: MOV AH,02 MOV DL,0AH INT 21H MOV AL,sum ADD AL,48 MOV DL,AL INT 21H mov ax, 4c00h;Konec programu, navrat do DOSu INT 21h
END START
|
|
Registrovaný: 23.11.08 Príspevky: 187 Témy: 34 Bydlisko: IP: 209.85.... | Napísal Logik: 29.04.2010 21:35 | |
|
je tam chyba: nie je deklarovane a. prekladac pise chybu konkretne pri riadku
Kód: mov [si],a a to je tak asi vsetko co ti k tomu prerobeniu poviem
_________________ Tajna misia: Ignorovat dlzne a makcene. |
|
Registrovaný: 22.03.10 Prihlásený: 02.05.10 Príspevky: 5 Témy: 1 | Napísal autor témy baky: 29.04.2010 22:04 | |
|
aha hej ale to som len omylom vymazal asi ...ale ajtak dik .....prosim ak mi niekto vie s tymto pomoct tak by som bol velmi vdacny
|
|
| Stránka: 1 z 1
| [ Príspevkov: 3 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| Kľúčové slová v Ostatné | 19 | 744 | 19.11.2011 22:50 Hawkie | | Význam slova Vram v nVidia grafické karty | 8 | 2237 | 11.09.2011 1:33 thebastard | | hudba a slova v Video programy | 5 | 554 | 19.10.2009 15:21 ejo | | vytiahnutie hovoreného slova v Audio programy | 1 | 410 | 02.10.2012 12:18 shiro | | Google Analytics: kľúčové slová v Internetový marketing, SEO, reklama | 4 | 1501 | 31.10.2014 17:16 Ľubomír VWS | | program ktory vytvara slova v Ostatné programy | 2 | 614 | 03.12.2007 21:07 wiktor01 | | Roztriedenie slova na písmená. v PHP, ASP | 14 | 324 | 04.03.2013 18:12 walther | | vyhladanie slova v zdrojovom kode v JavaScript, VBScript, Ajax | 2 | 564 | 30.03.2016 15:29 neopagan | | Blokovanie internetu cez zakázané slová v Ostatné programy | 1 | 333 | 31.05.2013 10:58 Spixy | | ako vystrihnut slova s pesniciek? v Audio programy | 10 | 6289 | 30.04.2010 20:25 Black Scorpion | | Zvyraznenie vyhladavaneho slova v texte v PHP, ASP | 15 | 997 | 27.07.2010 18:07 stenley | | Klucove slova v nazve domeny v Internetový marketing, SEO, reklama | 17 | 2166 | 01.03.2009 21:41 shaggy | | Program na prepisovanie hovoreneho slova v Ostatné programy | 1 | 2769 | 03.05.2010 20:26 ac.milan | | LibreOffice Calc - vymazanie slova z buniek v Ostatné programy | 2 | 826 | 31.05.2011 11:08 tairikuokami | | Osetrenie vstupu pre dve slova a viac v PHP, ASP | 3 | 429 | 13.05.2013 19:12 BX | | hladam soft, ktory oddely slova od pesnicky, alebo naopak v Audio programy | 2 | 900 | 23.07.2009 23:06 Dj_Jeli |
| 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
|
|