Скачать презентацию Команды ЭВМ Лекция 2 Основы программирования МП Скачать презентацию Команды ЭВМ Лекция 2 Основы программирования МП

Лекция_11_Команды ЭВМ.ppt

  • Количество слайдов: 13

Команды ЭВМ Команды ЭВМ

Лекция 2 Основы программирования МП 1. 2. 3. Структура программы на языке ассемблера. Формат Лекция 2 Основы программирования МП 1. 2. 3. Структура программы на языке ассемблера. Формат команды Регистры общего назначения. Сегментные регистры. Регистр флагов Структура программы на ассемблере

Структура программы Исходный текст программы (физически содержащийся в файле в расширением asm) состоит из Структура программы Исходный текст программы (физически содержащийся в файле в расширением asm) состоит из операторов ассемблера, каждый из которых занимает отдельную строку этого текста. Ассемблер транслирует операторы один за другим, генерируя последовательность из команд процессора и байтов данных.

Формат команды Общий формат оператора ассемблера имеет следующий вид: [Метка[: ]] МНЕМОКОД [Операнд 1 Формат команды Общий формат оператора ассемблера имеет следующий вид: [Метка[: ]] МНЕМОКОД [Операнд 1 [{, Операнд 2}]] [; Комментарий] Метка - это идентификатор, связанный с адресом первого байта того оператора, в котором она появляется. Код операции – это мнемоническое обозначение соответствующей команды процессора или директивы ассемблера.

Формат команды Комментарий - любая последовательность символов, начиная с символа Формат команды Комментарий - любая последовательность символов, начиная с символа "; " до конца строки, которая поясняет соответствующий оператор Метки используются как операнды в операторах программы для ссылки на адреса команд и данных (переменных, массивов, структур). Имена меток могут состоять из следующих символов: "A" - "Z", "a" - "z", "_", "@", "$", "? ", "0" - "9". Символы "0" - "9" не могут использоваться в качестве первых символов имени метки.

Формат команды Символы Формат команды Символы "$" и "? " имеют специальное значение, поэтому их не следует использовать в именах пользовательских меток. Имена меток не должны совпадать с именами регистров, мнемониками команд процессора, а также с ключевыми словами Ассемблера (встроенными переменными, операциями, директивами).

Формат команды Мнемокод команды компилируется непосредственно в те команды МП, которым они соответствуют. Важной Формат команды Мнемокод команды компилируется непосредственно в те команды МП, которым они соответствуют. Важной особенностью машинных команд является то, что они не могут оперировать одновременно двумя операндами, находящимися в памяти. По этой причине возможны следующие сочетания операндов: § Регистр – регистр; § Регистр – память; § Память – регистр; § Непосредственный операнд – память;

Регистры общего назначения (РОН) Использование РОН обычно не регламентируется, однако каждый из них имеет Регистры общего назначения (РОН) Использование РОН обычно не регламентируется, однако каждый из них имеет некоторое специфическое назначение. ax – аккумулятор. Часто используется в арифметических командах. bx – base, для хранения адреса (смещения) cx – counter, счетчик dx – data, хранение данных bp/sp – указатель базы/стека si/di – индекс источника/приемника

Регистры общего назначения Схема регистров ax, bx, cx, dx ah 8 бит al 8 Регистры общего назначения Схема регистров ax, bx, cx, dx ah 8 бит al 8 бит К 8 -битным частям регистров можно обращаться отдельно.

Сегментные регистры предназначены для хранения адреса сегмента, разрядность каждого 16 бит. cs – сегмент Сегментные регистры предназначены для хранения адреса сегмента, разрядность каждого 16 бит. cs – сегмент кода ds – сегмент данных ss – сегмент стека es – дополнительный сегмент

Регистр флагов OF DF IF 15 14 13 12 11 10 9 TF SF Регистр флагов OF DF IF 15 14 13 12 11 10 9 TF SF ZF 8 7 6 AF 5 4 PF 3 2 CF 1 0 Флаг – это бит, принимающий значение 1 ( «установлен» ) или 0 ( «сброшен» ) при выполнении определенных условий. Каждый флаг - один из разрядов регистра флагов eflags/flags. Некоторые флаги (флаги условий) автоматически меняются при выполнении команд и фиксируют те или иные свойства их результата; другие флаги (флаги состояний) меняются программно.

Флаги Флаг Описание CF Флаг переноса. Пред. операции произвела перенос PF Флаг четности. В Флаги Флаг Описание CF Флаг переноса. Пред. операции произвела перенос PF Флаг четности. В рез. пред. операции четное число единиц AF Вспомогательный флаг переноса, для BCD-чисел ZF Флаг нуля. Результат пред. операции = 0 SF Флаг знака. В пред. операции отрицательный результат. OF Флаг переполнения. Результат превосходит доп. величину TF Флаг трассировки IF Флаг прерываний DF Флаг направления

Структура программы 32 -х разрядное приложение может создаваться по следующему шаблону. 386. model flat, Структура программы 32 -х разрядное приложение может создаваться по следующему шаблону. 386. model flat, stdcall. stack. data ; данные. code main: . . . ; команды ассемблера end main end