Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Функциональное описание системы команд микропроцессора ⇐ ПредыдущаяСтр 10 из 10
Продолжение табл. П3
Продолжение табл. П3
Продолжение табл. П3
В таблице П1.3 _CON означает часть мнемоники команды, определяющая условие передачи управления вызова и возврата из подпрограммы. _CON в мнемониках команд заменяется на: o nz – если условный переход, вызов или возврат из подпрограммы осуществляется при z=0; o z – если условный переход, вызов или возврат из подпрограммы осуществляется при z=1; o nc – если условный переход, вызов или возврат из подпрограммы осуществляется при c=0; o c – если условный переход, вызов или возврат из подпрограммы осуществляется при c=1; o po – если условный переход, вызов или возврат из подпрограммы осуществляется при p=1; o pe – если условный переход, вызов или возврат из подпрограммы осуществляется при p=0; o p – если условный переход, вызов или возврат из подпрограммы осуществляется при s=0; o m – если условный переход, вызов или возврат из подпрограммы осуществляется при s=1. Далее приводится пример программы, демонстрирующей использование наиболее часто встречающихся команд. При составлении собственных программ рекомендуется придерживаться такой же формы записи.
Адрес Мнемоника Код Комментарий 8000 MVI A, 1A 3E (A)1A; 3E – код команды MVI A, D8 8001 1A 1A – конкретный операнд, подставляемый вместо D8 8002 MOV C, A 4F (C)(A); 4F – код команды MOV C, A, операндов у ней нет, поэтому занимает 1 байт. Сейчас (A)=1A и (С)=1A 8003 LXI D, 8200 11 (DE)8200; 11 – код команды LXI D, D16 8004 00 8200 – конкретный операнд, 8005 82 подставляемый вместо D16, т.к. младший байт расположен по младшему адресу, то порядок следования в программе 00 82 8006 STA 8201 32 (8201)(A); 32 – код команды STA A16 8007 01 8201 – конкретный операнд, 8008 82 подставляемый вместо А16. По этой команде в ячейку памяти с адресом 8201 записалось содержимое аккумулятора, т.е. (8201)=1А 8009 MVI A, C1 3E (A)C1 800A C1 800B LDA 8201 3A (A)(8201); 3A – код команды LDA A16 800C 01 8201 – конкретный операнд, 800D 82 подставляемый вместо A16, (A)=1A 800E MVI A, 90 3E (A)90 800F 90 8010 STAX D 12 [DE](A); в ячейку памяти с адресом, хранящимся в регистровой паре DE, записывается содержимое аккумулятора, т.е. (8200)=90 8011 LXI D, 8201 11 (DE)8201 8012 01 8013 82 8014 LDAX D 1A (A)[DE]; в аккумулятор из ячейки памяти, адрес которой хранится в регистровой паре, записывается содержимое, т.е. (A)=1A 8015 INR C 0C (C)(C)+1, увеличение содержимого регистра С на единицу, т.е. (С)=1B 8016 DCR A 3D (A)(A)-1, уменьшение содержимого регистра A на единицу, т.е. (A)=19 8017 INX D 13 (DE)(DE)+1, увеличение содержимого регистровой пары (DE) на единицу, т.е. (DE)=8202 8018 INX D 13 (DE)(DE)+1, (DE)=8203 8019 DCX D 1B (DE)(DE)-1, (DE)=8202 801A STAX D 12 [DE](A), (8202)=19 801B LXI H, 0100 21 (HL)0100 801С 00 801D 01 801E XCHG EB (DE)«(HL), (DE)=0100, (HL)=8202 801F DCX H 2B (HL)=8201 8020 SPHL F9 (SP)(HL), пересылка содержимого регистровой пары HL в регистр указателя стека (SP)=8201 8021 XTHL E3 (H)«[SP+1], (L)«[SP], обмен информацией между вершиной стека и регистровой парой (HL), т. е. (H)=19, (L)=1A, (8202)=82, (8201)=01 8022 ADD H 84 (A)(A)+(H), (A)=32 8023 CPI 32 FE команда сравнения содержимого аккумулятора 8024 32 со вторым байтом, т.е. (A) сравнивается с 32; сравнение производится посредством вычитания, но результат в А не помещается 8025 JNZ 8000 C2 эта команда условного перехода передала бы 8026 00 управление на адрес 8000, если бы флаг Z=0, 8027 80 т.к. предыдущая команда установила Z=1, то будет выполнена следующая за ней команда с адресом 8028 8028 SUI 32 D6 (A)(A)-32; (A)=0, флаг Z в 8029 32 регистре флагов установился в 1 802A JZ 8028 CA передаст управление на команду с 802B 28 адресом 8028, если Z=1 802C 80 802D INR A 3C (A)(A)+1; (A)=1 802E ADD A 87 (A)(A)+(A); (A)=2 802F CMP C B9 сравнение содержимого аккумулятора с содержимым регистра С; сравнение производится посредством вычитания, результат в аккумулятор не записывается 8030 JP 8010 F2 передала бы управление по адресу 8010, если 8031 10 флаг S=0; т.к. (A)=2 и (С)=1B, то (А)-(С)=Е7, 8032 80 т.е. флаг S=1 8033 jmp 8300 C3 безусловная передача управления на 8034 00 команду с адресом 8300 8035 83
В приведенной программе все числа записаны в шестнадцатеричной системе счисления. Мнемоники команд микропроцессора КР580ВМ80А и соответствующие им коды приведены в таблице П4. В крайних столбцах этой таблицы приведены значения старших 4 бит байта (старшей тетрады), в верхней и нижней строке значения младших четырех бит байта (младшей тетрады).
Библиографический список 1. Аверьянов, Н. Н. Микропроцессоры и микропроцессорные комплекты интегральных микросхем: справочник: в 2 т./ Н. Н. Аверьянов, А. И. Березенко, Ю. И. Борщенко и др.; под ред. В. А. Шахнова. – М.: Радио и связь, 1988. – Т. 1. – 368с., ил. 2. Быстров, Ю. А. Электроника: справочная книга/ Ю. А. Быстров, Я. М. Великсон, В. Д. Вогман и др.; под ред. Ю. А. Быстрова. – СПб.: Энергоатомиздат, 1996. – 544 с., ил. 3. Гук, М. Процессоры Pentium III, Atlon и другие/ М. Гук, В. Юров. –СПб.: Питер, 2000. – 480с., ил. 4. Гук, М. Аппаратные средства IBM PC. Энциклопедия, 2-е изд. – СПб.: Питер, 2001. – 928 с., ил. 5. Юров, В Assemler: учебник/ В. Юров. – СПб.: Питер, 2001. – 624 с., ил. 6. Юров, В. Assembler: специальный справочник/ В. Юров. – СПб.: Питер, 2001. – 496 с., ил. 7. Орлов, С. А. Организация ЭВМ и систем: учебник для вузов. – СПб.: Питер, 2004. – 668 с., ил. 8. Зубков, С. В. Assembler для DOS, Windows и Unix/С. В. Зубков. – М.: ДМК Пресс; СПб.: Питер, 2005. – 608 с., ил. 9. Пирогов, В. Ю. Ассемблер для Windows/ В. Ю. Пирогов – 3-е изд. – СПб.: БХВ-Петербург, 2005. – 864 с., ил.
|