- •Вопросы к контрольной работе №1 Тема: «Программная модель микропроцессора. Нотации языка ассемблера»
- •Структура и типы команд: четырехадресные команды:
- •Структура и типы команд: трехадресные команды:
- •Структура и типы команд: двухадресные команды
- •Структура и типы команд: одноадресные команды
- •Структура и типы команд: безадресные (стековые) команды
- •Организация памяти, формирование физического адреса.
- •Программная модель микропроцессора: регистры для работы со стеком, название, назначение.
- •Программная модель микропроцессора: сегментные регистры, название, назначение.
- •Программная модель микропроцессора: регистры сопроцессора, название, назначение
- •Программная модель микропроцессора: целочисленные регистры mmx-расширения, название, назначение.
- •Программная модель микропроцессора: регистры общего назначения, название, назначения, структура.
- •Программная модель микропроцессора: индексные регистры, название назначение:
- •Программная модель микропроцессора: регистры mmx-расширения с плавающей точкой, название, назначение.
- •Системные регистры.
- •Нотация языка ассемблера: формат команды:
- •Нотация языка ассемблера: виды и запись констант.
- •Формат задания псевдооператора.
- •Псевдооператоры определения имен
- •Псевдооператоры определения переменных, простые типы данных.
- •Команды расширения знака, формат.
- •Упрощенные директивы определения сегментов режима masm.
Нотация языка ассемблера: формат команды:
Любая команда языка Ассемблера состоит из полей метки, мнемокода, операнда и
комментария.
Формат команды:
[МЕТКА:] код [операнд] [;комментарий]
Примеры меток:
8
Metka
.cikl
Get_cikl
Поле операнда может содержать источник и приемник, причем приемник указыва-
ется первым. Источник от приемника отделяются запятой.
Приемник, Источник
Нотация языка ассемблера: виды и запись констант.
В Ассемблере используются следующие константы:
1. Двоичная – 1001010B
2. Десятичная – 1234D или 1234
3. Шестнадцатеричная – 67ADH
4. Литерал – ‘Ассемблер’.
В качестве констант можно использовать и отрицательные числа. В случае десятично-
го числа перед ним достаточно поставить знак минус. Если число двоичное или шестнадца-
теричное, то его необходимо записать в дополнительном коде.
Формат задания псевдооператора.
Псевдооператоры
Псевдооператоры управляют работой Ассемблера, а не микропроцессора.
Формат задания псевдооператора:
[идентификатор] псевдооператор [операнд] [;комменарий]
Обязательным является только поле псевдооператора.
Псевдооператоры определения имен
Псевдооператоры определения имен
Эти псевдооператоры позволяют программисту определить символические имена для
часто используемых выражений. Такие имена создаются с помощью псевдооператоров EQU
и =. Определенные псевдооператором = имена можно переопределить, а
определенные псевдооператором EQU нельзя. Псевдооператор EQU можно использовать как
с числовыми, так и с текстовыми выражениями, а псевдооператор = только с числовыми.
Пример:
Count equ cx
Const = 512
Const = 2*const+1
Псевдооператоры определения переменных, простые типы данных.
Псевдооператоры определения перенных:
[имя] db выражение [,…]
[имя] dw выражение [,…]
[имя] dd выражение [,…]
Псевдооператор db резервирует байты, dw – слова, dd – двойные слова. Выражение
может быть числовым или адресным.
Пример:
a db 4
b dw 6
с db 3*6-2 ;числовое выражение
d db a ;адресное выражение
При определении переменной без присваивания ей начального значения необходимо
указать в поле выражения вопросительный знак
c db ?
Если имя перенной не указывается, то просто резервируется память
db
Псевдооператор описания сегмента, его формат.
В исходной программе должны быть определены сегменты, из которых состоит про-
грамм. Может быть определено до четырех сегментов: сегмент кода, сегмент данных, сег-
мент стека и дополнительный сегмент.
Формат описания сегмента:
Имя segment [тип подгонки] [тип связи] ['класс']
…
Имя ends
Формат и назначение псевдооператора SEGMENT.
не знаю точно! Похоже на верхний вопрос. тут уточните кто и напишите. Буду признателен.
Псевдооператор описания процедур, его формат
Формат описания процедур:
имя_процедуры PROC атрибут_дистанции
…
RET
Имя_процедуры ENDP
Каждая процедура должна начинаться оператором PROC и заканчиваться оператором
ENDP. Процедура должна содержать команду возврата из процедуры RET.
Формат вызова процедуры.
Формат вызова процедуры:
CALL имя_процедуры
Псевдооператоры управления трансляцией, формат.
Псевдооператор END отмечает конец исходной программы и указывает Ассемблеру,
где завершить трансляцию. Псевдооператор END должен присутствовать в каждой програм-
ме.
Формат оператора:
END [метка точки входа]
где метка определяет исходную программу. Например, оператор
END PROC
Отмечает конец программы PROC.
Команда пересылки MOV, формат.
MOV приемник, источник ;И->П
Команда позволяет пересылать байт или слово между регистром и ячейкой памяти
или между двумя регистрами:
MOV регистр1, регистр2
MOV регистр, память
Команды работы со стеком, формат.
PUSH источник ;поместить слово в стек
POP приемник ;извлечь слово из стека
Команды сложения, формат.
ADD приемник, источник ;П+И->П
Оба операнда не могут быть именами переменных. Источником может быть число.
Можно складывать:
ПАМЯТЬ+РЕГИСТР
РЕГИСТР+ПАМЯТЬ
РЕГИСТР +РЕГИСТР
ПАМЯТЬ+ЧИСЛО
РЕГИСТР+ЧИСЛО
Нельзя складывать ПАМЯТЬ + ПАМЯТЬ
INC приемник П;+1->П
Приемник это регистр или ячейка памяти.
Команды вычитания, формат.
SUB приемник, источник ;П-И->П
Оба операнда не могут быть именами переменных. Источником может быть число.
Можно вычитать:
ПАМЯТЬ – РЕГИСТР
РЕГИСТР – ПАМЯТЬ
РЕГИСТР – РЕГИСТР
ПАМЯТЬ – ЧИСЛО
РЕГИСТР – ЧИСЛО
Нельзя вычитать ПАМЯТЬ – ПАМЯТЬ
DEC приемник ;П-1->П
Приемник это регистр или ячейка памяти
Команды умножения, формат.
множение чисел без знака:
MUL источник ;al*И->ax при работе с байтами
;ax*И->ax-dx при работе со словами
Умножение чисел со знаком:
IMUL источник ;al*И->ax при работе с байтами
;ax*И->ax-dx при работе со словами
Источник это или регистр или ячейка памяти.
Команды деления, формат.
еление чисел без знака:
DIV источник ;al/Иal-ah при работе с байтами
;ax/Иax-dx при работе со словами
;al – частное, ah – остаток
;ax – частное, dx – остаток
Деление чисел со знаком:
IDIV источник ;al/Иal-ah при работе с байтами
;ax/Иax-dx при работе со словами
12
;al – частное, ah – остаток
;ax – частное, dx – остаток
Источник это или регистр или ячейка памяти.
