Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lr3_ArhPC.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
68.18 Кб
Скачать

3.2. Машинні цикли базового мікропроцесора.

Команди в базовому мікропроцесорі виконуються як послідовність внутрішніх мікрокоманд. Кожна з мікрокоманд виконується на протязі одного циклу, тривалість якого складає 3-5 тактів. Кількість машинних циклів та загальна кількість тактів визначається типом команди. Всього є 10 типів машинних циклів:

  • вибірка команди;

  • зчитування слова з запам'ятовуючого пристрою

  • запис слова в запам'ятовуючий пристрій

  • зчитування слова зі стеку

  • запис слова в стек

  • зчитування слова з пристрою введення/виведення

  • запис слова в пристрій введення/виведення

  • підтвердження переривання

  • підтвердження зупинки

  • підтвердження переривання під час зупинки.

Перший цикл завжди є цикл вибірки команди і займає 4 або 5 тактів. Три наступних цикли завжди виконуються за три такти, а п'ятий за три або п'ять тактів. З огляду на це завжди можна розрахувати кількість циклів і тактів команди, якщо відомо способи адресації, які вона використовує.

Наприклад: команда MVI М, B2 двобайтова, використовує безпосередню/непряму адресацію. Під час виконання команди дані, які містяться в другому байті програми, завантажуються в комірку пам'яті, адреса якої знаходиться в регістровій парі HL. Перший цикл - вибірка першого байта з пам'яті (4 або 5 тактів), наступний - вибірка другого байта (3 такти). Ще один цикл - запис даних в комірку пам'яті (3 такти). Отже команда виконується за 3 цикли 10 або 11 тактів. (насправді 10 тактів).

3.3. Команди загрузки і пересилок даних

XCHG

Обмін даними між регістровими парами H и D

XTHL

Обмін даними між регістровою парою H і верхушкою стека (L) ↔((SP)), (H) B (D,H) ↔ ((SP+1))

STA addr

Вміст акум. A заноситься в комірку пам’яті за адресою addr із другого та третього байтів команди

LDA addr

Вміст комірки пам’яті за адресою addr із другого та третього байтів команди заноситься в акум. A

SHLD addr

Вміст регістрової пари H заноситься в двобайтову комірку пам’яті з початковою адресою addr із другого та третього байтів команди

LHLD addr

Вміст двобайтової комірки пам’яті з початковою адресою addr із другого та третього байтів команди заноситься в ркгістрову пару H

MVI R,d8

Вміст другого байту команди заноситься в регістр R (за виключенням регістру F)

LXI (B,D,H,SP),d16

Вміст другого та третього байтів команди заносяться в регістрові пари B,D,H,SP

PCHL

Вміст регістрової пари H заноситься в лічильник команд PC

SPHL

Вміст регістрової пари H заноситься в лічильник команд SP

MOV R1,R2

Вміст регістру R2 (за виключенням регістру F) заноситься в регістр R1 (за виключенням регістру F) за виключенням MOV M,M

STAX B

Вміст акум. A заноситься в комірку пам’яті за адресою, яка розміщена в регістровій парі B

STAX D

Вміст акум. A заноситься в комірку пам’яті за адресою, яка розміщена в регістровій парі D

LDAX B

Вміст комірки пам’яті за адресою, яка розміщена в регістровій парі B, заноситься в акум. A

LDAX D

Вміст комірки пам’яті за адресою, яка розміщена в регістровій парі D, заноситься в акум. A

PUSH (B,D,H)

запис вмісту регістрової пари B (D, H) в стек (B,D,H) ®(( SP-1 )), (C,E,L) ®(( SP-2 )), (SP)=(SP)-2

PUSH PSW

запис вмісту регістрової пари PSW в стек (A) ®((SP-1)), (F) ®(( SP-2 )), (SP)=(SP)-2

POP (B,D,H)

читання зі стеку в регістрову пару B (D, H) B(D,H) ((SP)) ® (C,E,L), ((SP+1)) ®(B,D,H), (SP)=(SP)+2

POP PSW

читання зі стеку в регістрову пару PSW ((SP)) ® (F), ((SP+1)) ®( A), (SP)=(SP)+2

IN port

вміст порту з адресою port заноситься в акумулятор

OUT port

вміст акумулятора заноситься в порт з адресою port

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]