architektura procesora ASSEMBLER Rozkaz to elementarna

Transkrypt

architektura procesora ASSEMBLER Rozkaz to elementarna
ZAJĘCIA1
Mikroprocesor 8086: architektura procesora, obsługa symulatora SMS, rozkaz przesłania MOV, tryby
adresowania. Wprowadzanie, asemblacja, poprawianie błędów i uruchamianie prostych programów.
architektura procesora
FLAGS
AX
BX
CX
DX
SI
DI
BP
SP
IP
CS
DS
ES
SS
AH
BH
CH
DH
AL
BL
CL
DL
FLAGS rejestr flagowy, rejestr znaczników
AX-DX 16 bitowe rejestry powszechnego stosowania
AL. AH 8 bitowe rejestry
SI, DI
16 bitowe rejestry powszechnego stosowania,
najczęściej uŜywane jako wskaźniki (DS)
BP
16 bitowy rejestr powszechnego stosowania,
uŜywany jako wskaźniki (w parze z SS)
SP
wskaźnik stosu
IP
licznik rozkazów
CS, DS., ES, SS rejestry segmentowe
Procesor 8086 uŜywa maksymalnie 16 bitowego
rejestru do adresowania pamięci, a do adresowania
1MB pamięci potrzeba 20 bitowego adresu.
8086 składa pełny 20-bitowy adres: 16 bitowy
wskaźnik składany jest z przesuwaną o 4 pozycje
w lewo zawartością rejestru segmentowego
ASSEMBLER
Rozkaz to elementarna operacja jaką moŜe wykonać procesor
KaŜdy rozkaz umieszczony jest w pamięci operacyjnej jako ciąg binarny.
Programista uŜywa bardziej czytelnych nazw symbolicznych, czyli mnemoników.
Skrót mnemoniczny zawiera:
• symboliczny, kilkuliterowy skrót operacji
• argumenty operacji oddzielone przecinkiem
Argumentem moŜe być
• 8-bitowy rejestr podręczny procesora: AL,BL,CL,DL, AH, BH, CH, DH
• 16-bitowy rejestr AX, BX, CX, DX , SI, DI, BP, CS, DS, ES, SS
• komórka pamięci, której adres podawany jest w nawiasie: [2E71], [AL]
tryby adresowania procesora 8086
• rejestrowe: argumentami są rejestry np. MOV DL, AL
• natychmiastowe: argument umieszczony jest za kodem operacji,
np. MOV AL, 5
• bezpośrednie: adres argumentu umieszczony jest za kodem operacji,
np. MOV AL, [56]
• pośrednie1 (wskaźnikowe): adres komórki znajduje się w rejestrze np. MOV [AL], B
• indeksowe: adres argumentu jest sumą adresu umieszczonego w rejestrze oraz
przesunięcia umieszczonego za kodem operacji,
np. preindeksowe MOV AL, [BL-5], postindeksowe MOV AX, [BP]+7
Symulator SMS
obsługuje tylko adresowanie natychmiastowe, wskaźnikowe i bezpośrednie;
obsługuje tylko rozkazy, których argumentami są 8 bitowe rejestry i adresy.
1
Istnieje adresowanie pośrednie przez rejestr oraz pośrednie przez rejestr bazowy, a takŜe indeksowe
bezpośrednie i indeksowe bezpośrednie przez rejestr bazowy
oprac. dr inŜ. Joanna Papińska-Kacperek, Katedra Informatyki UŁ, 2003/2004
Ćwiczenie1.1
Wpisz kod programu, zasembluj i wykonaj krokowo. Obserwuj zawartość rejestrów.
start: clo
mov al,5
;do rejestru AL przesuń liczbę 5
mov bl, 55
;do rejestru BL przesuń liczbę 55H
mov cl, 46
;do rejestru CL przesuń liczbę 46H
mov dl, e7
;do rejestru AL przesuń liczbę E7H
end
Ćwiczenie 1.2
Wpisz kod programu, zasembluj i wykonaj krokowo. Obserwuj zawartość rejestrów
oraz komórek pamięci RAM o adresach A0H, 40H i 50H
CLO
; zamknięcie okien
; adresowanie natychmiastowe
;
MOV AL,15 ;
MOV BL,40 ;
MOV CL,50 ;
MOV DL,60 ;
INC
DEC
AL
DL
; Inkrementacja AL
; Dekrementacja DL
; adresowanie bezpośrednie
;
MOV [A0],AL ; Odesłanie zawartości rejestru AL do komórki RAM o adresie A0H
MOV BL,[40] ; Odesłanie do rejestru BL zawartości komórki 40H
;
;
adresowanie wskaźnikowe
MOV
MOV
[CL],AL; Odesłanie do komórki RAM, której adres wskazuje rejestr CL
; zawartości rejestru AL
BL,[CL] ; Odesłanie do rejestru BL zawartości komórki RAM
; o adresie zawartym w rejestrze CL
END
Ćwiczenie 1.3
MOV
MOV
MOV
MOV
MOV
MOV
END
AL,41 ; 41 TO KOD ASCII LITERY 'A'
[C0],AL ; C0 to adres ekranu
AL,42 ; 42 TO KOD ASCII LITERY 'B'
[C1],AL ; Następna pozycja na ekranie
AL,43 ; TO KOD ASCII LITERY 'C'
[C2],AL ; Następna pozycja na ekranie
zadanie1 Wyślij na ekran komunikat WITAM WSZYSTKICH!
zadanie 2 Wprowadź do RAM do obszaru od adresu 50H liczby od 48H do 4EH
zadanie 3 Wprowadź do RAM do obszaru od adresu 30H kody ASCII napisu
wprowadzonego w zadaniu 1
zadanie 4 Odeślij do komórki 30H pamięci RAM, sumę (ADD) dwóch wprowadzonych do
rejestrów liczb.
zadanie 5 Wprowadź do rejestru AL najmniejszą liczbę ujemną i dodaj do niej inną liczbę
ujemną. Zaobserwuj flagę nadmiaru.
oprac. dr inŜ. Joanna Papińska-Kacperek, Katedra Informatyki UŁ, 2003/2004