Komentarze do programów w Asamblerze


Sprawozdanie Asambler

Jacek Hrynowiecki

Program klawiatura:

NAME klawiatura1

SPR0: MOV C,P0.0 ;Wpisanie do znacznika przeniesienia wartości jednobitowej z portu P0 bitu zerowego.

JC SPR1 ;Skok do etykiety SPR0 programu jeśli znacznik jest ustawiony (wartość 1)

MOV P2,#cyfra0 ;Wypisanie na porcie P2 wartości zadeklarowanej pod etykietą cyfra0

SPR1: MOV C,P0.1 ;Wpisanie do znacznika przeniesienia wartości jednobitowej z portu P0 bitu pierwszego.

JC SPR2 ;Skok do etykiety SPR1 programu jeśli znacznik jest ustawiony (war. 1)

MOV P2,#cyfra1 ;Wypisanie na porcie P2 wartości zadeklarowanej pod etykietą cyfra 1

SPR2: MOV C,P0.2 ;Wpisanie do znacznika przeniesienia wartości jednobitowej z portu P0 bitu drugiego.

JC SPR3 ;Skok do etykiety SPR1 programu jeśli znacznik jest ustawiony (war. 1)

MOV P2,#cyfra2 ;Wypisanie na porcie P2 wartości zadeklarowanej pod etykietą cyfra 2

SPR3: MOV C,P0.3 ;Wpisanie do znacznika przeniesienia wartości jednobitowej z portu P0 bitu trzeciego.

JC SPR4 ;Skok do etykiety SPR1 programu jeśli znacznik jest ustawiony (war. 1)

MOV P2,#cyfra3 ;Wypisanie na porcie P2 wartości zadeklarowanej pod etykietą cyfra 3

SPR4: MOV C,P0.4 ;Wpisanie do znacznika przeniesienia wartości jednobitowej z portu P0 bitu czwartego.

JC SPR5 ;Skok do etykiety SPR1 programu jeśli znacznik jest ustawiony (war. 1)

MOV P2,#cyfra4 ;Wypisanie na porcie P2 wartości zadeklarowanej pod etykietą cyfra 4

SPR5: MOV C,P0.5 ;Wpisanie do znacznika przeniesienia wartości jednobitowej z portu P0 bitu piątego.

JC SPR6 ;Skok do etykiety SPR1 programu jeśli znacznik jest ustawiony (war. 1)

MOV P2,#cyfra5 ;Wypisanie na porcie P2 wartości zadeklarowanej pod etykietą cyfra 5

SPR6: MOV C,P0.6 ;Wpisanie do znacznika przeniesienia wartości jednobitowej z portu P0 bitu szóstego.

JC SPR7 ;Skok do etykiety SPR1 programu jeśli znacznik jest ustawiony (war. 1)

MOV P2,#cyfra6 ;Wypisanie na porcie P2 wartości zadeklarowanej pod etykietą cyfra6

SPR7: MOV C,P0.7 ;Wpisanie do znacznika przeniesienia wartości jednobitowej z portu P0 bitu siódmego.

JC SPR0 ;Skok do etykiety SPR1 programu jeśli znacznik jest ustawiony (war. 1)

MOV P2,#cyfra7 ;Wypisanie na porcie P2 wartości zadeklarowanej pod etykietą cyfra 7

cyfra0 equ 0C0h ;Deklaracja stałej cyfra 0 o wartości 0C0H

cyfra1 equ 0F9h ;Deklaracja stałej cyfra 1 o wartości 0F9H

cyfra2 equ 0A4h ;Deklaracja stałej cyfra 2 o wartości 0A4H

cyfra3 equ 0B0h ;Deklaracja stałej cyfra 3 o wartości 0B0H

cyfra4 equ 099h ;Deklaracja stałej cyfra 4 o wartości 099H

cyfra5 equ 0921h ;Deklaracja stałej cyfra 5 o wartości 0921H

cyfra6 equ 082h ;Deklaracja stałej cyfra 6 o wartości 082H

cyfra7 equ 0F8h ;Deklaracja stałej cyfra 7 o wartości 0F8H

end ;Zakończenie programu

Program przerwania:

ORG 0 ;Zarezerwowanie X komórki pamięci

SJMP POCZ ;

ORG 0Bh ;Rezerwuje pamięć do komórki 0BH

PUSH ACC ;Odłożenie na stos 8 bitowego akumulatora

PUSH PSW ;Odłożenie na stos rejestru słowa ośmiobitowego

DJNZ R0,WPISZ ;Porównanie - zminejsz wartość o jeden pierwszego argumentu i skocz jeśli w

rejestrze R0 jest wartość różna od zera kodu programu pod etykietą WPISZ

MOV TH0,#0FFh ;Wczytanie do bardziej znaczącej części licznika T0 liczby 0FFH

MOV ACC,P2 ;Wstawienie do akumulatora wartości z portu P2

MOV TL0,ACC ;Wstawienie wartości akumulatora do mniej znaczącej części licznika T0

SETB P3.1 ;Ustawienie bitu pierwszego na porcie P3 poprzez wstawienie 1.

MOV R0,#TIME ;Wpisanie do rejestru R0 wewnętrznej pamięci RAM mikrokontrolera

SJMP DALEJ ;Skok do kodu z pod etykiety Dalej

WPISZ: MOV TH0,#0FFh ;Wczytanie do bardziej znaczącej części licznika T0 liczby 0FFH

MOV ACC,P1 ;Załadowanie do rejestru A wartości z portu P1

MOV TL0,ACC ;Załadowanie do mniej znaczących 4 bitów licznika T0 rejestru A

CLR P3.1 ;Zerowanie bitu pierwszego, portu P3

DALEJ: POP PSW ;Zdjęcie ze stosu wartości rejestru PSW

POP ACC ;Zdjęcie ze stosu wartości rejestru akumulatora

RETI ;Powrót z podprogramu obsługi przerwania, rozkaz ten ponadto powoduje

przepisanie dwóch bajtów ze szczytu stosu do rejestru rozkazów PC.

POCZ: MOV TMOD,#1h ;Wpisanie wartości 1H do rejestru TMOD

MOV TH0,#0ffh ;Wczytanie do bardziej znaczących 8 bitów licznika T0 liczby 0FFH

MOV TL0,#WART_A ;Wczytanie do mniej znaczących 8 bitów licznika T0 liczby pod etykietą

WART_A

SETB TR0 ;Ustawienie znacznika TR0 w celu odblokowania licznika T0

MOV R0,#TIME ;Wpisanie do rejestru R0 (wykorzystywanym przy adresowaniu pośrednim)

wartości 02H

SETB EA ;Wstawienie do EA bitu o wartości 1

SETB ET0 ;Wstawienie do ET0 bitu o wartości 1

SJMP $ ;Skok do końca programu

WART_A EQU 256-20 ;Przypisanie wartości 256-20 symbolowi WART_A, w programie odwołanie

do wartości tegoż symbolu zostanie wykonane poprzez podanie jego nazwy.

WART_L EQU 256-30 ;Przypisanie wartości 256-30 symbolowi WART_L

TIME EQU 02H ;Przypisanie wartości 02H symbolowi TIME

END ;Zakończenie pogramu

Znaczniki

NAME cwicz2

CSEG AT 0 ;określa od której komórki pamięci zaczyna się kod programu

MOV A, #WAR1 ;Wpisanie do akumulatora liczby z pod etykiety WAR1

ADD A, #WAR2 ;Dodanie dwóch wartości z tym że wynik zostaje przypisany do pierwszej (do

rejestru A)

MOV A, #ABCD1 ; Wpisanie do rejestru A liczby 22H

ADD A, #ABCD2 ; Dodanie do wartości 22H liczby z pod etykiety ABCD2 i umieszczenie wyniku

w akumulatorze

DA A ;Korekcja dziesiętna liczb zapisanych w BCD

SETB C ;Ustawia znacznik przeniesienia (wartością 1)

MOV A, #DANA ;Wpisanie do akumulatora wartości z pod etykiety DANA

RLC A ;Przesunięcie w lewo wartości akumulatora

RRC A ;Przesunięcie w prawo wartości akumulatora

MOV A, #ABCD1 ;Wpisanie do rejestru A wartości z pod etykiety ABCD1

ADD A, #ABCD2 ;Ponowne dodanie liczby 88H do 22H i umieszczenie wyniku w pierwszym

operandzie

DA A ;Korekcja dziesiętna liczb zapisanych w ABCD

MOV B, #WAR1 ;Kopiowanie liczby etykietowanej WAR1 do rejestru B

MOV A, #WAR2 ; Kopiowanie liczby etykietowanej WAR2 do rejestru akumulatora

MUL AB ; Wymnożenie dwóch stałych A*B-> BA czyli po wymnożeniu liczb zapisane

wynik mniej znaczących bitów zapisywany jest w rejestrze A, za to bardziej

znaczących bitów w B, znacznik przeniesienia C i parzystości P wynoszą 0.

POWT:

CLR A ;Ustawienie bitu ACC na wartość 0

MOVC A,@A+DPTR ;Wstaw do rejestru A wartość 8-bitowego rejestru A i wskaźnikowego

rejestru danych

JNB P,BEZPAR ;Jeśli bit znacznika P wynosi 0 to skocz do programu pod etykietą BEZPAR

ORL A,#80H ;Suma logiczna wartości 80H i wartości ACC, wynik umieszczany jest w

pierwszym operandzie czyli w akumulatorze.

BEZPAR:

INC DPTR ;Zwiększ wskaźnikowy rejestr danych o 1

MOV @R1,A ;Wstaw wartość akumulatora do wartości rejestru R1

INC R1 ;Zwiększ rejestr R1 o 1

DJNZ R0, POWT ;Jeśli wartość rejestru R0 jest różna od 0 to skok do kodu o etykiecie POWT

SJMP $ ;Skok do końca programu

TXT: DB 'PPROGRAM TESTOWY' ;Deklaracja zmiennej

KASA EQU 16 ;Przypisanie wartości 16 symbolowi KASA

WAR1 EQU 68 ;Przypisanie wartości 68 symbolowi WAR1

WAR1 EQU 199 ;Przypisanie wartości 199 symbolowi WAR2

ABCD1 EQU 22H ;Przypisanie wartości 22H symbolowi ABCD1

ABCD2 EQU 88H ;Przypisanie wartości 88H symbolowi ABCD2

DANA EQU 0A5H ;Przypisanie wartości 0A5H symbolowi DANA

END ;Zakończenie program



Wyszukiwarka

Podobne podstrony:
Zalecane warunki i sposób realizacji podstawy oraz komentarz do podstawy programowej?ukacji wczesnos
Dostosuj zakład do przepisów prawa pracy Komentarz do ankiety kontrolnej bhp na budowie, 2005 cz3
Komentarz do kodeksu prawa kanonicznego, tom II 1, Księga II Lud Boży , cz 1 Wierni chrześcijanie, P
Instrukcja do programu WSPR
Psalm 38, Komentarze do Psalmów-Papież Jan Paweł II,Benedykt XVI
Psalm 4, Komentarze do Psalmów-Papież Jan Paweł II,Benedykt XVI
komentarze do testów z przedsiębiorczości, podręczniki szkoła średnia liceum technikum klasa 3 trzec
Psalm 10, Komentarze do Psalmów-Papież Jan Paweł II,Benedykt XVI
Psalm 85, Komentarze do Psalmów-Papież Jan Paweł II,Benedykt XVI
KOMENTARZE DO LITURGII
Obliczenia do programu podstawowego sygnalizacji trójfazowej
tekst do programu funkcjonalno uzytkowego
Projektowanie oprogramowania Wstep do programowania i techniki komputerowej
Miernictwo Komentarz do wykładów cz2

więcej podobnych podstron