Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Infa_ekzamen.doc
Скачиваний:
76
Добавлен:
09.06.2015
Размер:
2.16 Mб
Скачать

39.Алфавит,слова,константы,переменные и выражения в Ассемблере.

Алфавит состоит из латинских букв,цифр и символов. Строчные и прописные не различаются. Цифра не может быть на первом месте имени.

В программе на Ассемблере используются константы:

-целые двоичные - последовательности 0 и 1 со следующим за ними символом “b”: 1010101b.

-целые десятичные - обычные 10-ые числа м.б с буквой “d”: 128 или 78d

-целые 16-ые : должны начинаться с цифры и заканчиваться ‘h’ если первый символ A,B,C,D,E,F, то перед ним надо поставить 0.

-действительные с плавающей точкой(мантисса и порядок):34.567e+02

-символьные - последовательности символов заключенные в апострофы или “”

Именованные константы - директива EQU: M EQU 27

Определение переменных V1 DB(байт); V2 DW(слово) или V3=100

Выражения состоят из операндов, операторов и ( ).

Операторы: 1)арифметические + - * / mod 2) логические or not and xor

3)операции отношений : LT(<) LE(<=) EQ(=) NE(!=) GT(>) GE(>=)

4)операции сдвига: влево-SHL, вправо-SHP. 5)специальные: offset<имя>- смещение операнда относительно начала, а операнд PTR-определяет тип операнда метка или переменная.

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

Общий вид директивы определения:[<имя>]DX<операнды><;коменты>,

Где X - это B,W,D,F,Q или Т

В поле операндов м.б. ‘?’, 1 или несколько констант, разделенных запятой.

Имя определяет адрес 1-ого байта выделенной области. Директива выделяет указанное кол-во байт и указанные операнды пересылаются в эти поля памяти.

Если Операнд ‘?’ то в поле ничего не заносится.

Примеры: 1)если операнд - символическое имя JM1, которое соответствует смещению в сегменте O3AC1H, то после выполнения M DP JM1 будет выделено 4 байта памяти. Адрес М-значение O3AC1H

2) если надо выделить 100 баайт памяти и заполнить D DB 100 DUP(1)

3) определение 1-мерного массива слов и адрес 1-ого элемента массива- имя MAS и значение его 1: MAS DW 1,7,35,75,84

4)определение 2-ух мерного массива: Arr DB 7,94,11,5 DB 5,0,1,2 DB 5,0,15,12

В директиве определения байта(слова) максимально допустимо 255.

41.Команды прерывания, команды работы со стеком.

int - с помощью команды прерывания происходит приостановка работы процессора - управление передается DOS или BIOS в зависимости от операнда этой команды и содержимого некоторых регистров, строго определенных для каждой функции. После выполнения обрабатывающей программы управление передается команде, следующей за int.

Пример:(вывод символа '!')

MOV AH,6 ; в регистр AH пересылается номер функции(в данном случае 6 )

MOV DL, '!'; в регистр DL пересылается нужный символ

int 21h; обращение к обработчику функции операционной системы(вызов DOS) Регистры стека - SS и SP(ESP)

SS - определяет адрес начала сегмента стека(этот адрес определяется системой самостоятельно)

SP - указатель на вершину стека, его значение уменьшается при добавлении элементов

PUSH <операнд> - положить на вершину стека. Операндом может служить переменная или регистр(тогда на вершину поступит значение регистра)

POP <операнд> - удалить вершину стека(операнды как в PUSH)

Можно обратиться к произвольному элементу стека, не удаляя предварительно все элементы "выше" нужного. Для этого нужно указатель на вершину стека записать в вспомогательный регистр.

MOV BP,SP; (SP)->BP (BP указывает на вершину стека)

MOV AX, [BP+6]; (SS:(BP+6))->AX(адресация по базе - мы берем элемент 6-й от вершины)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]