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