Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика (Автосохраненный).docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
86.21 Кб
Скачать

Машинные команды

Лекция 8

Машинные команды представляются в двоичном коде

Каждая команда реализуется при помощи опр. Лог. Схем. В зависимости от того, какие будут команды, будут те или иные лог. Схемы. Каждая команда реализуется при помощи многих схем.

Компоненты команды

Однозначная интерпретация процессором!

Основные компоненты программы:

  1. КОП (код операции) + *

В современном пентиуме несколько сотен КОП

  1. Операнд – то, над чем производится операция. (х, у)

Каждый операнд – адрес некого значения.

3 типа адресов

  1. Адрес в ячейке памяти (озу = RAM. Random access memory=память произвольного доступа)

  2. Адрес регистра ЦП регистр позволяет работать быстрее <=100 для временного хранения инфы.

  3. Адрес регистров устройств ввода-вывода. Любое устройство ввода-вывода имеет свою память.

В зависимости от типов процессоров кол-во операндов может быть различно.

2оп – двухадресная.

АС – аккумулятор, туда помещаются промежуточные рез-лы вычислений.

  1. КОП О1 О2 О3

О3 = О1 КОП О2 Если 3-х адресная команда, то О1 и О2 аргументы, а в О3 помещается результат

  1. КОП О1 О2 АС = О1 КОП О2

  2. КОП О1 АС = О1 КОП АС

  3. Нульадресные команды Стек (магазин) – базовый тип данных, используемый в инф. Технике. Работает по принципу LIFO (Last in First Out)

5

4

3

2

1

 вершина

 Основание Стека

Вход: 1 2 3 4 5

Выход: 5 4 3 2 1

Стек располагается в оперативной памяти

Операндов нет, т.к. действия происходят в вершине стека

FIFO – «очередь к кассе» ( каков вход, таков и выход ) Наиболее часто используются двух и одноадресные команды

Лекция 9

Источник и приемник данных

Оперативная память, регистр ЦП, вершина стека

Режим адресации.

Направление передачи данных (из памяти в ЦП, из ЦП в память…)

Ячейка может находится на жестком диске или в КЭШ-памяти.

Команды преобразования

Преобразуют данные из 1 формата в другой.

Логические команды

Производят логические операции

Команды управления выполнением программ

Команды перехода (условные, безусловные)

Условия реализуются с помощью «флагов» (флаговых битах). Эти биты находятся в специальном флаговом регистре.

CF – флаг переноса

PF – флаг четности. 1 – четное число, 0 – нечетное

ZF (zero flag) – 0 – число равно 0, 1 – число не равно 0

SF (sight flag) – 1 – число неотрицательно, 0 – число отрицательно

OF (overflow flag) переполнение. Равен 1 при переполнении

If (interruption flag) – 1, когда имеет место прерывание.

Вызов подпрограммы

Операции представлены в таблице на языке Ассемблера (автокоде) для intel

Язык Ассемблера позволяет представлять машинные команды в симв. Виде.

Тип операции (команды)

Наименование операции

Символ операции

(ассемблер. intel)

Пример

Описание

Передачи данных

Перемещение

MOV

MOV x,y

Передача машинного слова (4 байта) или блока данных от источника к приемнику.

Сохранение

STOR

STOR x

Содержимое регистра процессора сохраняется в ячейке памяти Х

Загрузка

LOAD

LOAD х

Передача данных из адреса памяти Х в регистр ЦП

Загрузка адреса

LEA

LEA x,y

X=адрес у

Значением Х будет не значение У, а его адрес

Очистка

CLR

CLR

Передает в регистр ЦП одни нули.

Установка

SET

SET

Передает в регистр ЦП слово из одних единиц.

Запись в Стек

PUSH

PUSH x

Содержимое ячейки памяти по адресу х помещается в вершину стека

Извлечение из Стека

POP

POP x

Запись из вершины стека в ячейку памяти по адресу Х

Арифметические операции

Сложение

ADD

ADD x,y

X=x+y.

Складываем и результат записываем в Х

Умножение

MUL

MUL x,y

X=x*y

Умножаем и результат записываем в х

Деление

DIV

DIV x,y

X=x/y

Делим и результат записываем в х

Положительное приращение

INC

INC x

Х=Х+1

Отрицательное приращение

DEC

DEC x

Х=х-1

Логические операции.

Выполняются поразрядно

Не

NOT

NOT x

Х = НЕ х

И

AND

AND x,y

X=x^y

ИЛИ

OR

OR x,y

X=x v y

Искллючающее или

XOR

XOR x,y

X=x / y (штрих шеффера)

Сравнение

CMP

CMP x,y

Арифметическое или логическое сравнение. Резл. Записываются во флаговый регистр

Логический сдвиг

SHR

SHL

SHR x,y

SHL x.y

Влево

Вправо

Берем у, делаем сдвиг и помещаем в Х

Арифметический сдвиг

SAR

SAL

SAR x,y

X= сдвиг у

Циклический сдвиг

ROR

ROL

ROL x,y

Х=сдвиг у

Операции ввода-вывода

Ввод

IN

IN A

Передача данных из регистра А устройства ввода-вывода (порта) в регистр ЦП

Вывод

Out

OUT A

Передача данных из регистра ЦП в регистр устройства ввода-вывода

Управления выполнением программы

Безусловный переход

JMP

JMP A

Безусловный переход на команду по адресу А

Вызов подпрограммы

CALL

CALL A

Вызов подрограммы по адресу А

В момент вызова сохраняется вся инфа о текущем состоянии главной программы, откуда произошел вызов

Возврат из

Подпрограммы

RET

RET

Обеспечивает возврат из вызванной подпрограммы и восстановление состояния вызвавшей программы

Остановка

HLT

HLT

Принудительная остановка программы

Ожидание

WAIT

WAIT

Программа приостанавливается, пока не будет выполнено некое условие.

Условный переход

JE

JNE

JG

JL

JGE

JLE

JE A

JNE A

JG A

Сначала работает CMP x,y (сравнение) В зависимости от рез-тов сравнения устанавливаются различные флаги

Переход производится, если рез-т. Сравнения x=y

Переход, если x!=y

Переход, если x>y

X<y

Переход, если x>=y

X<=y