[ 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 | 1

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 | 1

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 | 3

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 | 1

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 | 3

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 | 1

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 | 15
Bydlisko: Košice - Te...

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 | 3

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


 [ Príspevkov: 8 ] 


ASEMBLER:Určte počet slov obsahujúcich reťazec ASM alebo asm



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

843

18.03.2010 20:28

Fico

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

4047

15.03.2011 13:47

katiMIR

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

650

23.03.2010 15:55

crazy

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

538

13.04.2015 20:31

TieSTiK

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

Pocet slov a cisel v premennej

v PHP, ASP

2

307

23.02.2012 11:18

w3r0

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

1393

06.12.2007 11:05

mondzo

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

Vyber prvych 30 pismen alebo 10 slov

v PHP, ASP

6

735

02.11.2012 14:20

hackerwoody

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

Asembler prevod

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

4

2171

21.04.2010 9:45

dadesk8

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

Plis,asembler help:(surne

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

2

939

25.08.2007 15:01

cinges

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

Asembler zrychlenie vykonavania cyklu

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

6

486

05.03.2013 19:25

n0sf3ratus

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

Pascal,Asembler a Win XP

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

1

1600

14.11.2005 22:01

JanoF

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

Asembler- vystup desiatkovo---pls surne

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

1

882

20.03.2010 20:42

Fico

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

c# retazec

v Technológia .NET

2

1572

23.08.2009 13:19

piton55

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

malloc retazec

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

19

833

30.01.2012 9:55

Fico

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

C a retazec

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

9

673

09.01.2011 14:16

ethi1ca4l

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

asm

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

0

508

03.05.2010 20:47

Balzer1



© 2005 - 2024 PCforum, edited by JanoF