Регистры общего назначения. (Лекция 5)

Слайд 2

Наша вымышленная машина имеет 16 (16-разрядных) регистров общего назначения, (16-разрядный) регистр

Наша вымышленная машина имеет 16 (16-разрядных) регистров общего назначения, (16-разрядный) регистр

команд и (8-разрядный) регистр счетчика команд. Размер памяти – 256 байт.

Формат машинной команды (наш RISC процессор):

Размер машинной команды – одно слово (2 байта). Старшие 4 бита выделены для кода операции, остальные биты представляют операнд. Кодировка операнда зависит от типа операции.

Слайд 3

Система команд: Команды передачи данных: Память -> Регистр - загрузить (load,

Система команд:

Команды передачи данных:
Память -> Регистр - загрузить (load, ld)

(2)
Регистр -> Память - сохранить (store, st) (3)
Команды ввода-вывода (in, out) (0,1)

Арифметико-логические команды:
сложение, вычитание, умножение и деление (add, sub, mul, div) (4, 5, 6, 7)
логические операции (and, or, not и xor) (8, 9, A, B)
операции сдвига и циклического сдвига (sl, sr, slc, src)

Команды управления:
команды безуловного и условного перехода (je, jg и т.д.) (C,D)

Слайд 4

Регистр A Логический сдвиг вправо Циклический сдвиг вправо Логический сдвиг влево

Регистр A

Логический сдвиг вправо

Циклический сдвиг вправо

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

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

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

вправо

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

Слайд 5

Пример 1: Код операции 3 означает сохранение содержимого регистра, в данном

Пример 1:

Код операции 3 означает сохранение содержимого регистра, в данном случае

регистра 5, в ячейке памяти с адресом E7.

Используя мнемокод эту команду можно записать –
ST 5, 231

При выполнении программы устройство управления непрерывно повторяет машинный цикл: а) в командный регистр загружается команда, хранящаяся по адресу, указанному в счетчике команд, и в счетчик команд загружается адрес следующей команды; б) расшифровывает команду; в) активирует схему для выполнения необходимой операции.

Код
Операции Операнд .
0011 0101 1110 0111
3 5 E 7

Слайд 6

1. LD 1, 120 0010 0001 0111 1000 2. LD 2,

1. LD 1, 120 0010 0001 0111 1000
2. LD

2, 122 0010 0010 0111 1010
3. JE 2, +6 1100 0010 0000 0110
4. DIV 1, 2,4 0111 0100 0001 0010
5. ST 4,120 0011 0100 0111 1000
6. STOP

Загрузить содержимое ячейки 120 (0х78) в первый регистр.
Загрузить содержимое ячейки 122 (0х7А) во второй регистр.
Если содержимое второго регистра равно нулю, то добавить к счетчику команд 6.
Разделить содержимое первого регистра на содержимое второго регистра и результат занести в четвертый регистр.
Сохранить содержимое четвертого регистра в ячейке с адресом 120 (0х78)
Остановка

Пример 2:

Слайд 7

B82301 Загрузить значение 0х123 в АХ 052500 Добавить значение 0х25 к

B82301 Загрузить значение 0х123 в АХ
052500 Добавить значение 0х25 к АХ
8BD8

Переслать содержимое АХ в ВХ
03D8 Прибавить содержимое АХ к ВХ
8BCB Переслать содержимое ВХ в СХ
2BC8 Вычесть содержимое АХ из АХ
90 Нет операции
CB Возврат

Процессоры 80x86 являются CISC – процессорами.
Код операции имеет разную длину.
Одной операции может соответствовать несколько кодов в зависимости от контекста.
Сегментированная память (сегментные регистры).
Регистры флагов – флаг переполнения, флаг переноса, флаг нуля и т.д.

Слайд 8

Ввод команд в память компьютера

Ввод команд в память компьютера

Слайд 9

Отображение участка памяти, содержащего код программы:

Отображение участка памяти, содержащего код программы:

Слайд 10

Пошаговое выполнение программы:

Пошаговое выполнение программы:

Слайд 11