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

Assembler - 4. lekceAssembler - 4. lekce

 

Assembler - 4. lekce

Google       Google       18. 8. 2005       25 584×

• Časovače
• Poslední přikazy
• Podprogramy..

Reklama
Reklama
Časovače

Pracují na principu čítače impulzů z vnějšího zdroje hodinového signálu, až se čítač naplní, tak se ukazatel TF0 nastaví do jedničky a toho budeme využívat. Existuje více módů časovače, my si ale vysvětlíme pouze dva, protože nám to stačí.

MOD 1 – čítač je tvořen 16 bity a tedy bude mu trvat 65,536 ms, než se naplní (216=65536)
MOD 0 – čítač je tvořen 13 bity, tedy 8,192 ms

Čítače jsou vždy dva TH0 – vyšší a TL0 – nižší, můžeme do nich zapisovat a to nám umožní vytvořit zpoždění na 2 mikro sekundy přesně.

Vezmeme si třeba MOD 1 a chceme zpoždění 30 ms, tak doplníme čítače o ten zbytek a je to. 65536 – 30000 = 35536 = 8AD0H

Ukázka :
ORG 0
MOV TMOD, #1 ;nastaveni modu
MOV TL0, #0D0H ;nastaveni nizsiho citace
MOV TH0, #8AH ;nastaveni vyssiho citace
SETB TR0 ;privedeni clocku na citac
ZPET: JBC TF0, SKOK ;pokud se citac naplni, pak skok
JMP ZPET ;nenaplnil - zkontroluj znova
SKOK: NOP ;prazdna instrukce
END

Program si zkopírujte, vyzkoušejte a dívejte se na kolonku CPU a to žluté to je skutečný čas v sekundách, zjistíte že ve skutečnosti program trvá 30,010 ms, to proto že ty MOVy a ostatní instrukce taky trvají nějaký čas.

Délku instrukcí naleznete v první lekci >> PŘEHLED PŘÍKAZŮ >> kolonka :L/C - Pomocí zpoždění vycházející z délky vykonání se dá také vytvořit časovou prodlevu, ale toto se nepoužívá, už je proto že se to hůř počítá a nemůže to být tak přesné

Pokud nechcete trasovat hodinu, než se to naplní zkuste místo F7 a F8 F9-ku, bude to rychlejší. Pro delší prodlevy by vás mohlo napadnout doplnit místo NOP příkaz DJNZ R3, ZPET a kolik nastavíte R3 o tolikrát se doba prodlouží.


Poslední příkazy

XCH – zamění obsah proměnných
XCHD – zamění pouze první čtyři bity
(možnosti jsou vypsány v tabulce)

SWAP A – provede výměnu vyššího řádu akumulátoru, za nižší a naopak: 76543210 >> 32107654 (čísla berte jako pořadí bitů), nikdy jsem to zatím na nic nepoužil, ale příkaz to je, tak budiž…

RLC A a RRC A – je rotace (vlevo a vpravo) bitu akumulátoru vždy jen o jedno pole, nabývá příznaku přenosu carry.

JMP $ - skok na sebe sama, může se využít třeba když nechceme nic vykonávat, zní to blbě, ale je to chytrá instrukce, její využití si popíšeme v příštím díle.

Můžeme ho použít v programu (výše), místo: JMP ZPET, napíšeme: JMP $-3, v editoru pak v kolonce VIEW TEXT vlevo vidíme adresu v ROM, na které zapsaná instrukce a tedy rozdíl mezi 0010 a 000D jsou právě ty tři místa (délka instrukce viz. tabulka).
Nerad toto používám už z důvodu že to je nepřehledné a zdlouhavé hledání.


Podprogramy

Volání podprogramu se provádí příkazem CALL, místo kde se odkazujeme nesmí začínat číslem a compiler je citlivý na malá/velká písmena, maximální délku jsem nezjišťoval, ale osm znaků jde určitě a to musí vystačit každému. Podprogram začíná svým jménem a ukončuje se příkazem RET.

Ukázka :
ORG 0
;………..PRIKAZY
CALL NECO
;………..PRIKAZY
JMP KONEC

NECO:
;PODPROGRAM
RET

KONEC:
END

POZOR !!!
– musel jsem použít JMP KONEC, protože by to vykonalo dvakrát podprogram, je to spíše jakási náhrada, místo dvou JUMPů (JMP začátek podprogramu a na konci podprogramu JMP zpět odkud jsme skočili). Používá se to, protože nemusíme hledat zpáteční adresu odkud jsme volali, místo toho použijeme RET. Ještě to je výhodné z toho pohledu, že můžeme volat podprogram z více míst, kdežto přes JUMPy bychom to museli upravit o výběr, kam se vrátit.



DÚ:
Vytvořte program pro blikač na kolo se třemi LED diodami na portu P2 a zpožděním přesně jednu sekundu, napadají mě dva způsoby jak na to časování, ale je to na vás jak si s tím poradíte…, ale budete mít hlavní program pro nastavování portu a podprogram pro zpoždění, počítejte s tím, že to má blikat stále, takže musíte…a to je váš úkol.

×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 Delphi 10.1.2 (Berlin Update 2) – na co se můžeme těšit

Delphi 10.1.2 (Berlin Update 2) – na co se můžeme těšit

Touto roční dobou, kdy je zem pokrytá barevným listím a prsty křehnou v mrazivých ránech, se obvykle těšíme na zbrusu novou verzi RAD Studia. Letos si však ale budeme muset počkat na Godzillu a Linux až do jara. Vezměme tedy za vděk alespoň updatem 2 a jelikož dle vyjádření pánů z Embarcadero se budou nové věci objevovat průběžně, pojďme se na to tedy podívat.

Reklama
Reklama
Obrázek ke článku Konference: Moderní datová centra pro byznys dneška se koná už 24. 11.

Konference: Moderní datová centra pro byznys dneška se koná už 24. 11.

Stále rostoucí zájem o cloudové služby i maximální důraz na pružnost, spolehlivost a bezpečnost IT vedou k výrazným inovacím v datových centrech. V infrastruktuře datových center hraje stále významnější roli software a stále častěji se lze setkat s hybridními přístupy k jejich budování i provozu.

Obrázek ke článku Konference: Mobilní technologie mají velký potenciál pro byznys

Konference: Mobilní technologie mají velký potenciál pro byznys

Firmy by se podle analytiků společnosti Gartner měly  rychle přizpůsobit skutečnosti, že mobilní technologie už zdaleka nejsou horkou novinkou, ale standardní součástí byznysu. I přesto - nebo možná právě proto - tu nabízejí velký potenciál. Kde tedy jsou ty největší příležitosti? I tomu se bude věnovat již čtvrtý ročník úspěšné konference Mobilní řešení pro business.

Obrázek ke článku Hackerský kongres přiveze v září do Prahy špičky světové kryptoanarchie

Hackerský kongres přiveze v září do Prahy špičky světové kryptoanarchie

Hackerský kongres HCPP16 pořádá od 30. září do 2. října nezisková organizace Paralelní Polis již potřetí, a to ve stejnojmenném bitcoinovém prostoru v pražských Holešovicích. Letos přiveze na třídenní konferenci přes 40 většinou zahraničních speakerů – lídrů z oblastí technologií, decentralizované ekonomiky, politických umění a aktivismu. Náměty jejich přednášek budou také hacking, kryptoměny, věda, svoboda nebo kryptoanarchie.

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 © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý