[ Príspevkov: 6 ] 
AutorSpráva
Offline

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

Registrovaný: 21.08.07
Prihlásený: 07.10.12
Príspevky: 84
Témy: 32 | 32
Bydlisko: Presov
NapísalOffline : 01.04.2010 18:11 | Assembler 8080

Cute skole sme dostalo zadanie napisat program assembleru 8080 kde si to mame sami nastudovat mam stym problem lebo dokumentacia k 8080 nie je skoro ziadna.Potreboval by som vysvetlit ako funguje Zero a Carry.Ako sa to pocita ci Zero=1 alebo Carry=1


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 13.11.07
Prihlásený: 20.08.16
Príspevky: 1702
Témy: 0 | 0
NapísalOffline : 02.04.2010 0:17 | Assembler 8080

Dokumentácie k procesorom 8080 je na internete kopec.
Nijako sa to nepočíta, použiješ len nejakú inštrukciu, ktorá s tou hodnotou pracuje (a v obyčajnom 8080 sú to asi len inštrukcie pre skok).


Offline

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

Registrovaný: 21.08.07
Prihlásený: 07.10.12
Príspevky: 84
Témy: 32 | 32
Bydlisko: Presov
Napísal autor témyOffline : 02.04.2010 11:04 | Assembler 8080

no na assembler 8080 som toho vela nenasiel.No len kedy ten skok nastane napr. Cpi 10 JZ Cpi 13 JZ do akumalatoru budeme mat cislo 12 tak sa mi nerovna ani z jednim cislom tak skok nenastane?


Offline

Skúsený užívateľ
Skúsený užívateľ
Assembler 8080

Registrovaný: 11.01.09
Prihlásený: 27.12.24
Príspevky: 1395
Témy: 10 | 10
Bydlisko: Hrinova
NapísalOffline : 02.04.2010 11:29 | Assembler 8080

Tu je inštrukčná sada

Zero flag sa nastaví na nulu, ak je výsledok poslednej operácie nula. Napr:
Kód:
mvi a, 10   ; do registra a vloz 10
cpi 10    ; porovnaj register a s desiatkou: a-10

Po tejto operácii 10 - 10 je výsledok nula, teda zero flag sa nastaví na true [vloží sa tam jednotka]. Ak by výsledok nebol nulový, tak zero flag sa nastaví na nulu [false]. Treba si uvedomiť, že po každej inštrukcii sa nastavujú príznakové registre - teda aj zero flag aj cary flag, no nie všetky inštrukcie menia príznakové registre, napríklad push, pop, atď...
S príznakom zero flag súvisia inštrukcie skoku jz [skoč, ak je zero flag jedna] a jnz [skoč, ak zero flag nie je jedna].

Cary flag sa nastaví na true, ak sa výsledok poslednej operácie nezmestí do registra. Pre prácu v 8080 assembleri máme k dispozícii osembitové registre, čiže maximálne číslo, ktoré do nich môžme uložiť, je v rozsahu 0-255. Ak je výsledok poslednej operácie menšie alebo väčšie, cary flag sa nasstaví na true, ak je v tomto rozsahu, tak sa cary flag nastaví na false. Napr:
Kód:
; ...
; v registri a je ASCII hodnota nejakeho znaku
znova:

cpi '0'
jc dalej

cpi '9'+1

jc znova
; ak sa dostaneme sem, v registri a je ASCII hodnota čísla, čiže 0-9

dalej:
;....

S príznakom cary flag súvisia inštrukcie skoku jc [skoč, ak je cary flag jedna - ak bol prenos] a jnz [skoč, ak zero flag nie je jedna - ak nebol prenos].


Offline

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

Registrovaný: 21.08.07
Prihlásený: 07.10.12
Príspevky: 84
Témy: 32 | 32
Bydlisko: Presov
Napísal autor témyOffline : 02.04.2010 18:48 | Assembler 8080

Diky za vysvetlene.Ten prikaz cpi `9`+1 porovnava reg A z tesne za znakom 9... tesne za znakom 9 sa mysli cisla od 0 do 9?


Offline

Skúsený užívateľ
Skúsený užívateľ
Assembler 8080

Registrovaný: 11.01.09
Prihlásený: 27.12.24
Príspevky: 1395
Témy: 10 | 10
Bydlisko: Hrinova
NapísalOffline : 02.04.2010 20:44 | Assembler 8080

Ak je znak v registri A menší ako znak '0' a keďže cpi urobí (a-'0'), tak menšie číslo mínus väčšie číslo je záporné číslo, teda prenos. Takže ak má byť číslo nad nejakou hranicou, nesmie nastať prenos (aj keď sa čísla rovnajú, tak dané číslo patrí do tohoto intervalu).
Ak ale potrebujeme porovnanie hornej hranice intervalu, vtedy využívame prenos: Ak je znak v registri A väčší ako znak '9'+1 (to je konkrétne znak ':') a keďže cpi urobí (a- ('9'+1) ), tak väčšie mínus menšie číslo je vždy kladné; prípadne ak sa rovnajú, tak nula; no každopádne prenos nenastal. Takže ak má byť číslo pod nejakou hranicou, musí nastať prenos (maximálne číslo v intervale + 1).
Snáď som to podal dostatočne výstižne.


 [ Príspevkov: 6 ] 


Assembler 8080



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

ASM 8080

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

0

440

25.02.2017 14:50

kemperik

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

8080 spracovanie retazca

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

1

692

07.01.2009 14:52

stopa27

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

Oneskorenie 1s pre 8080

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

3

877

25.04.2007 17:30

yossarian

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

MHB 8080 / PMD 85-2

v Ostatné procesory

6

5944

02.08.2006 8:19

Carlos

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

Zdravím, potreboval by som pomocť so zadaním z ASM 8080

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

2

398

06.03.2017 17:48

Miso122

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

Assembler

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

0

828

31.03.2009 20:10

bbeni

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

assembler

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

1

1537

10.11.2006 18:14

Marco

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

Assembler

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

0

746

01.04.2009 21:02

bbeni

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

ASSEMBLER

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

8

1787

13.03.2007 20:39

My-reC

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

Assembler úloha

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

0

829

02.02.2008 7:37

HT

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

Assembler 8086

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

11

1328

19.05.2010 22:38

JR55

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

assembler zaciatky

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

5

1006

03.09.2010 15:14

Fico

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

Assembler 8086

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

3

643

21.04.2009 20:05

Fico

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

Assembler - úloha

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

2

937

22.10.2007 15:04

programator

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

Kniha : Assembler

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

1

563

16.04.2013 22:34

XOLOO

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

zacat assembler

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

15

1182

16.12.2011 23:24

Ďuri



© 2005 - 2024 PCforum, edited by JanoF