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

Prikazy Asembleru – Assembler – Fórum – Programujte.comPrikazy Asembleru – Assembler – Fórum – Programujte.com

 

trebuk0
Duch
23. 3. 2010   #1
-
0
-

Vie mi nekto vysvetlit co robi prikaz asebleru 8080 CPI a ako mam chapat cpi '9'+1

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

instrukce cpi porovná obsah akumulátoru tedy registru A s hodnotout těsně za znakem 9. Podle porovnání budou nastaveny příznaky - přenosu, když to bude 9,8,7.... Naopak třeba v ASCII je znak "a" nad takže tam to příznak nenastaví.

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)
trebuk0
Duch
23. 3. 2010   #3
-
0
-

Diky za odpovet.Program ma zaulohu spocitat cisla.Este by ste mi mohli vysvetlit ten program. mvi nacitava stup z klavesnice? neviem ako mam chapat cpi 10, cpi 13,cpi 0... cpi 10 a ostatne sa porovnavaju z cim?

org 1000


dcx sp ; inicializacia zasobnika (0FFFFh)

lxi h,text1
call putstr ; vypis text1

mvi d,0 ; pocitadlo cislic

char_loop:
call getchar
cpi 10 ; koniec vstupu?
jz char_end
cpi 13
jz char_end
cpi '0'
jc char_loop ; menej ako '0'?
cpi '9'+1
jnc char_loop ; viac ako '9'+1?
inr d ; cislica
jmp char_loop
char_end:

lxi h,text2 ; vypis text2
call putstr

mov a,d
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 cislic vo vstupe (getchar) ...',10,13,'Vloz text: ',0
text2: db 10,13,'Cislic: ',0
vlozeny: ds 30

Nahlásit jako SPAM
IP: 188.112.112.–
KIIV
~ Moderátor
+43
God of flame
23. 3. 2010   #4
-
0
-

getchar predpokladam nacte znak do akumulatoru..
cpi akumulator nejspis nemeni.. tak kontrolni otazka: s cim se porovnavaji hodnoty zadane u cpi, kdyz se porovnavaji s akumulatorem?

Nahlásit jako SPAM
IP: 80.250.1.–
Program vždy dělá to co naprogramujete, ne to co chcete...
trebuk0
Duch
23. 3. 2010   #5
-
0
-

Diky tak getchar mi nacita znak do akumatora.Posledna vec ako prebeha porovnani? zadam cislo 12 a CPI 10 ako zistim ci to bude Z=1 alebo Z=0

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

cislo 12 jako retezec se ti muze rozlozit do znaku 49 a 50. Cpi 10 porovna znak 10 to je rozdilne od znaku 1 a 2 tudiz bude Z=0 jakoze se nerovna. Priznak Z je od Zero a nastavi se kdyz po virtualnim odecteni zbyde 0 coz v tomhle pripade mimochodem nastane na konci radku ktery se oznaci prave znakem 10+13. Oddelene .....10,13

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)
trebuk0
Duch
23. 3. 2010   #7
-
0
-

Tak teraz neviem ci som to dobre pochopil tak mozno napisem blbost. Tak na konci radku sa z 13 odcita 10 potom 2 a 1 a ostane nam nula tak zero sa rovna. Dobre som to pochopil?

Nahlásit jako SPAM
IP: 188.112.112.–
illioner0
Stálý člen
24. 3. 2010   #8
-
0
-

/jinak představ si řetězec
"123456A"+konec řádku neboli ENTER - ten se převede do čísel v paměti která je organizovaná
8 bitově jako čísla binárně do 255. Zkonvertujem je raději do decimální soustavy. tedy:
49,50,51,52,53,54,65,13,10,0,0,0,0,0,0...
Na začátku programu nastavíš ukazatel na ty data bude ukazovat na jedničku
neboli číslo 49. Pak v té řadě čísel ještě vidíš 13 a 10 ty představují konec řádku(enter).
instrukcí CPI 13 porovnáváš ten obsah načteného registru A s 13. Tozn. nejřív existuje
instrukce pro načtení do registru A. Pak popořadě krokem prochází všechna čísla.
Ve všech případech je Z=0 (49,50,51,52,53,54,65) Až na konci řádku, který je
představován znakem s obvykle dvěma kódy 13,10 se zde vrátí u první 13ky -> Z=1 a může zareagovat následný podmíněný skok.

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)
trebuk0
Duch
2. 4. 2010   #9
-
0
-

Uz mi je to jasne.Mam jednu otazku prikaz INR d mi navysuje hodnotu registra d +1 za kazdu nacitanu cislicu?

Nahlásit jako SPAM
IP: 178.40.146.–
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, 33 hostů

Podobná vlákna

Příkazy aj. — založil Petr G...

Príkazy — založil hirakami

 

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