1.3 Анализ способов адресации операндов и алгоритмов выполнения заданного подмножества команд
Формат команды: ADD операнд1 операнд2.
В роли первого операнда может служить регистр и память, а в роли второго регистр, память и константа. Команда ADD выполняет сложение побитно, первый операнд служит для приема полученной суммы. Если результат операции превосходит размер операнда, то OF и CF устанавливаются в 1, иначе оба флага сбрасываются в ноль.
Формат команды: MUL операнд.
В роли операнда может служить регистр или память. MUL- целочисленное умножение без знака AL или AX на заданный операнд (регистр или переменная) и помещает результат в AX или AX:DX, соответственно. Если результат операции превосходит размер операнда, то OF и CF устанавливаются в 1, иначе оба флага сбрасываются
Формат команды: DEC операнд.
Команда DEC уменьшает значение операнда на единицу, не влияет на флаги. В роли операнда может выступать память/регистр размерностью один или два байта.
Формат команды: MOV операнд1 операнд2.
Пересылает источник операнда, размещенный в регистре, памяти или непосредственные данные, в приемник операнда. Исходный операнд остается без изменений, а операнд-приемник перезаписывается исходными данными. Флаги не устанавливаются.
Формат команды: PUSH операнд.
Данная операция помещает операнд в вершину стека. Для этого указатель стека ESP уменьшается на 2, если размер операнда 16 бит, и на 4, если 32 бита. Операнд (регистр общего назначения, сегментный регистр, или непосредственные данные) помещается на вершину стека, указываемую ESP.
Если стек организуется из 64К (максимальный размер), то при полном его заполнении каждое следующее включение разрушает ранее записанную информацию. Если стек имеет меньший размер, то при полном его заполнении каждое следующее включение разрушает область памяти, находящуюся вне стекового сегмента. Регистр флажков не модифицируется.
Если размер операнда - 32 бит, а в стек помещается сегментный 16-битный регистр, то перед засылкой в стек процессор дополняет содержимое регистра нулями до 32 бит. Это позволяет выдержать размер двойного слова.
При выполнении процессором инструкций PUSH ESP и PUSH SP, в стек помещается содержимое указателя стека, существовавшее до выполнения инструкции. В этом отличие выполнения этих инструкций от процессора 8086, который помещает в стек новое значение (уже уменьшенное на два).
Формат команды: JA/JNBE метка.
Данный переход относится к беззнаковым переходам, т.е. эта команда осуществляет переход, если выполнено условие сравнения двух чисел, интерпретированных, как беззнаковые.
Допустим, арифметические флажки установлены в результате сравнения двух беззнаковых чисел командой CMP. Тогда переход осуществляется, если флаги CF и ZF равны нулю. Регистр флажков не модифицируется.
Формат команды:
1)JMP SHORT метка
Относительный переход типа NEAR. Диапазон перехода -128 - +127 байт. Если осуществляется переход назад, оператор SHORT можно опустить.
2)JMP метка типа NEAR
Относительный переход типа NEAR. Диапазон перехода -32768 - +32767 байт.
3)JMP метка типа FAR
Прямой переход типа FAR: значение off загружается в IP, значение seg загружается в CS.
4)JMP регистр/память
Косвенный переход типа NEAR. Адрес перехода загружается из 16-битового общего регистра или слова памяти
Команда JMP осуществляет безусловный переход, модифицируя указатель команд IP (при переходе типа NEAR) или пару регистров CS:IP (при переходе типа FAR). Старое значение регистров IP и CS теряется.
- Введение
- 1 Анализ структуры микропроцессора прототипа и алгоритмов выполнения заданного подмножества команд
- 1.1 Структура микропроцессора-прототипа
- 1.2 Адресация основной памяти
- 1.3 Анализ способов адресации операндов и алгоритмов выполнения заданного подмножества команд
- 2 Постановка задач проекта
- 2.1 Требования к структуре и интерфейсу гипотетического микропроцессора
- 2.2 Требования к структуре и интерфейсу алу микропроцессора
- 2.3 Требования к структуре микро эвм
- 3 Разработка алу микропроцессора
- 3.1 Разработка оа для отдельных операций алу
- 3.1.1 Разработка оа для операции сложения add
- 3.1.2 Разработка оа для операции умножения по алгоритму с младших разрядов множителя со сдвигом частичных сумм вправо mul(a)
- 3.1.3 Разработка оа для операции декремента dec
- 3.2 Разработка общего оа алу
- 3.3 Разработка микропрограмм выполнения операций в алу
- 3.3.1 Арифметическая операция сложения add
- 3.3.2 Арифметическая операция беззнакового умножения mul по алгоритму с младших разрядов множителя со сдвигом частичных сумм вправо
- 4.2 Система команд микропроцессора
- 4.2.1 Команда add al,imm8
- 4.2.2 Команда mul r8
- 5.2 Организация шин микро-эвм
- 5.3 Организация озу
- 5.4 Микропрограмма работы микро-эвм
- 6 Разработка программы эмуляции работы микро-эвм
- 6.1 Постановка задачи
- 6.2 Алгоритм работы программы эмуляции
- 6.3 Список процедур и функций
- 6.4 Анализ результатов тестирования программы
- Перечень ссылок
- Приложение а техническое задание на разработку микроэвм
- Приложение б техническое задание на программу-эмулятор
- Приложение в руководство пользователя