assembler86 0

assembler86 0



60 4. Język asemblerowy nuKroprocesorów 8086/8088

; OOh    16-23

DANE ENDS    +

Sposób określenia zawartości pamięci jest zgodny z konwencją firmy Intel (por. rys.

2.6).

Wartość wyrażenia nie może być większa niż wynika to z zastosowanej dyrektywy. I tak, odpowiednie zakresy są następujące

-    dla DB szesnastkowo [0,0FFH] i dziesiętnie [0,255J lub [-128,+ 127],

-    dla DW szesnastkowo [0,0FFFFH] oraz dziesiętnie [0,65535] lub [-32768, +32767],

-    dla DD szesnastkowo [0, OFFFFFFFFH] oraz dziesiętnie [0, 8589934591] lub [-42949672%, + 4294%7295],

-    dla DQ szesnastkowo [0, OFFFFFFFFFFFFFFFFH] oraz dziesiętnie

[0, 36893488147419103231] lub [-18446744073709551616, + 18446744073709551615],

-    dyrektywa DT pozwala zdefiniować wartość dziesiętną wyrażoną w kodzie BCD, przy czym pierwszy bajt jest bajtem znaku (OOH - liczba dodatnia, 80H - liczba ujemna), w zakresie [-999999999999999999, + 999999999999999999]. Przy innej podstawie liczenia wartość może być z zakresu [0,0FFFFFFFFFFFFFFFFFFFFH].

Jeżeli warunki te nie są spełnione, to obliczona wartość nie zostaje "obcięta”, lecz zmienna pozostaje niezdefiniowana.

Przykłady

DANE


zawartość pamięci offset

08

0

FF

1

4C

2

69

3

64

4

69

5

61

6

34

7

12

8

00

9

80

A

09

B

00

C

42

D

41

E

78

F

56

10

34

11

12

12

FF

13

FF

14


SEGMENT

ZMIENNAJ

ZMIENNA2

TEKST

LICZBA

WYNIK

WSKAŹNIK

INNYTEKST

LICZBA2

INNY WYNIK


; definicja DB 8 DB -1 DB ’Lidia’

DW 1234H DW -32768 DW WYNIK DW ABDD 12345678H

DD -1


4.3. Dyrektywy i pseudoinstrukcje

powered by

Mi sto!


; FF    15

; FF    16

WSKAZNIK 2 DD INNY WYNIK ; 13    17

; 00    18

; 36    19

;0C    1A

TEKST AB DD AB’    ;    42    IB

; 41    1C

; 00    ID

; 00    1E

DUZA LICZBA DO 123456789ABCDEF0H    ; FO    1F

; DE    20

; BC    21

% • • •

; 12    26

LICZBA BCD DT -123456789012345678    ;    80    27

; 12    28

; 34    29

y • •    •

; 78    30

DANE    ENDS    4

Wyszczególnione wartości są przykładowym adresem początku segmentu.

Za pomocą słowa kluczowego DUP można powtarzać rezerwowanie i inicjowanie pamięci. Składnia dyrektywy jest wtedy następująca

[nazwa] Dx    liczba DUP (wyrażenie)

przy czym:

-    liczba jest wyrażeniem numerycznym większym niż 0,

-    wyrażenie musi być w nawiasach okrągłych i zawierać wyrażenie numeryczne, adresowe lub pytajnik,

-    wyrażenie może być listą wyrażeń lub ponownie zawierać "liczba DUP (wyrażenie )".

Należy zwrócić uwagę, że dyrektywy: "DW V oraz "DW 1 DUP(?)" nie są identyczne. Pierwsza rezerwuje miejsce w pamięci i przypisuje jej wartość równą 0, druga rezerwuje miejsce w pamięci, ale nie generuje żadnej wartości, która jest niezdefiniowana. Może to mieć znaczenie w segmentach COMMON.

Przykłady

TABLICA    DB 100 DUP (?)    ; zarezerwowano 100 bajtów o

; niezdefiniowanej wartości

TABELA    DW 25 DUP (0)    ; zarezerwowano 25 słów o wartości

; początkowej zero

SPACJE    DB 50 DUP (’ ’),0DH,0AH    ; zarezerwowano 50 spacji

Następujące zapisy są równoważne

AAA '    DB 2 DUP (2 DUP (1,2,3),4,2 DUP (5))


Wyszukiwarka

Podobne podstrony:
assembler?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ędzie
assembler?86? 4 48 4. Język asemblerowy mikroprocesorów 8086/8088 tępne segmenty będą łączone jak
assembler?86? 5 50 4. Język asemblerowy mikroprocesorów 8086/8088 ; w kolejnym przykładzie zmienne
assembler?86? 6 52 4. Język asemblerowy mikroprocesorów 8086/8088 MOV AX, DANE 2    
assembler?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 O
assembler?86? 2 64 4. Język asemblerowy mikroprocesorów 8086/8088 64 4. Język asemblerowy mikropro
assembler?86? 3 66 4. Język asemblerowy mikroprocesorów 8086/8088 66 4. Język asemblerowy mikropro
assembler?86? 4 68 4. Język asemblerowy mikroprocesorów 8086/8088 Dyrektywy .LALL, .SALL, .XALL Dy
assembler?86? 5 70 4. Język asemblerowy mikroprocesorów 8086/8088 .186
assembler?86? 6 72 4. Język asemblerowy mikroprocesorów 8086/8088 72 4. Język asemblerowy mikropro
assembler?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. lower
assembler?86? 9 78 4. Język asemblerowy mikroprocesorów 8086/8088 PROGRAM SEGMENT • • • A DALEKO E
assembler?86? 1 42 4. Język asemblerowy mikroprocesorów 8086/80X8 (ODH). Asembler przetwarza łańcu
assembler?86? 2 44 4. Język asemblerowy mikroprocesorów #086/8088 Wiersz programu kończy się zasad
assembler?86? 9 58 4. Język asemblerowy mikroprocesorów 808618088 Dyrektywy: DB, DW, DD, DQ, DT Li
assembler?86? 1 62 4. Język asemblerowy> mikroprocesorów 808618088 oraz    AA

więcej podobnych podstron