Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 3 ] 
AutorSpráva
Offline

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

Registrovaný: 22.03.10
Prihlásený: 02.05.10
Príspevky: 5
Témy: 1
Príspevok NapísalOffline : 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


Offline

Užívateľ
Užívateľ
Assembler 8086-porovnsvanie zo znakmy 1 slova

Registrovaný: 23.11.08
Príspevky: 187
Témy: 34
Bydlisko: IP: 209.85....
Príspevok NapísalOffline : 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.
Offline

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

Registrovaný: 22.03.10
Prihlásený: 02.05.10
Príspevky: 5
Témy: 1
Príspevok Napísal autor témyOffline : 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


Odpovedať na tému [ Príspevkov: 3 ] 


Podobné témy

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

v Ostatné

19

744

19.11.2011 22:50

Hawkie Zobrazenie posledných príspevkov

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

v nVidia grafické karty

8

2237

11.09.2011 1:33

thebastard Zobrazenie posledných príspevkov

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

v Video programy

5

554

19.10.2009 15:21

ejo Zobrazenie posledných príspevkov

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

v Audio programy

1

410

02.10.2012 12:18

shiro Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Google Analytics: kľúčové slová

v Internetový marketing, SEO, reklama

4

1501

31.10.2014 17:16

Ľubomír VWS Zobrazenie posledných príspevkov

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

v Ostatné programy

2

614

03.12.2007 21:07

wiktor01 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Roztriedenie slova na písmená.

v PHP, ASP

14

324

04.03.2013 18:12

walther Zobrazenie posledných príspevkov

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

v JavaScript, VBScript, Ajax

2

564

30.03.2016 15:29

neopagan Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Blokovanie internetu cez zakázané slová

v Ostatné programy

1

333

31.05.2013 10:58

Spixy Zobrazenie posledných príspevkov

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

v Audio programy

10

6289

30.04.2010 20:25

Black Scorpion Zobrazenie posledných príspevkov

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

v PHP, ASP

15

997

27.07.2010 18:07

stenley Zobrazenie posledných príspevkov

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

v Internetový marketing, SEO, reklama

17

2166

01.03.2009 21:41

shaggy Zobrazenie posledných príspevkov

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

v Ostatné programy

1

2769

03.05.2010 20:26

ac.milan Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. LibreOffice Calc - vymazanie slova z buniek

v Ostatné programy

2

826

31.05.2011 11:08

tairikuokami Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Osetrenie vstupu pre dve slova a viac

v PHP, ASP

3

429

13.05.2013 19:12

BX Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. hladam soft, ktory oddely slova od pesnicky, alebo naopak

v Audio programy

2

900

23.07.2009 23:06

Dj_Jeli Zobrazenie posledných príspevkov


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

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra