1. Перед началом работы произвести внешний осмотр ПЭВМ, обратив внимание на состояние кабеля электропитания и наличие соединения клемм блоков с общим контуром заземления.
2. Запрещается: а) включать ПЭВМ в питающую сеть со снятыми кожухами и другими явными дефектами; б) производить механическую перестановку блоков ПЭВМ; в) переключать кабели и отсоединять заземление; г) закрывать вентиляционные отверстия кожухов посторонними предметами; д) оставлять включенную ПЭВМ без наблюдения.
3. При возникновении любой нестандартной ситуации необходимо быстро обесточить ПЭВМ и немедленно сообщить об этом преподавателю или лаборанту.
Приложение.
Таблица 3. Машинные коды команд
КОМАНДА | БАЙТЫКОДА КОМАНДЫ | СИМВОЛИЧЕСКОЕ ОПИСАНИЕ И/ИЛИ СОДЕРЖАНИЕ | ||
B1 | B2 | B3-B6 | ОПЕРАЦИИ | |
КОМАНДЫОБЩЕГО НАЗНАЧЕНИЯ | ||||
MOV r,r/m r/m,r r/m,d r,d ac,m m,ac sr,r/m r/m,sr PUSH r/m R Sr POP r/m R Sr XCHG AX,r r,AX r,r/m m,r XLAT | 1000101W 1000100W 1100011W 1011Wreg 1010000W 1010001W 01010reg 000sr110 01011reg 000sr111 10010reg 10010reg 1000011W 1000011W | md reg r/m md reg r/m md 000 r/m data L disp L disp L md Osr r/m md Osr r/m md 110 r/m md 000 r/m md reg r/m md reg r/m | (disp8/16) (disp8/16) (disp8/16)d8/16 (data H) disp H (disp H) (disp8/16) (disp8/16) (disp8/16) (disp8/16) (disp8/16) (disp8/16) | ПЕРЕСЫЛКА r<-r/m r/m<-r r/m<-d r<-d ac<-m; прям. адр. m<-ac; прям. адр. sr<-r/m; запись в сегментный регистр r/m<-sr; чтение из сегментного регистра ЗАПИСЬ в стек ЧТЕНИЕ из стека ОБМЕН AX<->r r<->AX r<->r/m m<->r ПРЕОБРАЗОВАНИЕ байта из AL |
КОМАНДЫВВОДА-ВЫВОДА | ||||
IN ac,port ac,DX OUT ac,port ac,DX | 1110010W 1110110W 1110011W 1110111W | port8 port8 | ВВОД из фиксированного порта ВВОД из порта с косвенной адресацией ВЫВОД в фиксированный порт ВЫВОД в порт при косвенной адресации | |
КОМАНДЫПЕРЕСЫЛКИ АДРЕСА | ||||
LEA r16,m LDS r16,m32 LES r16,m32 | md reg r/m md reg r/m md reg r/m | (disp8/16) (disp8/16) (disp8/16) | ЗАГРУЗКА эффективного адреса r<-EA ЗАГРУЗКА указателя адреса r,DS<-m32 ЗАГРУЗКА указателя адреса r,ES<-m32 | |
КОМАНДЫПЕРЕСЫЛКИ ФЛАГОВ | ||||
LAHF SAHF PUSHF POPF | ПЕРЕСЫЛКА младшего байта F в AH ПЕРЕСЫЛКА АН в регистр F ЗАПИСЬ регистра флагов в стек ЗАГРУЗКА регистра флагов из стека | |||
КОМАНДЫСЛОЖЕНИЯ | ||||
ADD r,r/m r/m,r r/m,d r16/m16,d8 ac,d ADC r,r/m r/m,r r16/m16,d8 ac,d INC r/m r AAA DAA | 0000001W 0000000W 1000000W 0000010W 0001001W 0001000W 0001010W 1111111W 01000reg | md reg r/m md reg r/m md 000 r/m md 000 r/m data L md reg r/m md reg r/m md 010 r/m data L md 000 r/m | (disp8/16) (disp8/16) (disp8/16)d8/16 data L (data H) (disp8/16) (disp8/16) data L (data H) (disp8/16) | СЛОЖЕНИЕ r<-r+r/m r/m<-r+r/m r/m<-r/m+d r/m<-r/m+d ac<-ac+d СЛОЖЕНИЕ с переносом r<-r+r/m+CF r/m<-r+r/m+CF r/m<-r/m+d+CF ac<-ca+d+CF ИНКРЕМЕНТ r/m<-r/m+1 r<-r+1 ASCII-КОРРЕКЦИЯ для сложения ДЕСЯТИЧНАЯ КОРРЕКЦИЯ для сложения |
КОМАНДЫВЫЧИТАНИЯ | ||||
SUB r,r/m r/m,m r/m,d r16/m16,d8 ac,d SBB r,r/m r/m,r r/m,d r16/m16,d8 ac,d DEC r/m r NEG r/m CMP r,r/m r/m,r r/m,d r16/m16,d8 ac,d AAS DAS | 0010101W 0010100W 1000000W 0010110W 0001101W 0001100W 1000000W 0001110W 1111111W 01001reg 1111011W 0011101W 0011100W 1000000W 0011110W | md reg r/m md reg r/m md 101 r/m md 101 r/m data L md reg r/m md reg r/m md 011 r/m md 011 r/m data L md 001 r/m md 011 r/m md reg r/m md reg r/m md 111 r/m md 111 r/m data L | (disp8/16) (diso8/16) (disp8/16)d8/16 data L (data H) (disp8/16) (disp8/16) (disp8/16)d8/16 data L (data H) (disp8/16) (disp8/16) (disp8/16) (disp8/16) (disp8/16) data L (data H) | ВЫЧИТАНИЕ r<-r-r/m r/m<-r/m-r r/m<-r/m-d r/m<-r/m-d ac<-ca-d ВЫЧИТАНИЕ с заемом r<-r-r/m-CF r/m<-r/m-r-CF r/m<-r/m-d-CF r/m<-r/m-d-CF ac<-ac-d-CF ДЕКРЕМЕНТ r/m<-r/m-1 r<-r-1 СМЕНА знака числа СРАВНЕНИЕ r-r/m r/m-r r/m-d r/m-d ac-d ASCII-КОРРЕКЦИЯ для вычитания ДЕСЯТИЧНАЯ КОРРЕКЦИЯ для вычитания |
КОМАНДЫУМНОЖЕНИЯ | ||||
MUL r/m IMUL r/m AAM | 1111011W 1111011W | md 100 r/m md 101 r/m | (diap8/16) (disp8/16) | УМНОЖЕНИЕ без знака УМНОЖЕНИЕ со знаком ASCII-КОРРЕКЦИЯ для умножения |
КОМАНДЫДЕЛЕНИЯ | ||||
DIV r/m IDIV r/m AAD | 1111011W 1111011W | md 110 r/m mr 101 r/m | (diap8/16) (disp8/16) | ДЕЛЕНИЕ без знака ДЕЛЕНИЕ со знаком ASCII-КОРРЕКЦИЯ для деления |
КОМАНДЫРАСШИРЕНИЯ ЗНАКА | ||||
CBW CWD | ПРЕОБРАЗОВАНИЕ байта в слово ПРЕОБРАЗОВАНИЕ слова в двойное слово | |||
ЛОГИЧЕСКИЕ КОМАНДЫ | ||||
AND r,r/m r/m,r r/m,d ac,d OR r,r/m r/m,r r/m,d ac,d XOR r,r/m r/m,r r/m,d ac,d NOT r/m TEST r,r/m r/m,r r/m,d ac,d | 0010001W 0010000W 1000000W 0010010W 0000101W 0000100W 1000000W 0000110W 0011001W 0011000W 1000000W 0011010W 1111011W 1000010W 1000010W 1111011W 1010100W | md reg r/m md reg r/m md 100 r/m data L md reg r/m md reg r/m md 001 r/m data L md reg r/m md reg r/m md 110 r/m data L md 010 r/m md reg r/m md reg r/m md 000 r/m data L | (disp8/16) (disp8/16) data L data H (data H) (disp8/16) (disp8/16) (disp8/16)d8/16 (data H) (disp8/16) (disp8/16) (disp8/16)d8/16 (data H) (disp8/16) (disp8/16) (disp8/16) (disp8/16)d8/16 (data H) | КОНЪЮНКЦИЯ (И) r<-rÙr/m r/m<-rÙr/m r/m<-r/mÙd ac<-acÙd ДИЗЪЮНКЦИЯ (ИЛИ) r<-rÚr/m r/m<-rÚr/m r/m<-r/mÚd ac<-acÚd СУММИРОВАНИЕ ПО МОДУЛЮ 2 (исключающее ИЛИ) r<-rÅr/m r/m<-rÅr/m r/m<-r/mÅd ac<-acÅd (НЕ) ИНВЕРСИЯ r/m<-r/m ПРОВЕРКА (неразрушающее И) rÙr/m r/mÙr r/mÙd acÙd |
КОМАНДЫСДВИГА | ||||
SAL r/m,1 r/m,CL SHL r/m,1 r/m,CL SAR r/m,1 r/m,CL SHR r/m,1 r/m,CL | 1101000W 1101001W 1101000W 1101001W 1101000W 1101001W 1101000W 1101001W | md 100 r/m md 100 r/m md 100 r/m md 100 r/m md 111 r/m md 111 r/m md 101 r/m md 101 r/m | (diap8/16) (disp8/16) (diap8/16) (disp8/16) (diap8/16) (disp8/16) (diap8/16) (disp8/16) | АРИФМЕТИЧЕСКИЙ сдвиг влево ЛОГИЧЕСКИЙ сдвиг влево АРИФМЕТИЧЕСКИЙ сдвиг вправо ЛОГИЧЕСКИЙ сдвиг вправо |
КОМАНДЫЦИКЛИЧЕСКОГО СДВИГА | ||||
ROL r/m,1 r/m,CL ROR r/m,1 r/m,CL RCL r/m,1 r/m,CL RCR r/m,1 r/m,CL | 1101000W 1101001W 1101000W 1101001W 1101000W 1101001W 1101000W 1101001W | md 000 r/m md 000 r/m md 001 r/m md 001 r/m md 010 r/m md 010 r/m md 011 r/m md 011 r/m | (diap8/16) (disp8/16) (diap8/16) (disp8/16) (diap8/16) (disp8/16) (diap8/16) (disp8/16) | ЦИКЛИЧЕСКИЙ сдвиг влево ЦИКЛИЧЕСКИЙ сдвиг вправо ЦИКЛИЧЕСКИЙ сдвиг влево через CF ЦИКЛИЧЕСКИЙ сдвиг вправо через CF |
КОМАНДЫБЕЗУСЛОВНОЙ ПЕРЕДАЧИ УПРАВЛЕНИЯ | ||||
CALL NEAR sbr NEAR r16/m16 FAR sbr FAR m32 RET (NEAR) d(NEAR) (FAR) d(FAR) JMP SHORT label NEAR label FAR label NEAR r16/m16 FAR m32 | diff L md 010 r/m IP-L IP-H md 011 r/m data L data L diff L diff L IP-L IP-H md 100 r/m md 101 r/m | diff H (disp8/16) CS-L CS-H (disp8/16) data H data H diff H CS-L CS-H (disp8/16) (disp8/16) | ВЫЗОВ прямой IP<-IP+diff ВЫЗОВ косвенный IP<-IP+r/m ВЫЗОВ прямой IP<-IP-L,IP-H; CS<-CS-L,CS-H IP<-m16; CS<-m16 ВОЗВРАТ из подпрограммы ВОЗВРАТ с прибавлением константы к SP ВОЗВРАТ из подпрограммы ВОЗВРАТ с прибавлением константы к SP ПЕРЕХОД прямой короткий IP<-IP+diff IP<-IP+diff L длинный IP<-IP-L,IP-H CS<-CS-L,CS-H ПЕРЕХОД косвенный IP<-IP+r/m IP<-m16; CS<-m16 | |
КОМАНДЫУСЛОВНОЙ ПЕРЕДАЧИ УПРАВЛЕНИЯ | ||||
JA label JAE label JB label JBE label JC label JSXZ label JE label *JG label *JGE label *JL label *JLE label JNA label JNAE label JNB label JNBE label JNC label JNE label *JNG label *JNGE label *JNL label *JNLE label *JNO label JNP label *JNS label JNZ label *JO label JP label JPE label JPO label JS label JZ label | diff L diff L diff L diff L diff L diff L diff L diff L diff L diff L diff L diff L diff L diff L diff L diff L diff L diff L diff L diff L diff L diff L diff L diff L diff L diff L diff L diff L diff L diff L diff L | ВЫШЕ IP<-IP+diff L ВЫШЕ ИЛИ РАВНО IP<-IP+diff L НИЖЕ IP<-IP+diff L НИЖЕ ИЛИ РАВНО IP<-IP+diff L ЕСТЬ ПЕРЕНОС IP<-IP+diff L СХ РАВЕН НУЛЮ IP<-IP+diff L РАВНО IP<-IP+diff L БОЛЬШЕ IP<-IP+diff L БОЛЬШЕ-РАВНО IP<-IP+diff L МЕНЬШЕ IP<-IP+diff L МЕНЬШЕ-РАВНО IP<-IP+diff L НЕ ВЫШЕ IP<-IP+diffL НЕ ВЫШЕ И НЕ РАВНО IP<-IP+diff L НЕ НИЖЕ IP<-IP+diffL НЕ НИЖЕ И НЕ РАВНО IP<-IP+diff L НЕТ ПЕРЕНОСА IP<-IP+diff L НЕ РАВНО IP<-IP+diff L НЕ БОЛЬШЕ IP<-IP+diff L НЕ БОЛЬШЕ ИЛИ РАВНО IP<-IP+diff L НЕ МЕНЬШЕ IP<-IP+diff L НЕ МЕНЬШЕ И НЕ РАВНО IP<-IP+diff L НЕТ ПЕРЕПОЛНЕНИЯ IP<-IP+diff L НЕТ ЧЕТНОСТИ IP<-IP+diff L РЕЗ-Т ПОЛОЖИТЕЛЬНЫЙ IP<-IP+diff L НЕ НУЛЬ IP<-IP+diffL ПЕРЕПОЛНЕНИЕ IP<-IP+diff L ЕСТЬ ЧЕТНОСТЬ IP<-IP+diff L ПАРИТЕТ ЧЕТНЫЙ IP<-IP+diff L ПАРИТЕТ НЕЧЕТНЫЙ IP<-IP+diff L РЕЗ-Т ОТРИЦАТЕЛЬНЫЙ IP<-IP+diff L НУЛЬ IP<-IP+diff L | ||
Примечание: * - Команды действия над числами со знаком. | ||||
КОМАНДЫУПРАВЛЕНИЯ ЦИКЛАМИ | ||||
LOOP label LOOPE/LOOPZ label LOOPNE/ LOOPNZ label | diff L diff L diff L | ЗАЦИКЛИТЬ IP<-IP+diff L ЗАЦИКЛИТЬ, ЕСЛИ РАВНО IP<-IP+diff L ЗАЦИКЛИТЬ, ЕСЛИ НЕ РАВНО IP<-IP+diff L | ||
КОМАНДЫПРЕРЫВАНИЯ | ||||
INT type INTO IRET | ПРЕРЫВАНИЕ заданного типа ПРЕРЫВАНИЕ по переполнению ВОЗВРАТ из прерывания IP<-IP+diff L | |||
КОМАНДЫУПРАВЛЕНИЯ ФЛАГАМИ | ||||
STC CLC CMC STD CLD STI CLI | УСТАНОВКА флага переноса CF<-1 СБРОС флага переноса CF<-0 ИНВЕРСИЯ флага переноса CF<-CF УСТАНОВКА флага направления DF<-1 СБРОС флага направления DF<-0 РАЗРЕШЕНИЕ прерывания IF<-1 ЗАПРЕТ прерывания IF<-0 | |||
ВНЕШНЯЯ СИНХРОНИЗАЦИЯ | ||||
HLT WAIT ESC OPCODE,r/m LOCK NOP | 11011XXX | md YYYr/m | (disp8/16) | ОСТАНОВ ОЖИДАНИЕ ПЕРЕКЛЮЧЕНИЕ НА СОПРОЦЕССОР БЛОКИРОВКА ШИНЫ ХОЛОСТОЙ ХОД |
8. Контрольные вопросы.
|
|
|
1. Объяснить назначение каждого РОН в структуре МП.
2. Из каких полей состоит регистр флагов?
3. Какова организация памяти МП К1810ВМ86?
4. Для каких целей предназначены сегментные регистры?
5. Объяснить назначение регистров индексов и указателей.
6. Объяснить назначение полей в различных форматах команды МП.
7. Перечислить и объяснить методы прямой адресации.
8. Перечислить и объяснить методы косвенной адресации.
9. От чего зависит количество байт, занимаемых командой в ОЗУ?
10. Как организован стек в МП?
11. Из каких фаз состоит выполнение команды в МП?
12. Что такое базовый набор команд МП?
13. Провести классификацию основных команд МП.
14. Как вычисляется эффективный адрес?
15. Какие сочетания операндов исключены в команде MOV?
16. В чем особенность команд ввода-вывода?
17. Зачем необходимы арифметические команды с использованием флага переноса CF?
18. Указать особенности выполнения команд умножения и деления.
19. Когда возникает ситуация переполнения при операции деления?
20. В чем отличие арифметических команд от логических?
21. Каково назначение команды TEST?
22. В чем состоит отличие команд арифметического и логического сдвигов?
23. В чем состоит особенность команд циклического сдвига?
24. Указать выполняемые микропроцессором действия при вызове процедуры и выходе из нее.
25. Какие виды команд вызова процедуры существуют в МП?
26. Как вычисляется смещение в командах ветвления?
27. Как организовать циклы с предусловием и с послеусловием?
28. Какие действия выполняет МП при выполнении прерывания?
29. Почему время выполнения команд MUL и DIV много больше, чем время выполнения команды ADD?
30. Какие флаги можно устанавливать и сбрасывать?
31. Указать назначение команд HLT, WAIT, ESC, LOOK.
32. Каков максимальный уровень вложенности подпрограмм?
Литература.
1. Микропроцессорный комплект К1810: Структура, программирование, применение. - Справочник. /Под ред. Ю. М. Казаринова - М.: Высш. шк., 1990 - 269 с.
2. Скэнлон Л. Персональные ЭВМ IBM PC и XT. Программирование на языке ассемблера. - М.: Радио и связь, 1991. - 464 с.
3. Ю-Чжен Л., Г. Гибсон. Микропроцессоры семейства 8086/8088. Архитектура, программирование и проектирование микрокомпьютерных систем. - М.: Радио и связь, 1987. - 512 с.
4. Брэдли Д. Дж. Программирование на языке ассемблера для персональной ЭВМ фирмы IBM. /Под ред. А. А. Чижова - М.: Радио и связь, 1988. - 447 с.
5. Шнайдер Ол. Язык ассемблера для персонального компьютера фирмы IBM. /А. Шнайдер. Пер. с англ. под ред. Е. К. Масловского и др. - М.: Мир, 1988. - 405 с.
6. Абель П. Язык Ассемблера для IBM PC и программирования./Пер. с англ. Ю. В. Сальникова. - М.: Высш. шк., 1992. - 447 с.
7. Нортон П., Соухе Д. Язык ассемблера для IBM PC - М.: Изд. "Компьютер", финансы и статистика, 1992. - 352 с.
8. Юров В.,Хорошенко С. Assembler, Учебный курс – Санкт-Петербург: Изд.Питер, 1999.-666 с.