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

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,SEG TABLE ; Сегментный адрес

MOV BX,OFFSET TABLE ; Смещение

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 PTR WORD_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

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

На представление данных ПТ существует единый промышленный стандарт IEEE 754-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