Author Topic: Asembler --- kto potrebuje pomoct...  (Read 72109 times)

Makaveli

  • Sr. Member
  • ****
  • Posts: 313
    • View Profile
Re: Asembler --- kto potrebuje pomoct...
« Reply #100 on: 24.03.2010, 02:42:19 »
najdi slova ktore maju nemej ako 5 znakov
ako spravim aby mi nacitavalo iba pismena a nič ine a ako spravim že ked dam medzeru a zanou dalsiu aby tu dalsiu medzeru nebralo ako znak dik
 org 1000

  dcx sp         ; inicializacia zasobnika (0FFFFh)

  lxi h, retazec1      ; vytlac na terminal "Zadajte retazec:"
  call putstr           ; zavolaj funkciu na vytlacenie textu
  lxi d, retazec0
  call getline      ; nacitaj cely riadok

  lxi b, retazec0

  mvi d, 0         ; v tomto registri sa bude ukladat pocet vhodnych slov
  mvi e, 0

hladaj:         ; hlavna slucka

  ldax b
  inx b
 
  jz spocitaj
  cpi 10         ; znak je novy riadok
  jz spocitaj
  cpi 0          ; znak je koniec retazca
  jz koniec

  inr d         ; zvys pocet znakov v slove
  jmp hladaj

spocitaj:         ; spocita pocet znakov v slove
  mov a, d
  mvi d, 0
  cpi 0
  jc hladaj
  cpi 5
  jnc hladaj

  inr e         ; pocet hladanych slov v retazci
  jmp hladaj

koniec:

  lxi h, retazec2      ; vypis prvu cast informacie
  call putstr

  mov a, e
  adi '0'         ; vypis pocet najdenych slov
  call putchar

  lxi h, retazec3      ; vypis druhu cast informacie
  call putstr

  hlt         ; KONIEC programu

include 'examples\8080\include\getchar.inc'
include 'examples\8080\include\getline.inc'
include 'examples\8080\include\putstr.inc'
include 'examples\8080\include\putchar.inc'

retazec1:       db 'Zadajte retazec:', 10, 13, 0
retazec2:       db 10, 13, 'Slova v dlzke 0 - 5 znakov sa v retazci nachádzaju ', 0
retazec3:       db '-krat', 10, 13, 0
retazec0:       ds 50


Máte pravdu. Jsem blázen. Ale víte co ještě? Je mi to u prdele:P KED NIECO NEVIES TUKE FORUM VYRIESI :)))

mucko

  • Guest
Re: Asembler --- kto potrebuje pomoct...
« Reply #101 on: 24.03.2010, 21:05:44 »
najdi slova ktore maju nemej ako 5 znakov
ako spravim aby mi nacitavalo iba pismena a nič ine a ako spravim že ked dam medzeru a zanou dalsiu aby tu dalsiu medzeru nebralo ako znak dik
 org 1000

  dcx sp         ; inicializacia zasobnika (0FFFFh)

  lxi h, retazec1      ; vytlac na terminal "Zadajte retazec:"
  call putstr           ; zavolaj funkciu na vytlacenie textu
  lxi d, retazec0
  call getline      ; nacitaj cely riadok

  lxi b, retazec0

  mvi d, 0         ; v tomto registri sa bude ukladat pocet vhodnych slov
  mvi e, 0

hladaj:         ; hlavna slucka

  ldax b
  inx b
 
  jz spocitaj
  cpi 10         ; znak je novy riadok
  jz spocitaj
  cpi 0          ; znak je koniec retazca
  jz koniec

  inr d         ; zvys pocet znakov v slove
  jmp hladaj

spocitaj:         ; spocita pocet znakov v slove
  mov a, d
  mvi d, 0
  cpi 0
  jc hladaj
  cpi 5
  jnc hladaj

  inr e         ; pocet hladanych slov v retazci
  jmp hladaj

koniec:

  lxi h, retazec2      ; vypis prvu cast informacie
  call putstr

  mov a, e
  adi '0'         ; vypis pocet najdenych slov
  call putchar

  lxi h, retazec3      ; vypis druhu cast informacie
  call putstr

  hlt         ; KONIEC programu

include 'examples\8080\include\getchar.inc'
include 'examples\8080\include\getline.inc'
include 'examples\8080\include\putstr.inc'
include 'examples\8080\include\putchar.inc'

retazec1:       db 'Zadajte retazec:', 10, 13, 0
retazec2:       db 10, 13, 'Slova v dlzke 0 - 5 znakov sa v retazci nachádzaju ', 0
retazec3:       db '-krat', 10, 13, 0
retazec0:       ds 50




no neviem ci ti niekto pomoze :P ja som sem tiez dal kod a nikto sa asi nato ani nepozrel .. vies, vsetci vravia ved sadni si pred to(a to aj robime) a studuj .. a, ze potom aj pomozu ... no ale vidim, ze len kvákat o pomoci vedia :P

sulo

  • Sr. Member
  • ****
  • Posts: 284
    • View Profile
    • Web
Re: Asembler --- kto potrebuje pomoct...
« Reply #102 on: 24.03.2010, 22:36:14 »
najdi slova ktore maju nemej ako 5 znakov
ako spravim aby mi nacitavalo iba pismena a nič ine a ako spravim že ked dam medzeru a zanou dalsiu aby tu dalsiu medzeru nebralo ako znak dik

Quote
...
hladaj:         ; hlavna slucka

  ldax b
  inx b
 
  cpi ' ' ; <------- tu chybalo porovnanie
  jz spocitaj
...

Bol tam podmienený skok, ale pred ním žiadne porovnanie, čiže nemal byť ako správne nastavený zero flag.

Quote
...
spocitaj:         ; spocita pocet znakov v slove
  mov a, d
  mvi d, 0
  cpi 1 ; <------ tu bola 0
  jc hladaj
...

Čo sa týka nezarátavania medzier ako slov, stačí, že budeme rátať slová s dĺžkou aspoň 1.

ursus

  • Hero Member
  • *****
  • Posts: 595
    • View Profile
Re: Asembler --- kto potrebuje pomoct...
« Reply #103 on: 24.03.2010, 23:03:34 »
blablalba

jaky attention whore :ropebanana:
So this router walks into the doctor’s office…
- Doctor, it hurts when IP.

sulo

  • Sr. Member
  • ****
  • Posts: 284
    • View Profile
    • Web
Re: Asembler --- kto potrebuje pomoct...
« Reply #104 on: 24.03.2010, 23:07:53 »
Ešte niečo ohľadom komentárov, toto nie je pravda:

...
  mvi d, 0         ; v tomto registri sa bude ukladat pocet vhodnych slov
  mvi e, 0
...

Skôr to malo byť takto:

Code: [Select]
...
  mvi d, 0         ; pocet znakov v slove
  mvi e, 0         ; pocet vhodnych slov
...

jardo

  • Sr. Member
  • ****
  • Posts: 288
    • View Profile
Re: Asembler --- kto potrebuje pomoct...
« Reply #105 on: 25.03.2010, 00:03:36 »
trocha som to upravil, ale stale to nieje ono, npocita to co to ma. Co tomu chyba?
Code: [Select]
org 1000

dcx sp         ;inicializacia zasobnika (0FFFFh)

lxi h,text      ;vypis text
call putstr


lxi d,vlozeny      ;adresa pre vstup retazca
call getline

lxi b,vlozeny
mvi d,0 ;pocet vsetkych znakov v slove
mvi e,0         ;pocet malych pismen v slove
push psw      ;vlozime si nulu do zasobnika, pocet vyhovujucich slov


char:
mvi e,0
mvi d,0        ;vynulovanie pocitadla
char_loop:         ;citanie znakov a pocitanie pismen
ldax b         ;nacitanie znaku z retazca
inr d
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 a
jc char_loop      
cpi 'z' + 1      ;mensie alebo rovne ako z
jnc char_loop
inr e         ;zvysenie poctu pismen o 1
jmp char_loop


pocet_slov:   ;pocitanie vyhovujucich slov
mov a,e      ;presun hodnoty z registra D do akumulatora
cmp d      ;porovnanie akumulatora a registra E
jc char      ;ak je pismen malej abecedy menej skoc na 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,e
cmp d        
jc vypis
pop psw
inr a         ;zvysenie poctu vyhovujucich slov
push psw
jmp vypis

vypis:
lxi h, text2
call putstr
pop psw
adi '0'
call putchar
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 vypise pocet slov(v dekadickom tvare) , ktore obshuju pismena malej abecedy', 10,13,10, 'Zadaj retazec: ',0
text2: db 10,13,'Vysledny pocet: ',0
vlozeny: ds 30
« Last Edit: 25.03.2010, 00:06:18 by jardo »

sulo

  • Sr. Member
  • ****
  • Posts: 284
    • View Profile
    • Web
Re: Asembler --- kto potrebuje pomoct...
« Reply #106 on: 25.03.2010, 00:26:25 »
Treba v tom zadaní mať aj nejakú používateľskú príručku? Nám na cvikách nikto nič také nevravel.

Petrinho

  • Newbie
  • *
  • Posts: 32
    • View Profile
Re: Asembler --- kto potrebuje pomoct...
« Reply #107 on: 25.03.2010, 01:25:45 »
Mam urobeny program aj vyvojak.....nevie niekto ako to ma vyzerat....Uvodna strana a co dalej???

vojto

  • Guest
Re: Asembler --- kto potrebuje pomoct...
« Reply #108 on: 25.03.2010, 21:46:35 »
Fellas, potreboval by som kus pomoct.

Podarilo sa mi uz dostat normalne cislo, v tom emuStudiu mi to uz aj pekne vypise, len este ho nejak potrebujem vypisat. No a ja ked vypisem priamo obsah registra, tak ono to asi sa snazi vypisat znak s tym kodom. A ja chcem cislo.

Neviete jak na to?

Raleon

  • VIP
  • Hero Member
  • *****
  • Posts: 1296
  • Csirke forever!
    • View Profile
    • Pessimistic Dreams
Re: Asembler --- kto potrebuje pomoct...
« Reply #109 on: 25.03.2010, 22:08:50 »
Fellas, potreboval by som kus pomoct.

Podarilo sa mi uz dostat normalne cislo, v tom emuStudiu mi to uz aj pekne vypise, len este ho nejak potrebujem vypisat. No a ja ked vypisem priamo obsah registra, tak ono to asi sa snazi vypisat znak s tym kodom. A ja chcem cislo.

Neviete jak na to?

prelistuj tento thread, zistis


There is no such bad temper that can not be fixed with some good wine.

Makaveli

  • Sr. Member
  • ****
  • Posts: 313
    • View Profile
Re: Asembler --- kto potrebuje pomoct...
« Reply #110 on: 26.03.2010, 02:09:03 »
viem mi niekto poradit ako spravim ze ked dam dva krat za sebou medzeru mi tu druhu medzeru nebralo ako znak dik
Máte pravdu. Jsem blázen. Ale víte co ještě? Je mi to u prdele:P KED NIECO NEVIES TUKE FORUM VYRIESI :)))

dEVIANT

  • Hero Member
  • *****
  • Posts: 1311
  • Robím, čo môžem. Keď nerobím, nemôžem!
    • View Profile
Re: Asembler --- kto potrebuje pomoct...
« Reply #111 on: 26.03.2010, 02:58:08 »
viem mi niekto poradit ako spravim ze ked dam dva krat za sebou medzeru mi tu druhu medzeru nebralo ako znak dik

Ošetrené a poslané PM! ...spokojnosť klientov je mojou prioritou !!! :D
Nie je nič nákazlivejšie ako rozhodný a presvedčením sa vyznačujúci život.

Makaveli

  • Sr. Member
  • ****
  • Posts: 313
    • View Profile
Re: Asembler --- kto potrebuje pomoct...
« Reply #112 on: 26.03.2010, 03:27:02 »
Dik ešte raz  :puf: odkial sa tak dobre vyznáš do asm?
Máte pravdu. Jsem blázen. Ale víte co ještě? Je mi to u prdele:P KED NIECO NEVIES TUKE FORUM VYRIESI :)))

dEVIANT

  • Hero Member
  • *****
  • Posts: 1311
  • Robím, čo môžem. Keď nerobím, nemôžem!
    • View Profile
Re: Asembler --- kto potrebuje pomoct...
« Reply #113 on: 26.03.2010, 03:49:04 »
V tom neni žiadna veda...ja by som len skôr povedal, že nemenovaný prednášajúci to nevie tak ľudsky povedať a tak z toho robí španielsku dedinu, ktorú vám potom ani cvičiaci asi nepreložia  :D

Ale minulý rok som to tiež nevedel :/
Nie je nič nákazlivejšie ako rozhodný a presvedčením sa vyznačujúci život.

Makaveli

  • Sr. Member
  • ****
  • Posts: 313
    • View Profile
Re: Asembler --- kto potrebuje pomoct...
« Reply #114 on: 26.03.2010, 03:52:13 »
prednasajuci tak to snim bieda bieli plastika poviem slovo a hmmm kuka do stropu a cvika pride a povie dacoa každy si robi co chce parada :((
Máte pravdu. Jsem blázen. Ale víte co ještě? Je mi to u prdele:P KED NIECO NEVIES TUKE FORUM VYRIESI :)))

vojto

  • Guest
Re: Asembler --- kto potrebuje pomoct...
« Reply #115 on: 26.03.2010, 16:23:42 »
Fellas, potreboval by som kus pomoct.

Podarilo sa mi uz dostat normalne cislo, v tom emuStudiu mi to uz aj pekne vypise, len este ho nejak potrebujem vypisat. No a ja ked vypisem priamo obsah registra, tak ono to asi sa snazi vypisat znak s tym kodom. A ja chcem cislo.

Neviete jak na to?

No pre ostatnych. Urobil som to tak, ze sa pred vypisanim pozrie, ci je cislo mensie ako 10, ak nie, do registra E bude pocitat desiatky a robi to vlastne kym je vacsie ako 10. Potom uz iba vypise pocet desiatok a jedniciek. Funguje to iba do 99, ale hovoril ujo, ze je to ok ;)

totaluser

  • Hero Member
  • *****
  • Posts: 621
    • View Profile
Re: Asembler --- kto potrebuje pomoct...
« Reply #116 on: 26.03.2010, 17:06:49 »
Fellas, potreboval by som kus pomoct.

Podarilo sa mi uz dostat normalne cislo, v tom emuStudiu mi to uz aj pekne vypise, len este ho nejak potrebujem vypisat. No a ja ked vypisem priamo obsah registra, tak ono to asi sa snazi vypisat znak s tym kodom. A ja chcem cislo.

Neviete jak na to?

No pre ostatnych. Urobil som to tak, ze sa pred vypisanim pozrie, ci je cislo mensie ako 10, ak nie, do registra E bude pocitat desiatky a robi to vlastne kym je vacsie ako 10. Potom uz iba vypise pocet desiatok a jedniciek. Funguje to iba do 99, ale hovoril ujo, ze je to ok ;)

ved jasne ze je to ok
preto bolo zadane ze bin/oct/hex cisla max 255 dekadicky a dec cislo max 99 dekadicky
tak to ma byt

kazdopadne ujo v bilom plasti je fakt :baaa:
tie prednasky su uplne odveci, lebo len si precita slajdy svoje a nic ine
na cviku tiez nic, napise na tabulu priklad ale vobec ho nevysvetli (ale zas sa da pochopit)

ursus

  • Hero Member
  • *****
  • Posts: 595
    • View Profile
Re: Asembler --- kto potrebuje pomoct...
« Reply #117 on: 26.03.2010, 20:49:48 »
informatika je 90% samostudium, skola ti ma dat len podnet :trestac:
So this router walks into the doctor’s office…
- Doctor, it hurts when IP.

revelc

  • Sr. Member
  • ****
  • Posts: 275
    • View Profile
Re: Asembler --- kto potrebuje pomoct...
« Reply #118 on: 27.03.2010, 01:24:40 »
informatika je 90% samostudium, skola ti ma dat len podnet :trestac:
To si z akej mudrej knizky vycital ?  :D ;D
Čo môžeš urobiť dnes odlož na pozajtra a ziskaš deň voľna.

"I'm a man of simple tastes. I enjoy dynamite...and gunpowder...and gasoline! "

felipe

  • Newbie
  • *
  • Posts: 44
    • View Profile
Re: Asembler --- kto potrebuje pomoct...
« Reply #119 on: 30.03.2010, 03:23:42 »
zdravim potreboval by som helpnut so zadanim, 31. urcte pocet slov obsahujucich len nerovnake znaky... viem ze je uz neskoro tak ma zato teraz neukamenujte ale skor som sa k tomu nevedel dostat...  ah: neviem ako to mam riesit, maju sa tie slova zacinat jednym nejakym znakom? mam tie znaky porovnavat kazdy s kazdym? alebo sa to da nejak inac? prosim len hlavny princip ako nato ist by som potreboval...  :)

Ali N

  • Newbie
  • *
  • Posts: 15
    • View Profile
Re: Asembler --- kto potrebuje pomoct...
« Reply #120 on: 31.03.2010, 16:32:46 »
prva moznost - definovat v pamati nejake pole priznakov ktore by reprezentovalo priznak pre kazdy znak ASCII kodu. Potom by si len prechadzal znaky slova a zistoval, ci uz je nastaveny priznak. Ak nie tak ho nastavis, ak ano, tak slovo nevyhovuje

druha moznost - tak ako si pisal, porovnavat kazdy s kazdym

co z toho je jednoduchsie ti s istotou povedat neviem, ale myslim si ze skor ta prva moznost

GayLordYebal

  • Guest
Re: Asembler --- kto potrebuje pomoct...
« Reply #121 on: 01.04.2010, 01:51:27 »
 :baaa:
Heslá:
Code: [Select]
I. fei tuke
II.tuke fei
III. kpi fei tuke
IV. kpi fei
V. fei kpi
VI. <neznam nebol som na prednáške>
doplňte prosím pre VI. prednášku heslo, dík.  :angel:

tommy-sv

  • Sr. Member
  • ****
  • Posts: 308
  • kapitalista
    • View Profile
Re: Asembler --- kto potrebuje pomoct...
« Reply #122 on: 01.04.2010, 03:06:26 »
VI. Kosice
"Čím skôr zomrieš, tým dlhšie budeš mŕtvy."
"Radšej viac vypiť, ako menej zjesť."

totaluser

  • Hero Member
  • *****
  • Posts: 621
    • View Profile
Re: Asembler --- kto potrebuje pomoct...
« Reply #123 on: 01.04.2010, 04:40:35 »
VII. Boston

ursus

  • Hero Member
  • *****
  • Posts: 595
    • View Profile
Re: Asembler --- kto potrebuje pomoct...
« Reply #124 on: 01.04.2010, 04:47:00 »
na secky aspon doposial funguje: ief

 8)
So this router walks into the doctor’s office…
- Doctor, it hurts when IP.