assume cs:Progr, ds:dane, ss:stosik :stale programu
mov ax,dane
mov ds,ax - przesunięcie wartości z rejestru ax do ds
mov ax,stosik - przesunięcie z rejestru ax do stosu
mov ss,ax przesuwa dane z rejestru ax do as
mov sp,offset szczyt -rozpoczęcie programu Do wyświetlania napisy na ekranie służy funkcja 09h przerwania 21H. Napis który ma być wyświetlany znajduje się w zmiennej która jest w segmencie danych.
int 11h- Czasami w programie wystąpi przerwanie 11H które pobiera z BIOS informacje o komputerze, kopiuje je do AX i pod adres 0:0410h. Jest to spowodowane krótszym zapisem jednakże wykomuje ono więcej funkcji niż zwykłe pobieranie wartości z komórki.
Spróbuję wyjaśnić też mechanizm pobierania pojedyńczych bitów z rejestru.
Załóżmy , że w rejestrze AL mamy dowolną liczbę binarną np.10011011
Chcąc dowiedzieć się co znajduje się na 3-5 bitach stosujemy tzw maskę AND czyli mnożenie logiczne poszczególnych bitów.
AX 10011011
AND 00111000
----- ----------
wynik 00011000
int 21h- zakończenie programu i powrót do dos'u
mov dx, offset napis1 - wyświetla napis zakończonuy znakiem $
mov ah,09h -pokazuje zawartość w miejscu 09h
int 21h -zakończenie programu przykładowy program wyświetlający napis w połączeniu z offsetem
JZ zero jeśli wartość mnożenia jest 0 przejdź do etykiety zero
jmp dalej bezwarunkowy skok do etykiety dalej
ror ax,x przesuwa zawartośc rejestru ax odpowiednio o wartość x np. 1,2,3,4,5...
mov ah,4ch ; funkcja wyjścia do DOS
mov [napis8],al - podaje w wartości rejestru al dane dotyczące sprzętu
mov al,0 -wyzerowanie rejestru al
dec ax – opcja usuwająca jedynkę z rejestru ax
Progr ends zakończenie części z programowaniem( częścią programu odpowiedzialną za wyszukiwanie, przesyłanie i odczyt danych)
napis1 db 'Jest dyskietki',10,13,'$' wyświetla napis jest dyskietka
napis6 db 0,10,13, '$' napis zeruje pierwszy rejestr i pokazuje wartosć
dane ends zakończenie części z wypisywaniem napisów
stosik segment Poczatek segmentu stosu
dw 100h dup(0) ;wypelnienie przestrzeni 100h slowami (16 bitowymi )o wartosci 0
szczyt Label word
stosik ends koniec segmentu stosik koniec programu z zaznaczonym miejscem startu programu
end start zakończenie programu wyjście ze wszystkich opcjii.