Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MProc / M2 / Лекция 2.doc
Скачиваний:
16
Добавлен:
16.04.2013
Размер:
207.36 Кб
Скачать

IncludEимя_файла_с_путём

Include dop1.Asm

INCLUDE “C:\ASM\INCLUDE\PRINT.ASM”

Директива завершения трансляции.

END[метка_точки_входа]

Директивы управления листингом.

PAGE[число_строк][,число_столбцов]

TITLEтекст

SUBTTLтекст

Операции

Операция является модификатором, который используется в операторе языка ассемблера или в директиве.

Арифметические:

значение1 +значение2

значение1 -значение2

значение1 *значение2

значение1 /значение2

значение1 MODзначение2

значение SHLвыражение

значение SHRвыражение

Логические:

значение1 ANDзначение2

значение1 ORзначение2

значение1 XORзначение2

NOTзначение

Отношения:

операнд1 EQоперанд2

операнд1 NEоперанд2

операнд1 LTоперанд2

операнд1 GTоперанд2

операнд1 LEоперанд2

операнд1 GEоперанд2

Например:

MOV AX,CHOICE LT 20

Будет заменено на одну из следующих строк:

MOV AX,0FFFFh ; ЕслиCHOICEменьше20

MOV AX,0 ; Если CHOICE больше или равно 20

Что сделает оператор:

MOV AX,((CHOICE LT 20) AND 5) OR ((CHOICE GT 20) AND 6)

-------------------------------------------------------------------------------------------

MOV AX,(0FFFFh AND 5) OR (0 AND 6)

MOV AX,5

--------------------------------------------------------------------------------------

MOV AX,(0 AND 5) OR (0FFFFh AND 6)

MOV AX,6

--------------------------------------------------------------------------------------

Операции, возвращающие значения:

MESSAGE DB ‘Для продолжения нажмите любую клавишу’

LMESSAGE DB $-MESSAGE

MOV AX,SEGTABLE ;Сегментныйадрес

MOV BX,OFFSETTABLE ;Смещение

TABLE DW 99DUP(1)

MOV CX,LENGTH TABLE ;Число элементов в таблице TABLE

MOV AX,TYPE TABLE ;Длина элемента в таблице TABLE

MOV CX,SIZE TABLE ;Число байтов в таблице TABLE

; SIZE = LENGTH * TYPE

Операции присваивания атрибутов:

тип PTR выражение

Если таблица из слов определена так:

WORD_TABLE DW 100DUP(?)

то оператор

FIRST_BYTE EQU BYTE PTRWORD_TABLE

присвоит имя первому байту таблицы и теперь по этому имени можно обращаться к таблице побайтно

MOV AL,FIRST_BYTE+8

регистр_сег:адресное_выражение

MOV AX,ES:[BP] ; Если данные в доп.сегменте данных

MOV AX,CS:PRICE ; Если данные в сегменте кода

JMP SHOT метка

JMP SHOT LAB1

. . .

LAB1: …

Взаимодействие с языками высокого уровня.

Для правильного обращения с подпрограммами, а тем более при взаимодействии с различными языками программирования, нужно учитывать виды моделей памяти:

  • TINY– единственный физический сегмент для кодов и данных

  • SMALL– один сегмент для кодов, другой – для данных

  • MEDIUM– один сегмент для данных, несколько – для кодов

  • COMPACT– один сегмент для кодов, несколько – для данных

  • LARGE– несколько сегментов и кодов, и данных

  • HUGE– то же, но сегменты данных могут превышать 64К

  • FLAT– (для защищённого режима) все логические сегменты в одном большом физическом сегменте.

Представление целых чисел

Тип данных (размер)

Диапазоны значений

десятичные

шестнадцатеричные

восьмеричные

char

(1 байт)

от –128

до +127

от –080h

до +07Fh

от –0200

до +0177

unsigned char

(1 байт)

от 0

до 255

от 0h

до 0FFh

от 00

до +0377

short

(2 байта)

от –32768

до +32767

от –08000h

до +07FFFh

от –0100000

до +077777

unsigned short

(2 байта)

от 0

до 65535

от 0h

до 0FFFFh

от 00

до 0177777

int

(2 байта)

от –32768

до +32767

от –08000h

до +07FFFh

от –0100000

до +077777

unsigned int

(2 байта)

от 0

до 65535

от 0h

до 0FFFFh

от 00

до 0177777

long

(4 байта)

от –2147483648

до +2147483647

от –080000000h

до +07FFFFFFFh

от –020000000000

до +017777777777

unsigned long

(4 байта)

от 0

до 4294967295

от 0h

до 0FFFFFFFFh

от 00

до 037777777777

signed type

-

+

unsigned type

Вещественные константы, (константы с плавающей точкой).

На представление данных ПТ существует единый промышленный стандарт IEEE754-1985 (от 1985 года)1. Согласно ему форма представления чисел в МП имеет вид:

A = (-1)S  1,M  2P

где S– однобитовый знак числа (0 – плюс, 1 – минус);1,M– мантисса: 1 – целая часть мантиссы (всегда 1, поэтому она не хранится),M– дробная часть мантиссы2;P=r+p–смещенный порядок– целое положительное число;r– смещение – целая положительная константа равная (2nr-1– 1),nr– разрядность поля порядка.

Такое представление мантиссы и порядка позволяет быстро сравнивать по абсолютной величине числа одинакового формата – первое же отличие поля порядка (а если они равны, то поля мантиссы), определяет соотношение чисел.

Типы вещественных чисел и диапазоны значений

Тип данных

Размер (байт)

Диапазон значений (примерно)

float

4

от 3.4E-38 до3.4E+38

double

8

от 1.7E-308 до 1.7E+308

long double

10

от 3.4E-4932 до3.4E+4932

Размещение в памяти.

Если определить на одном месте константы разного типа …

LL DD 12345678h ; Восьмибайтовая константа

CC EQU BYTE PTR LL ; Равно 78h