Obsah fóra
PravidláRegistrovaťPrihlásenie




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

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

Registrovaný: 14.03.11
Prihlásený: 20.03.11
Príspevky: 4
Témy: 1
Príspevok NapísalOffline : 14.03.2011 15:59

Vedel by mi niekto pomôcť s prerobením tohto zadania:
Určte počet slov obsahujúcich len aritmetické operátory (+,-,*,/).
na Určte počet slov obsahujúcich reťazec ASM alebo asm.
Kód:
org 1000

dcx sp         ;inicializacia zasobnika (0FFFFh)

lxi h,text      ;vypis text
call putstr

lxi h,text1      ;vypis text1
call putstr

lxi d,vlozeny      ;adresa pre vstup retazca
call getline

lxi b,vlozeny

mvi d,0       ;pocet malych pismen
mvi e,0         ;pocet cislic
push psw      ;vlozime si nulu do zasobnika, pocet vyhovujucich slov
jmp char_loop

char:
mvi d,0         ;vynulovanie pocitadla
mvi e,0         ;vynulovanie pocitadla
char_loop:         ;citanie znakov a pocitanie cislic v slove
ldax b         ;nacitanie znaku z retazca
inx b         ;posun v retazci doprava
cpi 10         ;porovnanie pre koniec nacitavania, enter
jz koniec_nacitania      ;
cpi 32          ;porovnanie na koniec slova, space=medzera
jz pocet_slov     
cpi '/'         ;vacsie alebo rovne ako 0
jz increment     
cpi '*'      ;mensie alebo rovne ako 9
jz increment
cpi '-'         ;vacsie alebo rovne ako 0
jz increment     
cpi '+'      ;mensie alebo rovne ako 9
jz increment
inr e         ;zvysenie poctu cislic o 1
jmp char_loop

increment:
inr e
inr d         ;zvysenie poctu pismen o 1
jmp char_loop


pocet_slov:   ;pocitanie vyhovujucich slov
mov a,d     ;presun hodnoty z registra D do akumulatora
cmp e      ;porovnanie akumulatora a registra E
jc char         
pop psw      ;vyber zo zasobnika do akumulatora
inr a         ;zvysenie poctu vyhovujucich slov
push psw          ;vlozenie z akumulatora do zasobnika
jmp char

koniec_nacitania:  ;osetrenie ak sme spracovali posledne slovo
mov a,d
cmp e         ;porovnanie ci slovo obsahuje aspon 2 cislice
jc prevod
pop psw
inr a         ;zvysenie poctu vyhovujucich slov
push psw
jmp prevod

prevod:      ;prevod 4b binarneho cisla na sestnastkove [jednotky]       
pop psw
mov h,a
ani 15         ;logicky sucin
push psw
cpi 10         ;porovnananie ci je cislo mensie ako 10   
jc prevod1
pop psw         ;ak je mensie skoci na koniec1
mov b,a
mvi a,7         
add b         ;pripocitanie 7, lebo su to pismena, vacsie ako 10
push psw

prevod1:      ;prevod 4b binarneho cisla na sestnastkove [desiatky]
mov a,h
rrc         ;posun o 1b doprava
rrc
rrc
rrc
ani 15         ;logicky sucin
push psw
cpi 10         ;porovnananie ci je cislo mensie ako 10
jc vypis         ;ak je mensie skoci na koniec1
pop psw
mov b,a
mvi a,7
add b         ;pripocitanie 7
push psw

vypis:      ;vypis poctu slov sestnastkovo
lxi h,text2
call putstr

pop psw
adi '0'
call putchar      ;vypisanie sestanstkovej cislice [desiatky]

pop psw
adi '0'
call putchar      ;vypisanie sestanstkovej cislice[jednotky]

call newline
hlt

include 'examples\8080\include\getline.inc'
include 'examples\8080\include\putstr.inc'
include 'examples\8080\include\putchar.inc'
include 'examples\8080\include\newline.inc'
text: db 'Program zistuje pocet slov obsahujucich len aritmeticke operatory',10,13
text1: db 'Zadaj retazec, ukonci stlacenim enter  ',0,10,13
text2: db 10,13,'Pocet slov, v hexa tvare: 0x',0
vlozeny: ds 50

ĎAKUJEM za každú pomoc.


Offline

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

Registrovaný: 14.03.11
Prihlásený: 20.03.11
Príspevky: 4
Témy: 1
Príspevok Napísal autor témyOffline : 15.03.2011 19:34

Už mám niečo, ale hľadá to len slová ktoré obsahujú iba A,S,M,a,s,m alebo ich kombináciu
Kód:
org 1000

dcx sp         ;inicializacia zasobnika (0FFFFh)

lxi h,text      ;vypis text
call putstr

lxi h,text1      ;vypis text1
call putstr

lxi d,vlozeny      ;adresa pre vstup retazca
call getline

lxi b,vlozeny

mvi d,0       ;pocet malych pismen
mvi e,0         ;pocet cislic
push psw      ;vlozime si nulu do zasobnika, pocet vyhovujucich slov
jmp char_loop

char:
mvi d,0         ;vynulovanie pocitadla
mvi e,0         ;vynulovanie pocitadla
char_loop:         ;citanie znakov a pocitanie cislic v slove
ldax b         ;nacitanie znaku z retazca
inx b         ;posun v retazci doprava
cpi 10         ;porovnanie pre koniec nacitavania, enter
jz koniec_nacitania      ;
cpi 32          ;porovnanie na koniec slova, space=medzera
jz pocet_slov     
cpi 'A'         ;vacsie alebo rovne ako 0
jz increment     
cpi 'S'      ;mensie alebo rovne ako 9
jz increment
cpi 'M'         ;vacsie alebo rovne ako 0
jz increment     
cpi 'a'      ;mensie alebo rovne ako 9
jz increment
cpi 's'      ;mensie alebo rovne ako 9
jz increment
cpi 'm'      ;mensie alebo rovne ako 9
jz increment
inr e         ;zvysenie poctu cislic o 1
jmp char_loop

increment:
inr e
inr d         ;zvysenie poctu pismen o 1
jmp char_loop


pocet_slov:   ;pocitanie vyhovujucich slov
mov a,d     ;presun hodnoty z registra D do akumulatora
cmp e      ;porovnanie akumulatora a registra E
jc char         
pop psw      ;vyber zo zasobnika do akumulatora
inr a         ;zvysenie poctu vyhovujucich slov
push psw          ;vlozenie z akumulatora do zasobnika
jmp char

koniec_nacitania:  ;osetrenie ak sme spracovali posledne slovo
mov a,d
cmp e         ;porovnanie ci slovo obsahuje aspon 2 cislice
jc prevod
pop psw
inr a         ;zvysenie poctu vyhovujucich slov
push psw
jmp prevod

prevod:      ;prevod 4b binarneho cisla na sestnastkove [jednotky]       
pop psw
mov h,a
ani 15         ;logicky sucin
push psw
cpi 10         ;porovnananie ci je cislo mensie ako 10   
jc prevod1
pop psw         ;ak je mensie skoci na koniec1
mov b,a
mvi a,7         
add b         ;pripocitanie 7, lebo su to pismena, vacsie ako 10
push psw

prevod1:      ;prevod 4b binarneho cisla na sestnastkove [desiatky]
mov a,h
rrc         ;posun o 1b doprava
rrc
rrc
rrc
ani 15         ;logicky sucin
push psw
cpi 10         ;porovnananie ci je cislo mensie ako 10
jc vypis         ;ak je mensie skoci na koniec1
pop psw
mov b,a
mvi a,7
add b         ;pripocitanie 7
push psw

vypis:      ;vypis poctu slov sestnastkovo
lxi h,text2
call putstr

pop psw
adi '0'
call putchar      ;vypisanie sestanstkovej cislice [desiatky]

pop psw
adi '0'
call putchar      ;vypisanie sestanstkovej cislice[jednotky]

call newline
hlt

include 'examples\8080\include\getline.inc'
include 'examples\8080\include\putstr.inc'
include 'examples\8080\include\putchar.inc'
include 'examples\8080\include\newline.inc'
text: db 'Program zistuje pocet slov obsahujucich retazec ASM alebo asm',10,13
text1: db 'Zadaj retazec, ukonci stlacenim enter  ',0,10,13
text2: db 10,13,'Pocet slov, v hexa tvare: 0x',0
vlozeny: ds 50

Vie niekto poradiť?


Offline

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

Registrovaný: 11.08.10
Prihlásený: 15.01.13
Príspevky: 25
Témy: 3
Príspevok NapísalOffline : 20.03.2011 14:19

nazdar, aky mas vstup? pole znakov (text) alebo z klavesnice niekto napise? vsetky mozne kombinacie (case insensitive) asm AsM asM ... my sme robili podobne zadanie, akurat v C, ale tak toto tvoje by som riesil vytvorenim si vzorovych poli charov ASM a asm.. a cyklus
nacitaj znak.. porovnaj s nultym znakom zo vzoru (asm /ASM)
ak zhoda, porovnaj dalsi zo vzoru s dalsim nacitanym.... )
pri zhode inkrementuj nejaky pomocy register napr BL, ak sa hodnota toho registra dostane na 3 vies ze je tam to slovo a inkrementujes celkovy pocet slov.. napr AX
vynuluj BL.. nacitaj dalsi znak ( zaciatok cyklu).. nieco na tento sposob..


ak to este nemas tak sa ozvi


Offline

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

Registrovaný: 14.03.11
Prihlásený: 20.03.11
Príspevky: 4
Témy: 1
Príspevok Napísal autor témyOffline : 20.03.2011 21:12

Vďaka za ochotu, ale už by som to mal mať vyriešené. Ak ešte budem mať problém, tak sa určite ozvem.


Offline

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

Registrovaný: 11.08.10
Prihlásený: 15.01.13
Príspevky: 25
Témy: 3
Príspevok NapísalOffline : 20.03.2011 21:46

kam chodis na skolu inac ?


Offline

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

Registrovaný: 14.03.11
Prihlásený: 20.03.11
Príspevky: 4
Témy: 1
Príspevok Napísal autor témyOffline : 20.03.2011 22:54

Technická Univerzita v Košiciach odbor INFORMATIKA


Offline

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

Registrovaný: 31.10.09
Prihlásený: 06.09.23
Príspevky: 124
Témy: 15
Bydlisko: Košice - Te...
Príspevok NapísalOffline : 23.03.2011 17:29

Zdravím. Pozerám, že Assembler vedie :-)
Skúsim popýtať o radu aj ja (nechcel som zakladať osobitnú tému, preto píšem sem)... dostal som zadanie:

Určte počet slov dlhších ako 5 znakov a výsledok vypíšte v desiatkovej sústave,

Myslel som si, že to zvládnem sám (a že náš profák nám to poriadne vysvetlí), ale nakoniec nič z toho.
Btw, TU v Košiciach, FEI, Informatika (Inf5_Bc_D)...
Nakoniec som si našiel hotové zadanie... s detailom: výsledok prevádza do 16-kovej sústavy :(

Kód:
org 1000

dcx sp         ;inicializacia zasobnika (0FFFFh)

lxi h,text      ;vypis text
call putstr

lxi h,text1      ;vypis text1
call putstr

lxi d,vlozeny      ;adresa pre vstup retazca
call getline

lxi b,vlozeny

mvi d,5       ;pocet malych pismen
mvi e,0         ;pocet cislic
push psw      ;vlozime si nulu do zasobnika, pocet vyhovujucich slov
jmp char_loop

char:
mvi d,5         ;vynulovanie pocitadla
mvi e,0         ;vynulovanie pocitadla
char_loop:         ;citanie znakov a pocitanie cislic v slove
ldax b         ;nacitanie znaku z retazca
inx b         ;posun v retazci doprava
cpi 10         ;porovnanie pre koniec nacitavania, enter
jz koniec_nacitania      ;
cpi 32          ;porovnanie na koniec slova, space=medzera
jz pocet_slov     
inr e         ;zvysenie poctu cislic o 1
jmp char_loop

pocet_slov:   ;pocitanie vyhovujucich slov
mov a,d     ;presun hodnoty z registra D do akumulatora
cmp e      ;porovnanie akumulatora a registra E
jnc char         
pop psw      ;vyber zo zasobnika do akumulatora
inr a         ;zvysenie poctu vyhovujucich slov
push psw          ;vlozenie z akumulatora do zasobnika
jmp char

koniec_nacitania:  ;osetrenie ak sme spracovali posledne slovo
mov a,d
cmp e         ;porovnanie ci slovo obsahuje aspon 2 cislice
jnc prevod
pop psw
inr a         ;zvysenie poctu vyhovujucich slov
push psw
jmp prevod

prevod:      ;prevod 4b binarneho cisla na sestnastkove [jednotky]       
pop psw
mov h,a
ani 15         ;logicky sucin
push psw
cpi 10         ;porovnananie ci je cislo mensie ako 10   
jc prevod1
pop psw         ;ak je mensie skoci na koniec1
mov b,a
mvi a,7         
add b         ;pripocitanie 7, lebo su to pismena, vacsie ako 10
push psw

prevod1:      ;prevod 4b binarneho cisla na sestnastkove [desiatky]
mov a,h
rrc         ;posun o 1b doprava
rrc
rrc
rrc
ani 15         ;logicky sucin
push psw
cpi 10         ;porovnananie ci je cislo mensie ako 10
jc vypis         ;ak je mensie skoci na koniec1
pop psw
mov b,a
mvi a,7
add b         ;pripocitanie 7
push psw

vypis:      ;vypis poctu slov sestnastkovo
lxi h,text2
call putstr

pop psw
adi '0'
call putchar      ;vypisanie sestanstkovej cislice [desiatky]

pop psw
adi '0'
call putchar      ;vypisanie sestanstkovej cislice[jednotky]

call newline
hlt

include 'examples\8080\include\getline.inc'
include 'examples\8080\include\putstr.inc'
include 'examples\8080\include\putchar.inc'
include 'examples\8080\include\newline.inc'
text: db 'Program zistuje pocet slov dlhsich ako 5 znakov',10,13
text1: db 'Zadaj retazec, ukonci stlacenim enter  ',0,10,13
text2: db 10,13,'Pocet slov, v hexa tvare: 0x',0
vlozeny: ds 50


Ja som sa snažil, ako sa len dalo... ale s týmto proste nepohnem, pričom tu asi len treba zmazať nejaké kusy kódu... pomôžete mi ? THX.


Offline

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

Registrovaný: 11.08.10
Prihlásený: 15.01.13
Príspevky: 25
Témy: 3
Príspevok NapísalOffline : 25.03.2011 10:07

potrebujes iba zmenit cislo z binarnej do desiatkovej cez asmebler? alebo komplet kod?


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


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. ASM: pocet slov reprezentujucich zapis osmickoveho cisla

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

1

807

18.03.2010 20:28

Fico Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Asm i8080: vypisat pocet slov s dlzkou 2 az 5 znakov

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

26

3983

15.03.2011 13:47

katiMIR Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Asm : spočítanie slov ktoré obsahujú IBA čísla

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

2

618

23.03.2010 15:55

crazy Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. [Asembler] pocet malych a velkych pismen

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

5

502

13.04.2015 20:31

TieSTiK Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Pocet slov a cisel v premennej

v PHP, ASP

2

278

23.02.2012 11:18

w3r0 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Optimálny počet opakovaný kľúčových slov v body

v Internetový marketing, SEO, reklama

1

1348

06.12.2007 11:05

mondzo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Vyber prvych 30 pismen alebo 10 slov

v PHP, ASP

6

708

02.11.2012 14:20

hackerwoody Zobrazenie posledných príspevkov

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

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

4

2126

21.04.2010 9:45

dadesk8 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Plis,asembler help:(surne

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

2

906

25.08.2007 15:01

cinges Zobrazenie posledných príspevkov

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

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

6

443

05.03.2013 19:25

n0sf3ratus Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Pascal,Asembler a Win XP

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

1

1565

14.11.2005 22:01

JanoF Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Asembler- vystup desiatkovo---pls surne

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

1

852

20.03.2010 20:42

Fico Zobrazenie posledných príspevkov

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

v Technológia .NET

2

1537

23.08.2009 13:19

piton55 Zobrazenie posledných príspevkov

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

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

19

774

30.01.2012 9:55

Fico Zobrazenie posledných príspevkov

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

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

9

640

09.01.2011 14:16

ethi1ca4l Zobrazenie posledných príspevkov

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

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

0

461

03.05.2010 20:47

Balzer1 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