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

Assembler - 3. lekceAssembler - 3. lekce

 

Assembler - 3. lekce

Google       zatím neprovedena       30. 7. 2005       25 281×

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

Reklama
Reklama
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 Nový IT hráč na českém trhu

Nový IT hráč na českém trhu

V roce 2015 otevřela v Praze na Pankráci v budově City Tower své kanceláře společnost EPAM Systems (NYSE:EPAM), jejíž centrála se nachází v USA. Společnost byla založená v roce 1993 a od té doby prošla velkým vývojem a stále roste.

Reklama
Reklama
Obrázek ke článku České Radiokomunikace opět hledají nejlepší nápady pro internet věcí

České Radiokomunikace opět hledají nejlepší nápady pro internet věcí

České Radiokomunikace (CRA) pořádají druhý ročník CRA IoT Hackathonů. Zájemci z řad vývojářů a fanoušků moderních technologií mohou změřit své síly a během jediného dne sestrojit co nejzajímavější funkční prototyp zařízení, které bude komunikovat prostřednictvím sítě LoRa. CRA IoT Hackathony se letos uskuteční ve dvou fázích, na jaře a na podzim, v různých městech České republiky. Jarní běh se odstartuje 31. března v Brně a 7. dubna v Praze.

Obrázek ke článku Cloud computing je využíván stále intenzivněji

Cloud computing je využíván stále intenzivněji

Využívání cloud computingu nabývá na intenzitě. Jen v letošním roce vzroste podle analytiků trh se službami veřejného cloudu o 18 %, přičemž o téměř 37 % vzrostou služby typu IaaS. Růst o více než pětinu pak čeká služby poskytování softwaru formou služby, tedy SaaS. Aktuálním trendům v oblasti využívání cloudu se bude věnovat konference Cloud computing v praxi, která se koná 23. března. 2017 v pražském Kongresovém centru Vavruška na Karlově náměstí 5.

loadingtransparent (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();
Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032017 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý