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