Rejestry ogólne

Transkrypt

Rejestry ogólne
Wprowadzenie do architektury komputerów
Assembler cz. 1
Rejestry ogólne
AX BX CX DX SI DI SP BP IP -
Accumulator Base Register Counter Register Data Register Source Index Destination Index Stack Pointer Base Pointer Instruction Pointer -
Akumulator
Rejestr bazowy
Licznik
Rejestr danych
Rejestr indeksowy źródła
Rejestr indeksowy Przeznaczenia
Wskaźnik stosu
Rejestr bazowy stosu
Wskaźnik rozkazu
Rejestry segmentowe
CS SS DS ES, FS, GS -
Code Segment register rejestr segmentu kodu
Stack Segment register
rejestr segmentu stosu
Data Segment register rejestr segmentu danych
Extension Data Segment registers rejestry dodatkowych segmentów danych
1
Przykład
Adres logiczny: 18AC:7B55h
Adres fizyczny: 1 8 A C 0
+ 7B 55
____________
2 0 6 1 5 h
Organizacja pamięci
Little Endian format przechowywania danych
2
Szablon programu
.MODEL ...
.STACK ...
.DATA
... dane programu ...
.CODE
start:
mov ax,@data
mov ds.,ax
........
...kod programu ...
........
mov ah, 4ch
int 21h
END start
Definicja zmiennych
zm_b DB 0
zm_w DW 1
zm_dd DD ?
zmienna o rozmiarze 1B z wartością początkową 0
zmienna o rozmiarze 2B z wartością początkową 1
zmienna o rozmiarze 4B z bez wartości początkowej
komunikat db ’to jest komunikat’
znaki db ‘abcdef’, 20, 30
tablica db 1024 dup(0)
napis złożony ze znaków ASCII
różne postaci bajtów lub zbiorów bajtów
tablica 1024 B wypełniona zerami
Przykładowy program
.MODEL small
.STACK 100h
.DATA
MyMessage DB
‘Programować każdy może $’
.CODE
mov
ax,@data
mov
ds,ax
;załadowanie rejestru segmentu danych
mov
mov
int
ah, 9
;funkcja 9 wyświetla napis na ekranie
dx, OFFSET MyMessage
21h
mov
int
ah, 4ch
21h
;zakończenie programu
END
3
Praca z kompilatorem i linkerem:
4