Obsah fóra
PravidláRegistrovaťPrihlásenie




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

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

Registrovaný: 20.06.09
Prihlásený: 28.04.10
Príspevky: 33
Témy: 10
Príspevok NapísalOffline : 12.03.2010 15:55

potreboval by som pomoc s asemblerom i8080..

ako mam zadat text a vypisat pocet slov s dlzkou 2az 5 znakov..

som v tom lama a neviem si dat rady

| Nazov temy je nepresny, nabuduce skus vymysliet lepsi. Ďuri


Offline

Čestný člen
Čestný člen
Asm i8080: vypisat pocet slov s dlzkou 2 az 5 znakov

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 12.03.2010 15:58

A skusal si aspon nieco napisat? Chybny kod by ti niekto opravil, ale domace ulohy do skoly za teba robit nikto nebude.


Offline

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

Registrovaný: 20.06.09
Prihlásený: 28.04.10
Príspevky: 33
Témy: 10
Príspevok Napísal autor témyOffline : 12.03.2010 16:02

no hej aj by som skusil ale vobec tomu nechapem.. a neviem sa vobec ani hnut..


Offline

Skúsený užívateľ
Skúsený užívateľ
Asm i8080: vypisat pocet slov s dlzkou 2 az 5 znakov

Registrovaný: 11.01.09
Prihlásený: 26.04.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 12.03.2010 19:55

Kód:
  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
  cpi 32         ; znak je medzera
  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 3
  jc hladaj
  cpi 6
  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 3 - 5 znakov sa v retazci nachádzaju ', 0
retazec3:       db '-krat', 10, 13, 0
retazec0:       ds 50


Vôbec sa mu nečudujem, že sa nevie pohnúť, tiež mám teraz assembler a vysvetľovanie na TUKE nestojí za veľa a okrem toho, veľa ľudí assembler proste nevie pochopiť.


Offline

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

Registrovaný: 14.03.10
Prihlásený: 08.05.10
Príspevky: 5
Témy: 0
Príspevok NapísalOffline : 14.03.2010 20:25

Ahojte ... ja by som tiez potreboval pomoc s jednou ulohou z asembleru ... napisal som program len nerobi o co by mal a neviem prist na to kde mam chybu, ktora tam urcite je (zrejme nie jedna), takze tu je zadanie a za tym je moj kod:
Určte počet slov, ktorých súčet ASCII kódov znakov je menší ako 200.Počet (0-99) vytlačte desiatkovo.


Kód:
org 1000

dcx sp   

mvi l,200        - do l-ka nahra hodnotu 200, s kt. sa bu neskor porovnavat
lxi h,text1
call putstr

lxi d,vlozeny
call getline

lxi b,vlozeny

char_loop:
ldax b
inx b
cpi 10
jz char_end
cpi 13
jz char_end
cpi 'a'                 - skuma ci je o pismeno od a
jc char_loop
cpi 'Z'+1             - az po Z
jnc char_loop
cpi 32                 - skontrolluje ci je to medzera
jz char_medzera
sta 20                 - ulozi obsah a do pamete 20
lda 20                    - obsah pamete 20 do a
mov e,c               - hodnotu reg. c do e
add a                 - pripocita hodnotu reg. a
mov c,e             - zapise hod. reg. e do c
cmp l           - porovna hodnotu c s l, ci je menej ako 200
jnz char_loop
jmp char_end

char_medzera:
inr m
jmp char_loop

char_end:

lxi h,text2
call putstr

mov a,m
adi '0'
call putchar
call newline
hlt


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

text1: db 'Zadajte slova ... ',10,13,'Vloz text:',0
text2: db 10,13,'Pocet vyhovujucich slov:',0
vlozeny: ds 50



Vopred Vam dakujem za odpoved!!! ....


Offline

Skúsený užívateľ
Skúsený užívateľ
Asm i8080: vypisat pocet slov s dlzkou 2 az 5 znakov

Registrovaný: 11.01.09
Prihlásený: 26.04.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 14.03.2010 21:03

Inštrukcia lxi uloží offset premennej do registrového páru HL.
Kód:
mvi l,200
lxi h,text1

Na začiatku je v L hodnotu 200, ale hneď potom sa tam uloží spodný bajt offsetu, kde je premenná text1. Tzn, že zbytočne dávaš dvestovku do registru na začiatku, daj ju až pri porovnaní:
Kód:
mov c,e
mvi l, 200
cmp l


// funkčnosť ti nestíham skontrolovať, som tu len na skok, ale zajtra večer na to kuknem


Offline

Skúsený užívateľ
Skúsený užívateľ
Asm i8080: vypisat pocet slov s dlzkou 2 az 5 znakov

Registrovaný: 11.01.09
Prihlásený: 26.04.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 15.03.2010 11:20

V zásade si nepoužil správny algoritmus - vynechávaš znaky, ktoré nie sú v intervale ["a" .. "Z"]. Ale aj napríklad čísla majú svoju ASCII hodnotu, takisto čiarky a vôbec každý znak má svoju ASCII hodnotu.
Máš tam potom aj iné chyby pri práci s registrami a celé je to zbytočne komplikované, keďže stačí prečítať znak a pripočítať jeho hodnotu do nejakého registra.

Kód:
org 1000

dcx sp   

lxi h,text1
call putstr

lxi d,vlozeny
call getline

lxi b,vlozeny
mvi d, 0      ; suma ASCII znakov
mvi e, 0      ; pocet slov
mvi l, 0      ; ak je 1, doslo k preteceniu pri scitani

char_loop:
ldax b
inx b
cpi 10
jz koniec_slova
cpi 13
jz char_loop   ; pre klaves enter staci osetrit znak #10
cpi 0
jz char_end
cpi 32      ; skontroluje ci je to medzera
jz koniec_slova

push psw      ; uchovaj register a
mov a, l      ; zisti, ci uz raz doslo k preteceniu (sucet je vacsi ako 255, teda podmienku nesplna)
cpi 1
pop psw      ; obnov register a
jz char_loop

add d
jc pretecenie
mov d, a
jmp char_loop


pretecenie:
mvi l, 1
jmp char_loop

koniec_slova:
mov a, l
cpi 1
jz next      ; preskocenie zvysenia registru e

mov a, d
cpi 201
jnc next

inr e      ; vhodne slovo

next:
mvi d, 0      ; vynulovat registre pre dalsiu pracu
mvi l, 0
jmp char_loop

char_end:

lxi h,text2
call putstr

mov a, e
adi '0'
call putchar
call newline
hlt


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

text1: db 'Zadajte slova ... ',10,13,'Vloz text:',0
text2: db 10,13,'Pocet vyhovujucich slov:',0
vlozeny: ds 50


Offline

Užívateľ
Užívateľ
Asm i8080: vypisat pocet slov s dlzkou 2 az 5 znakov

Registrovaný: 06.02.07
Prihlásený: 05.03.20
Príspevky: 99
Témy: 30
Príspevok NapísalOffline : 17.03.2010 9:59

dakujem za pomoc.. velmi si mi pomohol..
a s tym TUKE mas citu pravdu ..







_________________
Google vie všetko, len sa treba vedieť opýtať.
Offline

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

Registrovaný: 14.03.10
Prihlásený: 08.05.10
Príspevky: 5
Témy: 0
Príspevok NapísalOffline : 17.03.2010 12:57

Aj ja ti moc dakujem za pomoc ... toto by som asi sam nezvladol ... fakt obrovska vdaka este raz ... ;)


Offline

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

Registrovaný: 18.03.10
Prihlásený: 21.06.12
Príspevky: 2
Témy: 0
Príspevok NapísalOffline : 18.03.2010 20:42

mam tiez podobne zadanie
Určte počet slov, ktorých súčet ASCII kódov znakov je väčší ako 200.
a počet (0-255) vytlačte dvojkovo.
a ako bude ta druha cast by som sa chcel opytat?
to bude napriklad ze ak bude najdenych 5 takych slov ktore vyhobuju tak mi to vypise cislo 5 v dvojovej sustave ?


Offline

Skúsený užívateľ
Skúsený užívateľ
Asm i8080: vypisat pocet slov s dlzkou 2 az 5 znakov

Registrovaný: 11.01.09
Prihlásený: 26.04.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 19.03.2010 9:07

Áno, ak nájde 5 slov, tak ich vypíše dvojkovo, nejako takto:

Kód:
;v registri e je vysledok, ktory chceme vytlacit

mvi c, 8     ; vytlac 8 bitov

main:
mov a, e
ani 80h      ; tlaci sa stale osmy bit, pricom cele cislo sa rotuje doprava
cpi 80h
jnz zero
mvi a, 1

zero:
adi '0'      ; na danom bite bola bud 1 alebo 0, pripocitaj 30h, cim dostaneme ascii hodnoty tychto cisel
call putchar
mov a, e     ; obnov register a
ral          ; rotacia o jeden bit vpravo
dcr c        ; opakuj uz iba pre (c-1) bitov
mov e, a
mov a, c
cpi 0
jnz main     ; ak 0 (preslo sa uz vsetkych osem bitov), pokracuj dalej v kode

; tu uz je v terminali vytlacene cislo v dvojkovej sustave


Offline

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

Registrovaný: 18.03.10
Prihlásený: 21.06.12
Príspevky: 2
Témy: 0
Príspevok NapísalOffline : 19.03.2010 12:38

dakujem ti velmi pekne za to vsetko to funguje ako ma este raz diky


Offline

Užívateľ
Užívateľ
Asm i8080: vypisat pocet slov s dlzkou 2 az 5 znakov

Registrovaný: 26.11.06
Prihlásený: 02.09.15
Príspevky: 24
Témy: 3
Bydlisko: Snina
Príspevok NapísalOffline : 19.03.2010 19:58

zdravim
nechcem zakladat novy topic tak napisem tu.

Potrebujem vytlacit ten vysledok co som dostal, v osmickovej sustave. Napr. vysledok (pocet tych slov) mam ulozeny v registri e
Dakujem


Offline

Skúsený užívateľ
Skúsený užívateľ
Asm i8080: vypisat pocet slov s dlzkou 2 az 5 znakov

Registrovaný: 11.01.09
Prihlásený: 26.04.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 19.03.2010 22:02

Kód:
horny_bajt:
mov a, e
push psw
ani 38h
rar
rar
rar
adi '0'
call putchar

dolny_bajt:
pop psw
ani 07h
adi '0'
call putchar


Offline

Užívateľ
Užívateľ
Asm i8080: vypisat pocet slov s dlzkou 2 az 5 znakov

Registrovaný: 26.11.06
Prihlásený: 02.09.15
Príspevky: 24
Témy: 3
Bydlisko: Snina
Príspevok NapísalOffline : 20.03.2010 11:15

super dakujem krasne :)
Mohol by som sa este spytat co znamena to
ani 38h a ani 07h


Offline

Skúsený užívateľ
Skúsený užívateľ
Asm i8080: vypisat pocet slov s dlzkou 2 az 5 znakov

Registrovaný: 11.01.09
Prihlásený: 26.04.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 20.03.2010 12:37

Registre procesora 8080 sú osem bitové. Maximálne dvojciferné osmičkové číslo sa zmestí do šiestich bitov:
Kód:
; binárne        ; osmičkovo
  111 111          77


ani je inštrukcia logického súčinu (AND):
Kód:
ani nejaky_ciselny_udaj
a <-- a AND nejaky_ciselny_udaj

38h je dvojkovej sústave 0011 1000. Ak to prekryješ s maximálnym osmičkovým číslom, dostaneš:
Kód:
00111000
00111111  ; AND
-----------
00111000

Týmto vlastne dosiahneš zmazanie dolného "bajtu" (nie je to síce bajt, keďže má 3 bity, ale je to podobný proces ako pri hexa číslach, kde už o bajt ide). Potom to, čo ostalo po súčine presunieme dole o 3 bity a teraz už môžme výsledok vypísať - je to prvá cifra osmičkového čísla.

To isté sa vykoná aj pre získanie spodného "bajtu" osmičkového čísla, akurát že zmažeme horné tri bity (07h):
Kód:
00000111
00111111  ; AND
-----------
00000111

Opäť sa výsledok vytlačí, a máme číslo v osmičkovej sústave.

Snáď som to vysvetlil dostatočne zrozumiteľne, ak ešte niečo robí problém z tohto prevodu alebo niečoho iného, kľudne sa opýtaj.


Offline

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

Registrovaný: 20.11.06
Prihlásený: 14.02.12
Príspevky: 2
Témy: 1
Príspevok NapísalOffline : 20.03.2010 17:03

Ahoj, ja mám určiť počet slov neobsahujúcich reťazec ASM alebo asm, a neviem s tým fakt ani pohnúť :( nemohol by si mi nejak poradiť, naviesť ma nato abo niečo? ...som z toho fakt dutý...díky :(


Offline

Užívateľ
Užívateľ
Asm i8080: vypisat pocet slov s dlzkou 2 az 5 znakov

Registrovaný: 26.11.06
Prihlásený: 02.09.15
Príspevky: 24
Témy: 3
Bydlisko: Snina
Príspevok NapísalOffline : 20.03.2010 17:23

aha :)
cize, keby som chcel, aby mi program dokazal vypisat cislo do 255d(377 osmickovo) nie do tych 63d tak to treba upravit nejako takto?
Kód:
horny_bajt:
mov a, e
push psw
ani 3h
rar
rar
adi '0'
call putchar

stredny_bajt:
ani 38h
rar
rar
rar
adi '0'
call putchar

dolny_bajt:
pop psw
ani 07h
adi '0'
call putchar


Offline

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

Registrovaný: 14.03.10
Prihlásený: 08.05.10
Príspevky: 5
Témy: 0
Príspevok NapísalOffline : 20.03.2010 18:15

Caves ... prepac, ze zasa pisem ... ale tak nevedel by si mi pomoct s desiatkovym vypisom v asemblery? ... lebo fakt si s tym neviem poradit ... :loony: (konkretne ten prevod pre vypis v desiatkovej sustave) ... diks moc vopred


Offline

Skúsený užívateľ
Skúsený užívateľ
Asm i8080: vypisat pocet slov s dlzkou 2 az 5 znakov

Registrovaný: 11.01.09
Prihlásený: 26.04.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 20.03.2010 20:15

Xerk píše:
Ahoj, ja mám určiť počet slov neobsahujúcich reťazec ASM alebo asm, a neviem s tým fakt ani pohnúť :( nemohol by si mi nejak poradiť, naviesť ma nato abo niečo? ...som z toho fakt dutý...díky :(

Prečítaný znak porovnáš najprv s 'a'. Ak nie je zhoda skoč na druhé porovnanie, inak prečítaj ďalší znak a porovnaj s 's', ak nie je zhoda, skoč na druhé porovnanie, inak prečítaj ďalší znak a nakoniec porovnaj s 'm' a pri zhode nastav nejaký register na 1, čím signalizuješ prítomnosť reťazca asm/ASM v slove. To druhé porovnanie bude vlastne to isté, akurát s veľkými znakmi.

martin.007 píše:
cize, keby som chcel, aby mi program dokazal vypisat cislo do 255d(377 osmickovo) nie do tych 63d tak to treba upravit nejako takto?

Ehm, ani nie, skôr takto:
Kód:
horny_bajt:
mov a, e
push psw
ani 0C0h
rar
rar
rar
rar
rar
rar
adi '0'
call putchar

stredny_bajt:
pop psw      ; obnov cislo ulozene v registri a
push psw    ; znovu ho uchovaj
ani 38h
rar
rar
rar
adi '0'
call putchar

dolny_bajt:
pop psw
ani 07h
adi '0'
call putchar

samqo píše:
nevedel by si mi pomoct s desiatkovym vypisom v asembleri?

Výpis desiatkovo? Ak máš napr v registri a hodnotu, ktorú chceš vypísať, tak pripočítaj k nemu hodnotu 30h (alebo '0' , je to to isté). Samozrejme, funguje to iba, ak v ňom je číslo menšie, ako 10. A to ako zadanie do školy stačí, nakoľko aj príklady cvičené tam sú riešené takto. Ale keď silou-mocou chceš výpis aj väčších čísel, tak ti to môžem napísať.


Offline

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

Registrovaný: 14.03.10
Prihlásený: 08.05.10
Príspevky: 5
Témy: 0
Príspevok NapísalOffline : 20.03.2010 20:57

Neviem ako to chce ten nas ujo , takze ak by som ta mohol poprosit ci by si mi to nenapisal ... pre istotu ... diks


Offline

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

Registrovaný: 04.03.10
Prihlásený: 30.04.10
Príspevky: 5
Témy: 1
Príspevok NapísalOffline : 21.03.2010 16:08

ahoj, upravil som si nekoho zdrojak na moje zadanie (vypisat pocet slov obsahujucich len cisla)

snazil som sa to robit sposobom, ze mi bude ratat NEcisla pokial nebude medzera, a pri medzere vyhodnoti. ci boli nejake NEcisla (d>0) alebo neboli... ak d=0, takze neboli ziadne ine znaky, iba CISLA...pripocitame k e +=1...

neviem aka chyba je, tu je kod:

Kód:
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
  cpi 32         ; znak je medzera
  jz spocitaj
  cpi 10         ; znak je novy riadok
  jz spocitaj
  cpi 13          ; znak je koniec retazca
  jz koniec
  cpi '0'
  jc necislo ; ak menej ako 0 
  cpi '9'+1
  jnc necislo ; viac ako 9

       
  jmp hladaj

spocitaj:         ; spocita pocet znakov v slove
  mov a, d
  mvi d,0  ;vynuluj pocitadlo
  cpi 1 ; ak vascie abo rovne ako 1
  jnc hladaj ; tak nerob nic a citaj dalsi znak
inr e
           ; pocet vyhovujucich slov
  jmp hladaj

necislo:
inr d ; zvys cislo o 1 // znamena, ze v tomto slove uz bolo NEcislo
jmp hladaj

koniec:

  lxi h, retazec2      ; vypis prvu cast informacie
  call putstr

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

  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, 'pocet slov obsahujucich len cislice ', 10, 13, 0
retazec0:       ds 50


update: kus som pokrocil, ale enviem preco to robi opak... hlada slova, ktore neobsahuju ziadnu cislicu.. :( :D
update2: hotovo, dakujem si :D

prosim o pomoc... diky :/


Offline

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

Registrovaný: 22.03.10
Prihlásený: 23.03.10
Príspevky: 1
Témy: 0
Príspevok NapísalOffline : 22.03.2010 17:05

ahoj
nevedel by mi niekto pomoct s programom ??
mam spocitavat slova ktorych ASCII hodnoty tvoria klesajucu postupnot
nvm kde je chyba, pls pomozte

Kód:
org 1000

dcx sp

lxi h,text1
call putstr

mvi d,0
mvi e,0   ;spocitava vyhovujuce slova
call getchar
mov d,a
jmp test1

test1:
call getchar
inr a
cmp d
jz test2
jnz test3

test2:
dcr a
mov d,a
jmp test1

test3:
dcr a
cpi 32
jz pripocitaj_e
jnz dalsie_slovo
cpi 10
jz pripocitaj_e
jnz dalsie_slovo
cpi 13
jz pripocitaj_e
jnz dalsie_slovo
cpi 0
jz pripocitaj_e
jnz dalsie_slovo

pripocitaj_e:
inr e
jmp dalsie_slovo

dalsie_slovo:
call getchar
cpi 10
jz koniec
cpi 13
jz koniec
cpi 0
jz koniec
cpi 32
jnz dalsie_slovo
jz test1

koniec:
lxi h,text2
call putstr

mov a, e
adi '0'
call putchar
call newline

hlt

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

text1: db 'pocet slov s klesjucou postupnostiu ...',10,13,'Vloz text: ',0
text2: db 10,13,'slov: ',0
vlozeny: ds 30


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 : 22.03.2010 19:22

ahoj pomohol by mi prosim niekto, mam urcit pocet slov obsahujucich aspon jedno male a aspon jedno velke pismeno -pocet0-255 a vytlacit sestnastkovo .v i8080...sa tu s tym uz hodnu chvilu mordujem,velmi by sa mi zisla pomoc.


Offline

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

Registrovaný: 23.03.10
Prihlásený: 23.03.10
Príspevky: 1
Témy: 0
Príspevok NapísalOffline : 23.03.2010 18:40

cawte pomohli by ste mi s asm 8080 spocitaj slova ktore maju menje ako 5 znakov je jasne že by som vychadzala z toho ziaciatku ako je to slova 3 - 5 znakov aj som to zmenila no je tam taky problem že ten kod cita aj cisla a to nemože ako tomu zabranit potrebujem aby cital len pismena žiadne ine znaky a aby ignoroval každu medzeru po medzere proste aby nebral dalsiu medzeru ako znak lebo ak dam dva krat madzeru za sebou tak raz to vezme ako medzeru a potom dalej to berie ako znak dakujem


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 : 07.04.2010 21:52

ahoj nevedel by mi niekto pomoct s tymto kodom lebo nejde mi to a neviem co mam zle v nom. Ma mi to vypisat v dvojkovej sustave kolko je vo vete slov ktore obsahuju aspon jedno velka a aspon jedno male pismeno

org 1000
dcx sp
lxi h,text1
call putstr
call newline
lxi h,text2
call putstr
lxi d,slovo
call getline
lxi b,slovo

mvi d,10
mvi e,0
mvi c,10

char_loop:
ldax b
inx b
cpi 10
jz vypis
cpi 13
jz vypis
cpi 32
jz space
cpi 'A'
jc test
cpi 'Z'+1
jnc test
inr d
jmp char_loop

test:
cpi 'a'
jc char_loop
cpi 'z'+1
jnc char_loop
inr c
jmp char_loop
char_end:
dcr d
mov a,d
cpi 10
jc vypis
inr e

space:
dcr d
mov a,d
cpi 10
jc no
dcr c
mov a,c
cpi 10
jc no
inr e
mvi d,10
mvi c,10
jmp char_loop

no:
mvi d,10
mvi d,10
jmp char_loop
ret

vypis:
lxi h,text3
call putstr
mov a,e
push psw
ani 0C0h
rar
rar
rar
rar
rar
rar
adi '0'
call putchar

pop psw
push psw
ani 38h
rar
rar
rar
adi '0'
call putchar

pop psw
ani 07h
adi '0'
call putchar

hlt

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

text1: db 10,13,'Urcte pocet slov obsahujucich aspon jedno velke a aspon jedno male pismeno. Vysledok vypiste dvojkovo.',0
text2: db 10,13,'Vloz text: ',0
text3: db 10,13,'Pocet slov osmickovo je: ',0
slovo: ds 30


Offline

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

Registrovaný: 15.03.11
Prihlásený: 17.03.11
Príspevky: 1
Témy: 0
Príspevok NapísalOffline : 15.03.2011 13:47

Zdravim mam tu ulohu vypis slov asci code vacsi ako dvesto a mne ten dvojkovy prevodnik nefunguje :( asi budem megalama :cry: navyse aj ked dam po sebe viac medzier tak mi to vyhodniti tak ze prva medzeru nepocita a ostatne rata ako slovo..aj ked dam medzeru na koniec


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


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. ASEMBLER:Určte počet slov obsahujúcich reťazec ASM alebo asm

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

7

1421

25.03.2011 10:07

dury26 Zobrazenie posledných príspevkov

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 : 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. c - pocet znakov

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

9

623

17.09.2011 11:21

nBXXL Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Minimálny počet znakov

v PHP, ASP

3

551

27.07.2007 7:56

zero0x 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. Naformatovat bunka na urcity pocet znakov v excely

v Ostatné programy

0

354

26.04.2011 10:13

kati123 Zobrazenie posledných príspevkov

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

v Audio programy

9

739

07.05.2011 11:11

mirom Zobrazenie posledných príspevkov

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

v Databázy

6

720

17.09.2009 11:34

rooobertek Zobrazenie posledných príspevkov

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

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

1

436

12.04.2010 21:20

dEVIANT Zobrazenie posledných príspevkov

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

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

3

857

29.03.2009 13:12

bbeni Zobrazenie posledných príspevkov

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

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

1

297

24.03.2013 22:07

walther Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. i8080 pretečenie akumulátora - problém

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

0

246

12.04.2013 2:23

AM-JP Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Pascal: vypisat slova ktore maju viac nez 4 znaky rozne

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

2

571

21.03.2010 10:25

pascal01 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ako vypisat prvok pola, ked nazov indexu je v premennej

v PHP, ASP

2

446

10.01.2010 13:49

Mysql_dodo 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