Assembler - 3. lekce
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Assembler - 3. lekceAssembler - 3. lekce

 

Assembler - 3. lekce

Google       zatím neprovedena       30. 7. 2005       30 377×

• Matematické operace (2)
• Bitové nastavení a logické operace
• Programové vybavení (2) ..

Slovo úvodem :
koly jsem do teď bral rozsahem 1, 4 a 5, protože jste přesně nevěděli, jak má vypadat úprava, nyní budu již známkovat v celém rozsahu, na konci lekce je popsána úprava.



Matematické operace (2)


ADD a ADDC
Jsou příkazy sčítání akumulátoru s místem v paměti RAM.
Pokud akumulátor přeteče (velikost je FFH), nastaví se příznak Carry a příznak přetečení AC. Příkaz ADDC navíc ještě sčítá k výsledku příkazy Carry a AC.

Ukázka :
ORG 0
MOV A,# 250 ;v acc je 250
ADD A,# 12 ;po vykonání je v acc 6 a nastaví se Carry
ADDC A,# 2 ;přičte se k acc 2 a Carry

A = 250+12 = 256+6 =>=> Carry = 1 + Acc = 6

SUBB
Příkaz pro odečítání od akumulátoru.
Pokud výsledek směřuje do záporných hodnot ukáže nám to Carry.

Ukázka :
ORG 0
MOV A, #6 ;Acc = 6
SUBB A, #12 ;Acc = 6-12 = 0-6 =>=> 256-6 = 250 = 0FAH
ADDC A, #1 ;Acc= 250+1+Carry =>=> 252 = 0FCH
NOP ;prázdná instrukce (nic nedělá, slouží abyste v As51 viděli předešlý krok)
END

Pozn.: Pokud do programu píšete hexa číslo a začíná písmenem je zapotřebí před něj napsat nulu.


Bitové nastavení a logické operace

SETB A CLR
Nastavení bitu do jedničky a do nuly, například nemusíme používat: MOV P1, #00001000B ale SETB P1.3 (místo bitu se počítá zprava a od nuly), u akumulátoru vypadá příkaz takto: SETB Acc.3 , můžeme i uměle nastavovat příznaky: SETB C ; (carry).

ANL - Je logický součin, výsledkem je log. 1, pokud vstupní operandy zaujímají stav log. 1.
Tedy : 1*1=1 1*0=0 0*1=0 0*0=0

ORL - je logický součet, výsledkem je log. 1, pokud alespoň jeden ze vstupních operandů zaujímá stav log. 1
Tedy : 1+1=1 1+0=1 0+1=1 0+0=0

XRL - je výlučný logický součet (komparátor), výsledkem je log. 1, pokud se hodnoty operandů liší
Tedy : 1+1=0 1+0=1 0+1=1 0+0=0

Při těchto operacích se pracuje se všemi osmi místy.
Takže pro příklad:
MOV A, #217 ; 11011001B MOV A, #217 ; 11011001B
MOV R3, #150 ; 10010110B MOV R3, #150 ; 10010110B
ANL A, R3 ; 10010000B ORL A, R3 ; 11011111B


Programové vybavení (2)


V minulém díle jsme si osvojili první program ve vybavení As51, dnes budeme v tomto duchu pokračovat.
Tedy na obrázku pod textem jsou vysvětleny kolonky programu:

Místo v paměti ROM a strojový kód nás nemusí zajímat, ale

Váš program už ano, zde totiž po kompilaci můžete vidět chyby kterých jste se dopustili nebo zde vidíte trasovat program, odhalí chyby například špatně napsaného „JMPs cosi“, nebo pokud se v jumpu odkazujete na adresu, která neexistuje.

Časové registry budeme hodně používat a jejich funkci si popíšeme v příštím díle, jen napovím, že se bude hodně počítat :-).

Sériová linka se, jak už z názvu vyplývá, používá pro komunikaci po seriové lince, my toto bohužel probírat nebudeme pro mou neznalost protokolu, vím jen že slouží hlavně pro přenesení programu z PC do mikroprocesoru.


Vnitřní paměť RAM můžete prohlížet, ale i zapisovat.
Dělá se to tak, že v hlavním menu označíte položku Modify nebo, pokud již trasujete program, zmáčknete klávesu F5, nyní můžete zapisovat nejen do paměti RAM, ale i do všech registrů, pro přeskakování do jiných kolonek se používá klávesa Page Up a Down. V paměti RAM se pak přemísťujete pomocí Ctrl a zase Page Up a Down nebo přímo na místo Shift a F6 a nyní napíšete místo, kde se chcete objevit (v hexa).

Nápověda je velmi dobrá pomůcka když nevíte co by... Podle toho kde se nacházíte vám ukazuje možné klávesové zkratky a jejich vysvětlení.

Zobrazení příznaků speciálních registrů a registry povolení přerušení nás zatím nemusí zajímat, probereme to blíže až v dalších dílech.

Registry aritmetické jednotky – bez nich by se nic nevykonalo, jsou zde registry: Acc – akumulátor (vykonává matematické operace přes jednotku ALU)
PSW – registr příznaků pra Acc
B – pomocný registr u DIV a MUL
SP – jsem nikdy nepoužil, protože jsme to nepotřebovali
PC – Program counter – je čítač který ukazuje na instrukci která má následovat
DPTR – je ukazatel na místo v paměti ROM, budeme používat při čtení hodnot jdoucí za sebou

Porty – jsou komunikačním prostředkem pro mikroprocesor, na ně se napojují periferie, sběrnice a externí paměti.

Úprava:
Je mi celkem jedno jestli budete psát velkým, malým, či smíšeným, záleží jen na tom jak jste zvyklí např. z jiných jazyků, tedy abyste měli nějaký styl, ale teď k tomu co požaduji: i když to v kurzu občas vypadá nezarovnaně, protože nejde používat obyčejný tabulátorový příkaz odsazení, již jsem na to apeloval admina, takže bych byl rád, kdyby mi vyhověl, ale vy se snažte to mít zarovnané a co nejvíce okomentované (komentář se píše za středníkem a prosím bez diakritiky). UKÁZKOVÝ PROGRAM



DU :
Vytvořte program který bude sčítat obsah míst v paměti od adresy 35H po 7FH dokud výsledek nebude 1000, pak se první a poslední sčítaná hodnota logicky sečte a zapíše na port P2 a nakonec se výsledná hodnota zapíše jako 16-ti bitové číslo do paměti 32h a 33h, nemusíte do těchto polí v programu nic vepisovat postačí když si to vyzkoušíte v As51 a do RAM si vepíšete hodnoty uměle. Nejdřív popřemýšlejte co by mohlo nastat a pak program ošetřit proti kolizím. Tento úkol je už trošku složitější, ale pokud umíte matematiku, přečetli jste si kurz celý a máte trochu programátorského ducha, tak si myslím, že to nebude nemožné vytvořit.

Povzbuzení na závěr : „Bude toho víc… tak se těšte :o)“

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Tagy:
Hlasování bylo ukončeno    
0 hlasů
Google
Autor programuje v Assembleru, zajímá se o elektroniku a tunning PC.

Nové články

Obrázek ke článku Stavebnice umělé inteligence 1

Stavebnice umělé inteligence 1

Článek popisuje první část stavebnice umělé inteligence. Obsahuje lineární a plošnou optimalizaci.  Demo verzi je možné použít pro výuku i zájmovou činnost. Profesionální verze je určena pro vývojáře, kteří chtějí integrovat popsané moduly do svých systémů.

Obrázek ke článku Hybridní inteligentní systémy 2

Hybridní inteligentní systémy 2

V technické praxi využíváme často kombinaci různých disciplín umělé inteligence a klasických výpočtů. Takovým systémům říkáme hybridní systémy. V tomto článku se zmíním o určitém typu hybridního systému, který je užitečný ve velmi složitých výrobních procesech.

Obrázek ke článku Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Vedení týmu v oboru informačních technologií se nijak zvlášť neliší od jiných oborů. Přesto však IT manažeři čelí výzvě v podobě velmi rychlého rozvoje a tím i rostoucími nároky na své lidi. Udržet pozornost, motivaci a efektivitu týmu vyžaduje opravdu pevné manažerské základy a zároveň otevřenost a flexibilitu pro stále nové výzvy.

Obrázek ke článku Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Za poslední rok se podoba práce zaměstnanců změnila k nepoznání. Především plošné zavedení home office, které mělo být zpočátku jen dočasným opatřením, je pro mnohé už více než rok každodenní realitou. Co ale dělat, když se při práci z domova ztrácí motivace, zaměstnanci přestávají komunikovat a dříve fungující tým se rozpadá na skupinu solitérů? Odborníci na personalistiku dali dohromady několik rad, jak udržet tým v chodu, i když pracovní podmínky nejsou ideální.

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