Kurs programowania w asemblerze


Operatory

Asembler daje nam do dyspozycji dużą ilość różnorodnych operatorów. Dzielimy je na kilka grup:

Operatory arytmetyczne

Mamy do dyspozycji następujące operatory arytmetyczne:

  • * - mnożenie
  • / - dzielenie
  • MOD - modulo
  • + - dodawanie
  • - - odejmowanie

np.:

MOV DX,OFFSET Napis+15
DB 256*4 DUP (?)
ADD BX,50/5
X EQU 1251 mod 1000

Operatory SHR i SHL

Przesuwanie bitów w prawo lub w lewo. Format:

wyrażenie SHR licznik
wyrażenie SHL licznik

Przykład:

MOV AX,101001B SHL 2

Operatory logiczne

Zaliczamy do nich; NOT, AND, OR, XOR. Sposób użycia i format zapisu tak jak przy operatorach SHR i SHL.

Operator PTR

Operator ten wymusza typ wyrażenia, tak by było ono traktowane w odpowiedni sposób. Ma ono następujący format:

typ PTR wyrażenie

Mamy dostępne następujące typy:

BYTE DWORD TBYTE FAR
WORD GWORD NEAR

np.:

MOV BYTE PTR [BX],5
CALL FAR PTR PROC1

Operator SEG

Podaje wartość segmentu danego wyrażenia adresowego, np.:

MOV DX,SEG Napis

Operator THIS

Definiuje typ danej etykiety w programie lub argumentu w instrukcji. Typy są takie same jak przy PTR. Format:

THIS typ

np. dwa poniższe wyrażenia są sobie równe:

ETYKIETA EQU THIS WORD
ETYKIETA LABEL BYTE

Operator HIGH i LOW

Zwracają bardziej (HIGH) lub mniej (LOW) znaczące 8 bitów danego wyrażenia liczbowego, np.:

MOV AL,HIGH LICZBA
SUB CL,LOW LICZBA

Operator TYPE

Zwraca liczbę reprezentującą typ danego wyrażenia. Jeśli jest ona typu bajt, to 2, word, to 4, itd. Jeśli wyrażenie jest etykietą typu NEAR zwraca 0FFFFH, a jeśli FAR 0FFFEH, np.:

MOV AX,TYPE DANE
CALL (TYPE TYP_ADRESU) PTR PROCEDURA

Operator LENGTH

Zwraca liczbę elementów (nie bajtów) zadeklarowanych w definicji danej zmiennej, np.:

TAB1 DB 24 DUP (4)
TAB2 DW 75 DUP (85 DUP (0))
...
MOV CX,LENGTH TAB1 ;W CX BEDZIE 24
SUB BX,LENGTH TAB2 ;BX ZOSTANIE POMNIEJSZONY o 75

Operator SIZE

Zwraca łączną liczbę bajtów zaalokowanych dla zmiennej. Używamy jak LENGTH.

Operator SHORT

Ustawia typ danej etykiety na SHORT. Zazwyczaj jest wykorzystywany w instrukcjach skoku, np.:

JMP SHORT ETYKIETA1

Operator MASK

Podaje maskę dla pozycji bitowych zajmowanych w rekordzie przez pole. Bity odpowiadające danemu polu są równe 1, a pozostałe 0


Autor: Karol Wierzchołowski, opracowano: 12.01.2002 r. Wszelkie prawa zastrzeżone.
Kontakt

Jeśli chcesz się z nami skontaktować napisz na adres: info(at)binboy.org lub odwiedź nasz profil na Facebooku!

O Nas

Serwis binboy.org to kopalnia wiedzy dla wszystkich z branży IT, w szczególności dla programistów i webmasterów. To duży zbiór kursów programowania, tutoriali, darmowych ebooków, setki kodów źródłowych itp.

Bądź w kontakcie

Panel użytkownika

Zaloguj się do panelu użytkownika.
Nie masz konta? Zarejestruj się!
Zapomniałeś hasła?