Assembler 8080 pomoc – Assembler – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Assembler 8080 pomoc – Assembler – Fórum – Programujte.comAssembler 8080 pomoc – Assembler – Fórum – Programujte.com

 

bbeni0
Návštěvník
31. 3. 2009   #1
-
0
-

Prosím skontrolujte niekto tento program ,výstup má byt v 2kovej ,ale píše v 10 tkovej sústave.Kde je chyba
org 1000

dcx sp ; inicializacia zasobnika (0FFFFh)

lxi h,text1 ; skopiruj text1 do h
call putstr ; vypis uvodny text

mvi b,0 ; pocitadlo vyhovujucich slov
mvi c,0 ; pocitadlo vyhovujucich znakov v slove
mvi d,0 ; pocitadlo vsetkych znakov v slove


char_loop:
call getchar ; nacita sa zadany znak do registra "a"
cpi 10 ; porovna sa register "a" s backspacom
jz char_end ; skoci sa na char_end, ak sa rovna
cpi 13 ; porovna sa register "a" s enterom
jz char_end ; skoci sa na char_end, ak sa rovna
cpi 32 ; porovna sa register "a" s medzerou
jz char_space ; skoci sa na char_space, ak sa rovna
cpi 43 ; nacitany znak sa porovna s '+'
jz char_add ; skoci sa na char_add, ak sa rovna
cpi 42 ; nacitany znak sa porovna s '*'
jz char_add ; skoci sa na char_add, ak sa rovna
cpi 47 ; nacitany znak sa porovna s '/'
jz char_add;skoci sa na char_add, ak sa rovna
cpi 45 ; nacitany znak sa porovna s '-'
jz char_add;skoci sa na char_add, ak sa rovna
inr d ; inkrementuje sa pocitadlo vsetkych znakov v slove
jmp char_loop ; nacita sa dalsi znak

char_add:
inr c ; inkrementuje sa pocitadlo vyhovujucich znakov v slove
inr d ; inkrementuje sa pocitadlo vsetkych znakov v slove
jmp char_loop ; nacita sa dalsi znak

char_space:
mov a,d ; pocitadlo vsetkych znakov v slove sa skopiruje do registra "a"
cpi 0 ; nebola prvy znak medzera?
jz char_loop ; ak ano, nacita sa dalsi znak
cmp c ; porovna sa, ci vsetky znaky boli vyhovujuce
mvi d,0 ; vynuluje sa pocitadlo vsetkych znakov v slove
mvi c,0 ; vynuluje sa pocitadlo vyhovujucich znakov v slove
jnz char_loop ; nacita sa dalsi znak
inr b ; inkrementuje sa pocitadlo vyhovujucich slov
jmp char_loop ; nacita sa dalsi znak

char_end:
mov a,d ; skopiruje sa pocitadlo vsetkych znakov v slove do registra "a"
cpi 1 ; ak nie su ziadne dalsie znaky,
jc print ; pokracuje sa vo vypise
cmp c ; inak sa kontroluje, ci posledne slovo bolo spravne
jnz print ; ak nie, pokracuje sa vo vypise
inr b ; ak ano, inkrementuje sa pocitadlo vyhovujucich slov

celociselny_zvisok_po_deleni:
sub b ; odcita b od a
cmp b ; porovna b s a
jnc celociselny_zvisok_po_deleni ; ak je a < b skonci
ret ; vrati sa spet

delenie_celeho_cisla:
mvi h,0;
_delenie:
sub b ; odcita b od a
inr h ; zvisi h
cmp b ; porovna b s a
jnc _delenie ; ak je a < b skonci
mov a, h
ret ; vrati sa spet

binarny_prevod:
mvi a,0 ; do registra a da 0
sta 20 ; zapise obsah registra a do pamete 20
sta 21 ; zapise obsah registra a do pamete 21
sta 22 ; zapise obsah registra a do pamete 22
sta 23 ; zapise obsah registra a do pamete 23
sta 24 ; zapise obsah registra a do pamete 24
sta 25 ; zapise obsah registra a do pamete 25
sta 26 ; zapise obsah registra a do pamete 26
sta 27 ; zapise obsah registra a do pamete 27
sta 28 ; zapise obsah registra a do pamete 28
sta 29 ; zapise obsah registra a do pamete 29

mov a, c ; do registra a da obsah registra c
sta 20 ; zapise obsah registra a do pamete 20
mvi b,2 ; do registra b da 2

call celociselny_zvisok_po_deleni ; zavola celociselny_zvisok_po_deleni
sta 22 ; zapise obsah registra a do pamete 22
lda 20 ; obsah pamete 20 da do registra a

call delenie_celeho_cisla ; zavola delenie_celeho_cisla
sta 21 ; zapise obsah registra a do pamete 21
call celociselny_zvisok_po_deleni ; zavola celociselny_zvisok_po_deleni
sta 23 ; zapise obsah registra a do pamete 23
lda 21 ; obsah pamete 21 da do registra a
call delenie_celeho_cisla ; zavola delenie_celeho_cisla
sta 21 ; zapise obsah registra a do pamete 21
call celociselny_zvisok_po_deleni ; zavola celociselny_zvisok_po_deleni
sta 24 ; zapise obsah registra a do pamete 24
lda 21 ; obsah pamete 21 da do registra a
call delenie_celeho_cisla ; zavola delenie_celeho_cisla
sta 21 ; zapise obsah registra a do pamete 21
call celociselny_zvisok_po_deleni ; zavola celociselny_zvisok_po_deleni
sta 25 ; zapise obsah registra a do pamete 25
lda 21 ; obsah pamete 21 da do registra a
call delenie_celeho_cisla ; zavola delenie_celeho_cisla
sta 21 ; zapise obsah registra a do pamete 21
call celociselny_zvisok_po_deleni ; zavola celociselny_zvisok_po_deleni
sta 26 ; zapise obsah registra a do pamete 26
lda 21 ; obsah pamete 21 da do registra a
call delenie_celeho_cisla ; zavola delenie_celeho_cisla
sta 21 ; zapise obsah registra a do pamete 21
call celociselny_zvisok_po_deleni ; zavola celociselny_zvisok_po_deleni
sta 27 ; zapise obsah registra a do pamete 27
lda 21 ; obsah pamete 21 da do registra a
call delenie_celeho_cisla ; zavola delenie_celeho_cisla
sta 21 ; zapise obsah registra a do pamete 21
call celociselny_zvisok_po_deleni ; zavola celociselny_zvisok_po_deleni
sta 28 ; zapise obsah registra a do pamete 28
lda 21 ; obsah pamete 21 da do registra a
call delenie_celeho_cisla ; zavola delenie_celeho_cisla
sta 21 ; zapise obsah registra a do pamete 21
call celociselny_zvisok_po_deleni ; zavola celociselny_zvisok_po_deleni
sta 29 ; zapise obsah registra a do pamete 29
lda 29 ; obsah pamete 29 da do registra a

adi 48 ; k obsahu registra a pripocita 48
out 11h ; vypise obsah registra a na obrazovku
lda 28 ; obsah pamete 28 da do registra a
adi 48 ; k obsahu registra a pripocita 48
out 11h ; vypise obsah registra a na obrazovku
lda 27 ; obsah pamete 27 da do registra a
adi 48 ; k obsahu registra a pripocita 48
out 11h ; vypise obsah registra a na obrazovku
lda 26 ; obsah pamete 26 da do registra a
adi 48 ; k obsahu registra a pripocita 48
out 11h ; vypise obsah registra a na obrazovku
mvi a,' ' ; do registra a da ' '
out 11h ; vypise obsah registra a na obrazovku
lda 25 ; obsah pamete 25 da do registra a
adi 48 ; k obsahu registra a pripocita 48
out 11h ; vypise obsah registra a na obrazovku
lda 24 ; obsah pamete 24 da do registra a
adi 48 ; k obsahu registra a pripocita 48
out 11h ; vypise obsah registra a na obrazovku
lda 23 ; obsah pamete 23 da do registra a
adi 48 ; k obsahu registra a pripocita 48
out 11h ; vypise obsah registra a na obrazovku
lda 22 ; obsah pamete 22 da do registra a
adi 48 ; k obsahu registra a pripocita 48
out 11h ; vypise obsah registra a na obrazovku
ret ; vrati sa spet

print:
lxi h,text2 ; skopiruje sa text2 do h
call putstr ; vypise sa text2
mov a,b ; skopiruje sa pocitadlo vyhovujucich slov do registra "a"
adi '0' ; hodnota a jej ASCII tvar ...
call putchar ; vypise sa znak
call newline ; vypise sa novy riadok





hlt ; ukonci sa program

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

text1: db 'Pocet slov neobsahujucich aritmeticke operatory ...',10,13,'Vloz text: ',0
text2: db 10,13,'Slov je: ',0
vlozeny: ds 30

Nahlásit jako SPAM
IP: 147.232.180.–
o-lox0
Super člen
31. 3. 2009   #2
-
0
-

mov a,d ; skopiruje sa pocitadlo vsetkych znakov v slove do registra "a"
cpi 1 ; ak nie su ziadne dalsie znaky,
jc print ; pokracuje sa vo vypise
cmp c ; inak sa kontroluje, ci posledne slovo bolo spravne
jnz print ; ak nie, pokracuje sa vo vypise
inr b ; ak ano, inkrementuje sa pocitadlo vyhovujucich slov
TOHLE MI NEDAVA SMYSL, NIKAM TO NEVEDE - neboli vysvetli mi kde si to dokoncil
celociselny_zvisok_po_deleni:
sub b ; odcita b od a
cmp b ; porovna b s a
jnc celociselny_zvisok_po_deleni ; ak je a < b skonci
ret ; vrati sa spet


Dale > dělení se dá psát efektivněji než otrockým odčítáním, ale to bych ti asi komplkoval začátečnické práce.
Takže aspoň WTF je práce s HL a cyklem, to binarny_prevod snad nemyslis vazne?? Dalo se to 1 cyklem!! Nehlede ze se to do nej nemuze dostat.
Nemáš na to vůbec nějaký prostředí 8080?

Nahlásit jako SPAM
IP: 85.71.152.–
bbeni0
Návštěvník
1. 4. 2009   #3
-
0
-

ako by to malo byt správne

Nahlásit jako SPAM
IP: 147.232.180.–
o-lox0
Super člen
1. 4. 2009   #4
-
0
-

A a a a a a r g h

org 1000


dcx sp ; inicializacia zasobnika (0FFFFh)

lxi h,text1 ; skopiruj text1 do h
call putstr ; vypis uvodny text

mvi b,0 ; pocitadlo slov neobsahujicich +-*/
mvi c,1 ; pomocna promenna boolean typ
lxi h,text1

chloop:
call getch
cpi 10 ; porovna sa register "a" s backspacom
jz chend ; skoci sa na char_end, ak sa rovna
cpi 13 ; porovna sa register "a" s enterom
jz chend ; skoci sa na char_end, ak sa rovna
cpi 32 ; porovna sa register "a" s medzerou
jz chspac ; skoci sa na char_space, ak sa rovna
cpi 43 ; nacitany znak sa porovna s '+'
jz chadd ; skoci sa na char_add, ak sa rovna
cpi 42 ; nacitany znak sa porovna s '*'
jz chadd ; skoci sa na char_add, ak sa rovna
cpi 47 ; nacitany znak sa porovna s '/'
jz chadd;skoci sa na char_add, ak sa rovna
cpi 45 ; nacitany znak sa porovna s '-'
jz chadd;skoci sa na char_add, ak sa rovna
jmp chloop ; nacita sa dalsi znak

chadd:
mvi c,0
jmp chloop ; nacita sa dalsi znak

chspac:
mov a,b
add c
mov b,a
mvi c,1
jmp chloop ; nacita sa dalsi znak

chend:
call print
hlt


del: ; deli a/b Vraci a, zbytek b
mvi h,0;
deleni:
cmp b ; porovna b s a
jc nedel ; ak je a < b skonci
sub b ; odcita b od a
inr h ; zvisi h
jmp deleni
nedel:
mov b,a
mov a, h
ret ; vrati sa spet

prevod:
cpi 0
jz konec
mvi b,10
call del
push psw
mov a,b
adi 48
mov M,a
dcx h
pop psw
jmp prevod

konec:
adi 48
mov M,a
ret

print:
mov a,b
lxi h,vloz+4
call prevod
lxi h,text2 ; skopiruje sa text2 do h
call putstr ; vypise sa text2
call newline ; vypise sa novy riadok
ret

getch:
mov a,M
inx h
ret

text1: db 'Pocet slov +neobsahujucich aritmeticke operatory ...',10,13,'Vloz text: ',0
text2: db 10,13,'Slov je: '
vloz: db ' ',0

hlt ; ukonci sa program
END


Asi nejk takto. Deleni sem nechal, gchar si udelal svoje protoze si sve nedodal a otestoval to tak z 70% v simulatoru, za 100% si snad priplat nebo zesedivim :-))

Je to udelane tak jak jsem z tveho stroheho popisu pochpil tozn. vypise v desitkove soustave pocet tech slov.

Mohl bys mi rict co je
misto: ds 30 - co si tim chtel udelat???? - RAD BYCH TE POCHOPIL

Nahlásit jako SPAM
IP: 85.71.152.–
o-lox0
Super člen
1. 4. 2009   #5
-
0
-

A vůbec je to zvláštní pocit s timhle dělat,
ještě by vás ve škole měli naučit používat děrný štítky a vyměnit prasklé Elektronky,
na ENIACa bys nedej bože taky mohl v tech. muzeu někdy narazit :D

Nahlásit jako SPAM
IP: 85.71.152.–
bbeni0
Návštěvník
1. 4. 2009   #6
-
0
-

v čom si to pustal ? ja v EmuStudiu
diky moc aj keď mi hlási chybu putstr...
ds 30 nevymyslel som to ja,moje cvika z Assembleru 8080 a najnovšie 8086 nestoja za nič... možno budem o mesiac potrebovať pomoc so zadaním ...
keby ti trebalo dačo v Pascale tak ti to skúsim spraviť, bez toho ,aby som zošedivel...

Nahlásit jako SPAM
IP: 147.232.180.–
o-lox0
Super člen
1. 4. 2009   #7
-
0
-

No to jsou konečně ta správná slova, vezmu tě někdy za ně :-) , jako Pascalského testera ještě nikoho nemám, uvidim :-) stačilo by mi stejně jenom upozornění na chybku v hot. exe dělaných her.

a když nebudeš moc - se stále hnout tak vypiš problémy..

..Testoval jsem v cpu simulatoru 8085

Nahlásit jako SPAM
IP: 85.71.152.–
bbeni0
Návštěvník
1. 4. 2009   #8
-
0
-

totiz getchar a putchar ,podobne getline,newline ,putstr su hlavickove subory a su definovane takto :
getchar:
in 10h
ani 1
jz getchar
in 11h
out 11h
ret

putchar
out 11h
ret

putstr
mov a,m
inx h
cpi 0
rz
out 11h
jmp putstr
zatial nevypisuje v žiadnej sustave ,len nejake cudne znaky
niekedy sa neda nacitat
nie je chybne to END na konci

kde zohnam tvoj simulator

Nahlásit jako SPAM
IP: 147.232.180.–
KIIV
~ Moderátor
+43
God of flame
1. 4. 2009   #9
-
0
-

pocitas s tim, ze aby ti to vypsalo spravny znaky musis taky pricist nejakou konstantu? treba kdyz ti v binarce vychazeji cisla 0 a 1 tak aby si vypsal 0 nebo 1 v ascii tak musis pricist ascii hodnotu znaku '0'
ja jen takovy postreh...

Nahlásit jako SPAM
IP: 80.250.1.–
Program vždy dělá to co naprogramujete, ne to co chcete...
bbeni0
Návštěvník
1. 4. 2009   #10
-
0
-

pripojil som tam hlavickove subory a syntakticku chybu nenaslo.ide o to ze ked to spustim vypise
'Pocet slov +neobsahujucich aritmeticke operatory ...
vloz text...
Slov je:


tukam na klavesy a nic nenapise,nezachytava klavesy

Nahlásit jako SPAM
IP: 147.232.180.–
o-lox0
Super člen
1. 4. 2009   #11
-
0
-

To KIIV : To jsem mu samosebou Napsal
To bbeni : Pošli mi na mail prosimtě to tvé Emustudio, já ti můžu poslat něco od sebe ale nemám tam vtipně výstup na obrazovku je to jen CPU...

Jinak našel jsem u sebe chybajznu, v dělení manipuluju s registrem H a ten přitom je používanej pro práci s pamětí, nahraď to třebbba reg. D je volnej.

Nahlásit jako SPAM
IP: 85.71.152.–
o-lox0
Super člen
1. 4. 2009   #12
-
0
-

Tak jasně nepřidal jsi třeba getline, já ho tam neměl, když jsem neměl ty Hlavičkárny ....

Nahlásit jako SPAM
IP: 85.71.152.–
bbeni0
Návštěvník
1. 4. 2009   #13
-
0
-

zmenil som h na d...

Nahlásit jako SPAM
IP: 147.232.180.–
bbeni0
Návštěvník
1. 4. 2009   #14
-
0
-

co dal...

Nahlásit jako SPAM
IP: 147.232.180.–
bbeni0
Návštěvník
1. 4. 2009   #15
-
0
-

dalsie chyby -urcite vstup a vystup

Nahlásit jako SPAM
IP: 147.232.180.–
o-lox0
Super člen
1. 4. 2009   #16
-
0
-

No ale já se ošívám, nejsem oslíček co se ti otřese.... dnes na to slušně řečeno ssse-kašlu. Taky se posnaž, no a zítra je taky den :-)

Nahlásit jako SPAM
IP: 85.71.152.–
o-lox0
Super člen
2. 4. 2009   #17
-
0
-

Nevidim kde máš blok !
U mne v simulátoru to celkem běží.
Ten tvůj chce Java5 a kvuli tomuto si instalovat 130MB 5ku nebudu, stáhl jsem sice verzi i pro 4.0 ale ta si nerozumí s i8080.

vstup/výstup nahraď:
getch -> getchar

použij poslední verzi co mám Nahoře a musíš dostat aspoň Nějaký výsledek tak krásně jako já.
Neřikám že se nemůžu dostat k PC s Javou 6.0, ale fakt myslim že to neni nutný :-)

Nahlásit jako SPAM
IP: 85.71.152.–
bbeni0
Návštěvník
2. 4. 2009   #18
-
0
-

vstup je uz ok,len nevypise ziadne cislo,resp. vobec nic ,zmazal som tvoj getch a nahradil to

Nahlásit jako SPAM
IP: 147.232.180.–
bbeni0
Návštěvník
2. 4. 2009   #19
-
0
-

vypisuje nejake cudne znaky...

Nahlásit jako SPAM
IP: 147.232.180.–
o-lox0
Super člen
2. 4. 2009   #20
-
0
-

Máš tam tohle

print:
mov a,b
lxi h,vloz+4
call prevod
lxi h,text2 ; skopiruje sa text2 do h
call putstr ; vypise sa text2
call newline ; vypise sa novy riadok

a tohle ?

push psw
mov a,b
adi 48
mov M,a
dcx h
pop psw


jako já nahoře?

Hoď sem svůj KOD [celej ! ] , kdyz uvidim ze je to ten ktery me funguje, opravdu prejdu ke Computeru numero Duo (s javou).

Nahlásit jako SPAM
IP: 85.71.152.–
bbeni0
Návštěvník
2. 4. 2009   #21
-
0
-

org 1000
dcx sp ; inicializacia zasobnika (0FFFFh)

lxi h,text1 ; skopiruj text1 do h

call putstr ; vypis uvodny text



mvi b,0 ; pocitadlo slov neobsahujicich +-*/

mvi c,1 ; pomocna promenna boolean typ

lxi h,text1



chloop:

call getchar

cpi 10 ; porovna sa register "a" s backspacom

jz chend ; skoci sa na char_end, ak sa rovna

cpi 13 ; porovna sa register "a" s enterom

jz chend ; skoci sa na char_end, ak sa rovna

cpi 32 ; porovna sa register "a" s medzerou

jz chspac ; skoci sa na char_space, ak sa rovna

cpi 43 ; nacitany znak sa porovna s '+'

jz chadd ; skoci sa na char_add, ak sa rovna

cpi 42 ; nacitany znak sa porovna s '*'

jz chadd ; skoci sa na char_add, ak sa rovna

cpi 47 ; nacitany znak sa porovna s '/'

jz chadd;skoci sa na char_add, ak sa rovna

cpi 45 ; nacitany znak sa porovna s '-'

jz chadd;skoci sa na char_add, ak sa rovna

jmp chloop ; nacita sa dalsi znak



chadd:

mvi c,0

jmp chloop ; nacita sa dalsi znak



chspac:

mov a,b

add c

mov b,a

mvi c,1

jmp chloop ; nacita sa dalsi znak



chend:

call print

hlt





del: ; deli a/b Vraci a, zbytek b

mvi h,0;

deleni:

cmp b ; porovna b s a

jc nedel ; ak je a < b skonci

sub b ; odcita b od a

inr h ; zvisi h

jmp deleni

nedel:

mov b,a

mov a, h

ret ; vrati sa spet



prevod:

cpi 0

jz konec

mvi b,10

call del

push psw

mov a,b

adi 48

mov M,a

dcx h

pop psw

jmp prevod



konec:

adi 48

mov M,a

ret



print:

mov a,b

lxi h,vloz+4

call prevod

lxi h,text2 ; skopiruje sa text2 do h

call putstr ; vypise sa text2

call newline ; vypise sa novy riadok

ret







text1: db 'Pocet slov +neobsahujucich aritmeticke operatory ...',10,13,'Vloz text: ',0

text2: db 10,13,'Slov je: '

vloz: ds 30



hlt ; ukonci sa program

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

Nahlásit jako SPAM
IP: 147.232.180.–
o-lox0
Super člen
2. 4. 2009   #22
-
0
-

Budu vraždit to je ta NEJVĚTŠÍ NOČNÍ MŮRA která přede mne byla za poslední dobu předhozena.

1) nemám slov

2) nemám slov

PŘELOŽENO :

1) co dělá registr H v dělení když jsme se domluvili na D , => zabít

2) co ten konec ještě sem se tě na to ptal, speciálně proč tam máš vloz: DS 30 , odpověděls že nevíš, já TAM NAPSAL něco jiného, nevšiml sis náhodou, jen takovou abych se nemusel potutelně smát ....


1) všechny H na D !!!


2)
text1: db 'Pocet slov +neobsahujucich aritmeticke operatory ...',10,13,'Vloz text: ',0
text2: db 10,13,'Slov je: '
vloz: db ' ',0

ad2) nemam zkusenosti jak je ten prostor DS alokovan ale vsadim se ze skucivejma nulama

uffff

Nahlásit jako SPAM
IP: 85.71.152.–
bbeni0
Návštěvník
2. 4. 2009   #23
-
0
-

urcite bude ds 30 pise vzdy 0
sa ti chcelo vstať okolo 5:00

Nahlásit jako SPAM
IP: 147.232.180.–
o-lox0
Super člen
2. 4. 2009   #24
-
0
-

Poslyš máš nějaké trauma o kterém nevím a měl bych vědět? Jseš poznamenaný DSkem a s odporem k mezerám??
Nuly jsou špatně, pokud si si jist že tam opravdu alokuje ty, cokoliv mimo mezery je ZLE!
Nula ukončí řetězec předčasně, jiné věci dělají ten tvůj maglajz, už se mnou nepolemizuj, použij tu přílohu, a na příští experimenty se přesídli do cirkusu, jistě tě ocení. :-))
PS jsem horník fárám od nevidim do nevidim..

Nahlásit jako SPAM
IP: 85.71.152.–
bbeni0
Návštěvník
2. 4. 2009   #25
-
0
-

ake experimenty
inak na betón bude vlozeny ds 30
inak neviem co je ds a db
skusal som tvoj kód v mojom prostredí ...
nechaj tak ...
robil so to v MASM alebo EasyCode
dik za pomoc ,za trpezlivosť...pánboh zaplat
zišli by sa mi nejake príklady na 8086
možno ti ukazem správne riešenie pre moje prostredie(''robime'' v nom v skole)
dobru noc (dobre ráno)

Nahlásit jako SPAM
IP: 147.232.180.–
o-lox0
Super člen
3. 4. 2009   #26
-
0
-

já si to nechal překládat v zabudovaném hexa translátoru toho simulátoru.
Chutné poobědvání, večer ti nějaké stříbrné = ty lepší kousky pošlu na mail ... (př.8086 a výš)
s vama se vubec protrhl pytel, na forech se to jen hemzi tvejma 8080 kolegama :-)

Nahlásit jako SPAM
IP: 85.71.152.–
bbeni0
Návštěvník
3. 4. 2009   #27
-
0
-

este som netestoval hry ,ale prečo nie ,profesor mi na strednej hovoril ,ze sa dá na tom zarobiť ,posli niečo uvidím :smile2:
mimochodom čo je ds a db
mam to teraz tazke v skole: 2zadania z programovania v C , kadejake male písomky,zapoctovky,labaky z fyziky,diskrétna matika,elektrotechnika,umela inteligencia a nas assembler 8086
dá sa spustit NASM z prikazoveho riadku?
keď si si ty našiel čas ,ja si nájdem,keď chceš posli mi to
vhodny príklad predosla úloha v 8086
Pascal ovládam celkom dobre,hry v som v nom nerobil,keby ma to niekto naučil...,som dosť vytazeny... diky za programy,ten v cecku devc hlasi chyby pri kompilacii :smile2:
dobru noc (dobre ránko)

Nahlásit jako SPAM
IP: 85.248.5.–
o-lox0
Super člen
4. 4. 2009   #28
-
0
-

DS je alokace paměti podobně jako DB.
Na místě kde to napíšeš se buďto nechá vytvořit onen vypisovaný text, čísla, proměnné
nebo prostě jen volný prostor o velikosti v bytech dané číslem. U toho DS je nejasné
co v něm bude, na začátku nuly ale pokud je paměť nějakým způsobem
přesznovuvyužita už tam nebudou(program takové úseky nemá sám v sobě vyplněny a
jen návěští slouží pro identifikaci místa paměti narozdíl od DB '123', které můžeš v
přeloženém kódu vidět).
Ale u 8086 to bude kolidovat s klíčovým slovem pro DS segment, tam budeš muset
přes pole tozn. DUP (navíc to tasm ani nezná).

Nasm používám vyjímečně, mám tu Masm(Win), Tasm. A na kompilaci si stáhni něco ze zlatého
fondu: https://downloads.embarcadero.com/free/tc201
----
Na ten job, když budeš mít vysokou úroveň, tak tě samozřejmě zaplatim.
Pokud vývoj sám nezabalim, což je nadmíru ošemetné (pro oba), ale normální :].
Projektů k testování mám vlastně víc.

Nahlásit jako SPAM
IP: 85.71.152.–
bbeni0
Návštěvník
5. 4. 2009   #29
-
0
-

nič som tam nenašiel...mozes to poslať :smile4:

Nahlásit jako SPAM
IP: 147.232.180.–
red0
Duch
9. 3. 2010   #30
-
0
-

zdravim mohol by mi niekto pomoct so zadanim do skoly? Mam spravit program, ktory urci pocet slov obsahujucich len rovnake znaky a vypis by mal byt v hex sustave. pomohol by mi niekto neviem si rady. PLS HELP ME....

Nahlásit jako SPAM
IP: 147.232.182.–
sputnikone+1
Věrný člen
9. 3. 2010   #31
-
0
-

To red : V Assembleru?

Nahlásit jako SPAM
IP: 147.251.53.–
red0
Duch
9. 3. 2010   #32
-
0
-

To sputnikone : jj v assembleri..... ja tomu proste nerozumiem ak vies pls pomoz.... ale vystup ma byt v desiatkovej sustave

Nahlásit jako SPAM
IP: 147.232.182.–
m->29+6
Super člen
9. 3. 2010   #33
-
0
-

Tak v akej sústave to má teda byť? Aký Assembler používaš? A čo už máš, ak si začal?

Nahlásit jako SPAM
IP: 147.229.208.–
red0
Duch
9. 3. 2010   #34
-
0
-

10-kovej sustave .... 8080...... nemam nic lebo nemam ani sajnu ze co mam tam robit (keby to bolo ako c++ alebo php)

Nahlásit jako SPAM
IP: 147.232.182.–
red0
Duch
9. 3. 2010   #35
-
0
-

v assembleri dokazem spravit akurat tak ze zhasnu diody na klavesnici

Nahlásit jako SPAM
IP: 147.232.182.–
m->29+6
Super člen
9. 3. 2010   #36
-
0
-

Tu som posielal nejaké linky kde sa môžeš o ASM niečo priučiťhttp://programujte.com/?akce=diskuze&kam=vlakno&tema=15153-zaciname-v-assembleru. Nemalo by to byť ťažké - pozri si a ak budeš potrebovať pomôcť tak stačí napísať;-) A nepovedal si aký Assembler používaš. A ten vstupný text má byť len uložený v dátovom segmente, alebo ho čítaš zo vstupu, prípadne zo súboru?

Nahlásit jako SPAM
IP: 147.229.208.–
red0
Duch
10. 3. 2010   #37
-
0
-

a co ja viem jaky assemler to je? (mame to robit pre dajaky altair, ale keby som vedel co to je) a vstupny text ma byt citany zo vstupu.

Nahlásit jako SPAM
IP: 147.232.182.–
illioner0
Stálý člen
10. 3. 2010   #38
-
0
-

když mi zaplatíš skrz PayPal pošlu ti to hotový pro Altair. Jinak nic na tom neni. Někam si šoupneš úvodní znak, někam poznamenáš že byl v průběhu neidentický, pokud skutečně nebyl, pak vypíšeš. Stačí určitě numerický výstup do 99 jedenkráte vydělením desítkou. Mám to tu, jestli máš z ASM kopřivku, nebudeš to nikdy v budoucnu potřebovat - pak svůj zájem projev na mém mailu, za nějaký rozumný obnos to k tobě doputuje. Vyšlo mě to na 78 řádek i mezerama. Fakt se to dá zvládnout - naučením pár základních instrukcí.

Nahlásit jako SPAM
IP: 85.71.152.–
Nechápu softwarové firmy, ktere utrácejí za čim dál těžkopádnější DRM ochranu!! Vidět kolem snahu o free2play model je jako příjemné připomenutí časů shareware (jen ten Microsoft stále nic nepochopil)
UrSuS0
Duch
12. 3. 2010   #39
-
0
-

Caute, potreboval by som trochu pichnout s tym asm i8080 kedze s nim mam skusenost len defakto z troch hodin v skole
cize
moja uloha znie
"vypis pocet slov ktore obsahuju len velke pismena"

takze pre jednoduchost, pseudokod vyzera nejako takto

while koniec_vstupu != true {

while s[i] != medzera{
if s[i] = velke pismeno {
pocet_velkych++ //pocet velkych pismen v slove
}
pocet_pismen++ //pocet vsetkych pismen v slove
}

if p_v == p_p {
pocet_slov++ //pocet slov s len velkymi pismenami
}
}

cize celkom simple, len to neviem velmi hodit do asm, trochu mam problem nastavit tie jumpy

viem ako osetrit ci je to velke pismeno cize
CPI 'A'
JC navestie
CPI 'Z'+1
JNC navestie
INR pocet_velkych

dik

Nahlásit jako SPAM
IP: 188.112.104.–
illioner0
Stálý člen
12. 3. 2010   #40
-
0
-

možná zbytečně složitý, stačí ti nahrát třeba přes mvi c,1 takhle hodnotu že nebylo velké písmeno, nikde neporovnávej počty a jen si ověř, že registr c je rovný 0, když neni tak počítadlo slov zůstane nezměněný. Na začátku nějaký lxi h,vlozene na konci přidat 48 pro vypsání znaku, příp. předtim vydělit deseti..

Nahlásit jako SPAM
IP: 85.71.152.–
Nechápu softwarové firmy, ktere utrácejí za čim dál těžkopádnější DRM ochranu!! Vidět kolem snahu o free2play model je jako příjemné připomenutí časů shareware (jen ten Microsoft stále nic nepochopil)
UrSuS0
Duch
13. 3. 2010   #41
-
0
-

.

Nahlásit jako SPAM
IP: 188.112.104.–
UrSuS0
Duch
13. 3. 2010   #42
-
0
-

ok uz mi to funguje ako ma, len problem je pri cisle nad 9
lebo
10+'0' = ':'

a podobne, mam to urobit pre max 99cislo, neviete ako tie dvojciferne mam urobit, vedel by som to, ale neexistuje instrukcia mod a div, aspon co ja viem..

Nahlásit jako SPAM
IP: 188.112.104.–
jardo
~ Anonymní uživatel
7 příspěvků
15. 3. 2010   #43
-
0
-

Nazdar, tak ako podarilo sa ti urobit to zadanie, lebo ja mam podobne, len mam to urobit pre male pismena, (len mi tam nejde pocitadlo a vypis)
vedel by si mi psolat to tvoje zadanie aby som si to pozrel?
DIKY

Nahlásit jako SPAM
IP: 147.232.163.–
jardo
~ Anonymní uživatel
7 příspěvků
15. 3. 2010   #44
-
0
-

Nazdar, tak ako podarilo sa ti urobit to zadanie, lebo ja mam podobne, len mam to urobit pre male pismena, (len mi tam nejde pocitadlo a vypis)
vedel by si mi psolat to tvoje zadanie aby som si to pozrel?
DIKY

Nahlásit jako SPAM
IP: 147.232.163.–
jardo
~ Anonymní uživatel
7 příspěvků
15. 3. 2010   #45
-
0
-

Nazdar, tak ako podarilo sa ti urobit to zadanie, lebo ja mam podobne, len mam to urobit pre male pismena, (len mi tam nejde pocitadlo a vypis)
vedel by si mi psolat to tvoje zadanie aby som si to pozrel?
DIKY

Nahlásit jako SPAM
IP: 147.232.163.–
dEVIANT
~ Anonymní uživatel
6 příspěvků
15. 3. 2010   #46
-
0
-

Mám oba vaše zadania...aj LEN veľké aj LEN malé...cena jak pre vás 10 eur, keďže som musel riešit blbú sústavu :P

Nahlásit jako SPAM
IP: 147.232.183.–
UrSuS0
Duch
15. 3. 2010   #47
-
0
-

:D

zabudni

Nahlásit jako SPAM
IP: 188.112.104.–
dEVIANT
~ Anonymní uživatel
6 příspěvků
15. 3. 2010   #48
-
0
-

Ja vám chcem len pomôcť...:D Keď nevieš pochopiť, musiš zaplatiť ...

Nahlásit jako SPAM
IP: 147.232.183.–
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
15. 3. 2010   #49
-
0
-

mozes mi to ursus poslat?
fakt by mi to pomohlo, ja skusim ten prevod poriesit s potom ti dam vediet
DIKY

Nahlásit jako SPAM
IP: 88.212.40.–
UrSuS0
Duch
16. 3. 2010   #50
-
0
-

dEVIANT napsal:
Ja vám chcem len pomôcť...:D Keď nevieš pochopiť, musiš zaplatiť ...



ale coby som nevedel pochopit, fyi uz to mam, odkedy mas patent na rozum?

Nahlásit jako SPAM
IP: 147.232.40.–
jardo
~ Anonymní uživatel
7 příspěvků
16. 3. 2010   #51
-
0
-

To UrSuS : tak co posles mi to na jaroslavgall@centrum.sk

Nahlásit jako SPAM
IP: 88.212.40.–
UrSuS0
Duch
16. 3. 2010   #52
-
0
-

jardo napsal:
To UrSuS : tak co posles mi to na jaroslavgall@centrum.sk

za 9e, lol

Nahlásit jako SPAM
IP: 188.112.104.–
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
16. 3. 2010   #53
-
0
-

cize si tovnaky ako deviant cpo no diky, myslel som ze pomozes

Nahlásit jako SPAM
IP: 88.212.40.–
UrSuS0
Duch
16. 3. 2010   #54
-
0
-

pomozem, nie spravim to za teba

Nahlásit jako SPAM
IP: 188.112.104.–
jardo
~ Anonymní uživatel
7 příspěvků
17. 3. 2010   #55
-
0
-

To UrSuS : no ved ja mam uz urobene to ze mi pocita tie slova z malylim pismaenami potrebujem len to s prevodm do desiatkej sustavy. Neziadam aby si mi cele robil za mna, ale len ten prevod by som potreboval

Nahlásit jako SPAM
IP: 88.212.40.–
UrSuS0
Duch
17. 3. 2010   #56
-
0
-

tu moj kapitalisticky kolega uz to povedal
Ta máš dajme tomu 24 vyhovujúcich slov, porovnáš s 10, je to väčšie, takže odčítaš 10, ale inkrementuješ nejaké počítadlo desiatok. Ciže máš 14 a v napr. d 1...zas odčítaš...máš 4 čo už je menšie ako 10 - to sú jednotky. A v tom d máš 2 - to sú desiatky.

Nahlásit jako SPAM
IP: 188.112.104.–
jardo
~ Anonymní uživatel
7 příspěvků
17. 3. 2010   #57
-
0
-

ta ty si :D, tak asi som to nepochopil a neviem to urobit ked to od teba potrebujem.

Nahlásit jako SPAM
IP: 88.212.40.–
goro
~ Anonymní uživatel
3 příspěvky
18. 3. 2010   #58
-
0
-

mam problem s assemblerom.. vcera som na to pozeral asi 4 hodiny, ale neviem na to prijst.. tu je zdrojak..

org 1000


dcx sp ; inicializacia zasobnika (0FFFFh)

lxi h,text1
call putstr ; vypis text1

lxi d,vlozeny ; adresa pre vstup retazca
call getline ; nacitaj z klavesnice

lxi b,vlozeny
mvi d,0
mvi c,0 ; ?

char_loop:
ldax b
inx b
cpi 10 ; koniec vstupu?
jz char_end
cpi 13
jz char_end
cpi 'A'
jc male
cpi 'Z'+1
jnc male
jmp char_loop
char_end:


lxi h,text2 ; vypis kolko slov s velkymi pismenami
call putstr

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,'Vloz text: ',0
text2: db 10,13,'Koniec ',0
vlozeny: ds 30

male:
mvi c,2
jmp char_loop
hlt



pracujem v emuStudiu .. ide mi tam o to, ze chcem aby ked na vstupe zadam male pismeno tak aby mi to skocilo na navestie "male" .. viem ze to teraz nic neriesi, ale ako priklad.. Vsetko ide v poriadku, pokial nestlacim "Enter" .. ak ho stlacim tak by malo skocit na char_end, vypisat hlasku a program ukoncit.. ale nestane sa tak.. namiesto toho sa to zacykly a v jednom kuse skace na male.. neviem proste prijst na to, ze ako je to mozne.. nevie niekto ako na to?

Nahlásit jako SPAM
IP: 88.212.40.–
illioner0
Stálý člen
18. 3. 2010   #59
-
0
-

To goro : pozor, obsah registru C nemen, je pouzivanej jako ukazatel propojene k B (adresy jsou 16bitove), vyuzij D,E. Nebo jako ukazatel vyuzij tradicnejsi H.

Nahlásit jako SPAM
IP: 85.71.152.–
Nechápu softwarové firmy, ktere utrácejí za čim dál těžkopádnější DRM ochranu!! Vidět kolem snahu o free2play model je jako příjemné připomenutí časů shareware (jen ten Microsoft stále nic nepochopil)
goro
~ Anonymní uživatel
3 příspěvky
18. 3. 2010   #60
-
0
-

Dakujem velmi pekne.. ani nevies ako si mi pomohol :)

Nahlásit jako SPAM
IP: 88.212.40.–
goro
~ Anonymní uživatel
3 příspěvky
18. 3. 2010   #61
-
0
-

Ja uz tomu nechapem.. zmenil som vsetky registre c na h .. ale "male" si potrebujem trochu upravit.. potrebujem dat h do akumulatora, porovnat ci sa tam nenachadza 0 a ak hej tak do h vlozit 1 .. spravil som to takto:

male:

mov a,h
cpi 0
jz pripis_1
ret

pripis_1:
mvi h,1


ale akonahle dam aspon jedno male pismeno tak sa mi to zase zacykli..neviem si s tym rady ;/ .. skusal som vsetky registre a aj tak to robi ;/ .. vie niekto preco?

Nahlásit jako SPAM
IP: 88.212.40.–
jardo
~ Anonymní uživatel
7 příspěvků
22. 3. 2010   #62
-
0
-

nazdar mam vypisat pocet slov v dekadickej sustave ktore obsahuju len male pismean , ale nejde to , vie mi niekto pomoct

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
jmp char_loop

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,d ;presun hodnoty z registra D do akumulatora
cmp e ;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,d
cmp e
jc vypis
pop psw
inr a ;zvysenie poctu vyhovujucich slov
push psw
jmp vypis

vypis:
lxi h, text2
call putstr

mov a, d
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

Nahlásit jako SPAM
IP: 88.212.40.–
illioner0
Stálý člen
23. 3. 2010   #63
-
0
-

myslim že na konci to špatně taháš z registru D a máš to na zásobníku, velmi pravděpodobně jsi slepil různé kódy a nemáš šajnu vo co go :D

Nahlásit jako SPAM
IP: 85.71.152.–
Nechápu softwarové firmy, ktere utrácejí za čim dál těžkopádnější DRM ochranu!! Vidět kolem snahu o free2play model je jako příjemné připomenutí časů shareware (jen ten Microsoft stále nic nepochopil)
jano
~ Anonymní uživatel
85 příspěvků
27. 3. 2010   #64
-
0
-

Vie mi niekto poradit kde robim chybu program ma spocitat pocet slov obsahujucich viac cislic ako pismen malej abecedy



org 1000

dcx sp ; inicializacia zasobnika (0FFFFh)

lxi h,text1
call putstr ; vypis text1


call getline
lxi b,vlozeny

mvi d,0 ; pocitadlo cislic
mvi c,0 ; počítadlo malých písmen
mvi e,0 ; slov ktore obsahuju viac čísel ako písmen
; malej abecedy
zaciatok:
ldax b ; načíta sa zadaný znak do registra'a'
inx b ; posun znaku
cpi 13 ; porovná sa register 'a' s ENTER
jz vypis ; ak sa rovná skočí na výpis
cpi 32 ; porovná sa register 'a' s SPACE
jz test ; ak sa rovná skočí na TEST

cpi '0' ; väčšie alebo rovne 0
jc otestuj ; menej ako '0'?
cpi '9'+1
jnc otestuj ; menšie alebo rovne 9+1
inr d ; Ak je to číslo tak inkrementuje d o 1
jmp zaciatok

otestuj: ; Zistíme či je to malé písmeno
cpi 'a' ; Vacsie alebo rovne ako a
jc zaciatok
cpi 'z' + 1 ; Mensie alebo rovne ako z
jnc zaciatok
inr c ;Ak je to malé písmeno tak inkrementuje e o 1
jmp zaciatok


test:
mov a,d ; Presuň hodnotu z registra d do akumulátora
cmp c ; Porovnaj akumulátor s registrom d
inr e ; Ak je počet čísel menej ako počet malých písmen incrementuj e
jc zaciatok ;skoc na zaciatok


vypis:

lxi h, text2
call putstr
mov a,c
adi '0' ; hodnota a jej ASCII tvar ...
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\getchar.inc'
include 'examples\8080\include\newline.inc'


text1: db 'Pocet slov obsahujucich viac cislic ako písmen malej abecedy ...',10,13,'Vloz text: ',0
text2: db 10,13,'Pocet slov obsahujucich viac cislic ako pismen malej abecedy je: ',0
vlozeny: ds 30



Nahlásit jako SPAM
IP: 188.120.25.–
illioner0
Stálý člen
27. 3. 2010   #65
-
0
-

jste všicí se svým kopírováním hotovek na jedno brdo a už to začíná být skoro otravné :/

Nahlásit jako SPAM
IP: 85.71.152.–
Nechápu softwarové firmy, ktere utrácejí za čim dál těžkopádnější DRM ochranu!! Vidět kolem snahu o free2play model je jako příjemné připomenutí časů shareware (jen ten Microsoft stále nic nepochopil)
KIIV
~ Moderátor
+43
God of flame
27. 3. 2010   #66
-
0
-

To illioner : skoro otravne? ses na tom lip jak ja :D pro me to uz je davno otravne

Nahlásit jako SPAM
IP: 80.250.1.–
Program vždy dělá to co naprogramujete, ne to co chcete...
caf0
Duch
29. 3. 2011   #67
-
0
-

ahojte :) poprosila by som vás len skontrolovať či mám program dobre, malo by to byť tak, ale človek nikdy nevie a v asm som iba začiatočníčka, ďakujem dopredu :)

Načítajte z klávesnice reťazec znakov ukončený znakom "nového riadku". Slová vo vstupe sú
oddelené najmenej jedným znakom "medzera". Uvažujte aj prvé, resp. posledné slovo vstupu.
Určte počet slov obsahujúcich len písmena veľkej abecedy.
počet (0-255) vytlačte šestnástkovo

org 1000

start:
dcx sp ; inicializacia zasobnika (0FFFFh)

lxi h,text1
call putstr ; vypis text1

lxi d,vlozeny ; adresa pre vstup retazca
call getline ; nacitaj z klavesnice
lxi b,vlozeny

mvi d,0 ; pocitadlo cislic
mvi h,1

char_loop:
ldax b
inx b
cpi 10
jz enter
cpi 13
jz enter
cpi 32
jz space
cpi 'A'
jc bad
cpi 'Z'+1
jc uc
jmp bad

enter:
mov a,h
cpi 2
jnz output
inr d
jmp output

space:
mov a,h
cpi 2
jz ok
mvi h,1
jmp char_loop

bad:
mvi h,0
jmp char_loop

uc:
mov a,h
cpi 0
jz char_loop
cpi 1
jnz char_loop
inr h
jmp char_loop

ok:
inr d
mvi h,1
jmp char_loop


output:
lxi h,text2 ; vypis text2
call putstr

mvi e,2
hexa_loop:
mov a,d
rlc
rlc
rlc
rlc
mov d,a
ani 15
cpi 10
jc num
adi 'A'-10
jmp next
num:
adi '0'
next:
call putchar
dcr e
jnz hexa_loop

call newline
jmp start

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 '8b) Urcte pocet slov obsahujucich len pismena velkej abecedy.',10,13,'Vloz text: ',0
text2: db 10,13,'Pocet: 0x',0
vlozeny: ds 30

Nahlásit jako SPAM
IP: 147.232.182.–
caf0
Duch
29. 3. 2011   #68
-
0
-

sorry ale dala som zlý zdroják.


org 1000

dcx sp

start:
lxi h,text1
call putstr

lxi d,vlozeny
call getline
lxi b,vlozeny

mvi d,0
mvi h,1

char_loop:
ldax b
inx b
cpi 10
jz enter
cpi 13
jz enter
cpi 32
jz space
cpi 'A'
jc bad
cpi 'Z'+1
jc uc
jmp bad

enter:
mov a,h
cpi 2
jnz output
inr d
jz overflow
jmp output

space:
mov a,h
cpi 2
jnz new_word
inr d
jz overflow
new_word:
mvi h,1
jmp char_loop

bad:
mvi h,0
jmp char_loop

uc:
mov a,h
cpi 0
jz char_loop
cpi 2
jz char_loop
inr h
jmp char_loop

overflow:
lxi h,text3
call putstr
hlt

output:
lxi h,text2
call putstr

mvi e,2
hexa_loop:
mov a,d
rlc
rlc
rlc
rlc
mov d,a
ani 15
cpi 10
jc num
adi 'A'-10
jmp next
num:
adi '0'
next:
call putchar
dcr e
jnz hexa_loop

call newline
jmp start ;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'

text1: db '8b) Urcte pocet slov obsahujucich len pismena velkej abecedy.',10,13,'Vloz text: ',0
text2: db 10,13,'Pocet: 0x',0
text3: db 10,13,'Bol prekroceny pocet 255!',0
vlozeny: ds 30

Nahlásit jako SPAM
IP: 147.232.182.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 20 hostů

Podobná vlákna

POmoc s assembler 8080 pls — založil firinko

Assembler pomoc — založil pontiac

Pomoc- Assembler — založil Martin

Pomoc s assembler 86 — založil firin

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý