assembler86 6
72 4. Język asemblerowy mikroprocesorów 8086/8088
72 4. Język asemblerowy mikroprocesorów 8086/8088
Przykład
DANE
ZMIENNA
STAŁA
DANE
PROGRAM
SEGMENT
DW?
DW 0B780H
ENDS
SEGMENT
ASSUME CS: SEG ETYKIETA, DS: SEG ZMIENNA MOV AX,SEG ZMIENNA MOV DS,AX
ETYKIETA:
PROGRAM ENDS
Operator TYPE J
Operator TYPE określa typ nazwy symbolicznej (zmiennej lub etykiety) przez wygenerowanie liczby całkowitej (1 = bajt, 2 = słowo, 4 = podwójne słowo itd.,-1 = = NEAR, -2 = FAR). fl
Przykład l
DANE SEGMENT ]
TABLICA 1 DB 50 DUP (?) 1
TABLICA 2 DD 50 DUP (0) 1
DANE ENDS 1
PROGRAM SEGMENT I
ASSUME CS:PROGRAM, DS:DANE 1
MOV AX, DANE 1
MOV DS, AX
MOV CX, 50 1
MOV SI, 0 I
MOV DI, 0 1
PĘTLA: MOV TABLICA 1 [SIJ, 1 ]
ADD SI, TYPE TABLICA l ; SI = SI +1 1
MOV TABLICA_2[DI], 1 j
ADD DI, TYPE TABLICA 2 ; Dl = DI + 4 |
• ••
LOOP PĘTLA
Operator LENGHT
Operator LENGHT pozwala określić liczbę elementów danego typu dla podanej nazwy zmiennej.
Mi siol
4.4. Wyrażenia i operatory
przykład
DANE SEGMENT
TABLICA DW 200 DUP (?); LENGHT TABLICA = 200 DANE ENDS
PROGRAM SEGMENT
ASSUME CS:PROGRAM, DS:DANE
MOV CX, LENGHT TABLICA ; licznik pętli
MOV DI, 0
PĘTLA: MOV BYTE PTR TABLICA[DI], OFFH
ADD Dl, TYPE TABLICA LOOP PĘTLA
... 4
Operator SIZE__________
Operator SIZE określa wielkość zmiennej w bajtach. Zależność między operatorami SIZE, LENGHT i TYPE jest zatem następująca
SIZE ZMIENNA = LENGHT ZMIENNA * TYPE ZMIENNA
Operator SIZE pozwala także określić wielkość rekordu w bajtach (zob. dyrektywa RECORD). Dla rekordu o długości od 1 do 8 bitów wielkość wynosi 1 bajt, dla rekordu o długości od 9 do 16 bitów wynosi 2 bajty.
Przykład
DANE |
SEGMENT |
; TYPE LENGHT SIZE |
A |
DB 10 DUP (?) |
; 1 |
10 10 |
AA |
DW 10 DUP (?) |
; 2 |
10 20 |
AAA
DANE
PROGRAM |
DD 10 DUP (?)
ENDS
SEGMENT |
; 4 |
10 40
V Ti? |
ASSUME CS:PROGRAM, DS:DANE MOV CX, SIZE A + SIZE AA + SIZE AAA MOV SI, 0
ZERUJ: MOV BYTE PTR A[SI],0
INC SI
LOOP ZERUJ
9P^;atory *, /, MOD
% Operatory oznaczają następujące działania arytmetyczne * mnożenie,
^ Helenie całkowite,
^1^ - reszta z dzielenia całkowitego.
Wyszukiwarka
Podobne podstrony:
assembler?86? 6 52 4. Język asemblerowy mikroprocesorów 8086/8088 MOV AX, DANE 2  assembler?86? 6 32 3. Kolejne generacje mikroprocesorów firmy INTEL - efektywnaassembler?86? 6 172 6. Makrojęzyk asemblera MA SM dyrektywy pomocnicze PURGE, EXITM, LOCAL specjalassembler?86? 0 40 4. Język asemblerowy mikroprocesorów 8086/8088 W książce omówimy wersję MASM 4.assembler?86? 3 46 4. Język asemblerowy mikroprocesorów 8086/8088 PARA - początek segmentu będzieassembler?86? 4 48 4. Język asemblerowy mikroprocesorów 8086/8088 tępne segmenty będą łączone jakassembler?86? 5 50 4. Język asemblerowy mikroprocesorów 8086/8088 ; w kolejnym przykładzie zmienneassembler?86? 7 54 4. Język asemblerowy mikroprocesorów 8086/8088 kowych informacji czy skoki do (assembler?86? 8 56 4. Język asemblerowy mikroprocesorów 8086/8088 433. Połączenia międzymodułowe Oassembler?86? 2 64 4. Język asemblerowy mikroprocesorów 8086/8088 64 4. Język asemblerowy mikroproassembler?86? 3 66 4. Język asemblerowy mikroprocesorów 8086/8088 66 4. Język asemblerowy mikroproassembler?86? 4 68 4. Język asemblerowy mikroprocesorów 8086/8088 Dyrektywy .LALL, .SALL, .XALL Dyassembler?86? 5 70 4. Język asemblerowy mikroprocesorów 8086/8088 .186assembler?86? 7 74 4. Język asemblerowy mikroprocesorów 8086/8088 Przykład ZMIENNA A DW 5*5 ; =assembler?86? 8 76 4. Język asemblerowy mikroprocesorów 8086/8088 LE (ang. lowerassembler?86? 9 78 4. Język asemblerowy mikroprocesorów 8086/8088 PROGRAM SEGMENT • • • A DALEKO Eassembler?86? 1 42 4. Język asemblerowy mikroprocesorów 8086/80X8 (ODH). Asembler przetwarza łańcuassembler?86? 2 44 4. Język asemblerowy mikroprocesorów #086/8088 Wiersz programu kończy się zasadassembler?86? 6 92 5. Rozkazy mikroprocesorów 8086/8088 Zamiana miejscami zawartwięcej podobnych podstron