Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Lectures / 06-07

.pdf
Скачиваний:
44
Добавлен:
16.04.2013
Размер:
229.74 Кб
Скачать

Директива GROUP: Пример

ModuleData group Data1, Data2 Data1 segment ‘MODULES’

.

.

.

Data1 ends

.

.

.

Data2 segment ‘MODULES’

.

.

.

Data2 ends

Директива GROUP: Пример 2

ModData group DSEG1, DSEG2 DSEG1 segment public 'DATA' var1 dw 'aa'

DSEG1 ends

DSEG2 segment public 'DATA' var2 dw 'bb'

DSEG2 ends

CSEG segment public 'CODE' assume CS:CSEG, DS:ModData mov ax, ModData

mov ds, ax

mov ax, var1 ; смещение = 0 mov bx, var2 ; смещение = 16

CSEG ends end

Упрощенные директивы сегментации

 

 

 

 

 

 

 

 

Модель памяти:

 

model

small

 

TINY

COMPACT

 

 

SMALL

LARGE

 

.data

 

 

 

 

 

MEDIUM

FLAT

 

 

 

 

 

<директивы определения данных>

.stack

256

 

 

 

 

.code

 

 

 

 

 

main: mov ax,@data

 

 

 

 

 

 

 

mov ds,ax

 

Предопределенные

 

 

идентификаторы:

 

end main

@data адрес сегмента данных

 

 

@code адрес сегмента кода

 

 

@stack адрес сегмента стека

 

 

 

 

 

 

Способы определения меток

NEXT: sub eax,2

REPEAT LABEL FAR

SUMMA PROC NEAR

......................................

SUMMA ENDP

Директива процедуры

Тип процедуры: NEAR FAR

имя PROC тип

………

<тело процедуры>

………

RET ; команда возврата имя ENDP

Типы операндов: регистры

AL, AH, BL, BH, CL, CH, DL, DH - тип BYTE

AX, BX, CX, DX, BP, SP, SI,

 

DI, CS, DS, SS, ES, FS, GS

- тип WORD

EAX, ABX, ECX, EDX,

 

EBP, ESP, ESI, EDI

- тип DWORD

Атрибуты переменной

Атрибут

Значение

Пояснение

 

 

 

 

SEG

 

0 .. FFFF

Сегмент

 

 

 

 

OFFSET

 

0 .. FFFF

Смещение

 

 

 

 

TYPE

1

- byte

Тип

 

2

- word

 

4

- dword

 

 

 

 

 

Численные константы

Значение [признак]

Признак:

B O|Q D

H

двоичное число;

восьмеричное число;

десятичное число (по умолчанию);

шестнадцатеричное число

Примеры:

010B

125 (= 125D) 890Ah

0D5H

Директивы определения данных

db

1

байт

dw

2

байта

dd

4

байта

df

6

байтов

dp

6

байтов

dq

8

байтов

dt

10 байтов

Директивы определения данных: Примеры

message

db

"Это текст",'$'

 

var1

db

0ffh,255,11111111b ; 3 одинак.числа

var2

dw

3a7fh

; Где младший байт?

arr1

db

10 dup(" ")

 

arr2

db

5 dup (?)

 

A1

DB 3 DUP (5 DUP(7)) ; пятнадцать семерок

Соседние файлы в папке Lectures