Архитектура ЭВМ. Архитектура
Скачать 392.83 Kb.
|
РОСЖЕЛДОР Федеральное государственное бюджетное образовательное учреждение высшего образования «Ростовский государственный университет путей сообщения» (ФГБОУ ВО РГУПС) ________________________________________________________________ А.В. Чернов, А.В. Тишина АРХИТЕКТУРА ИНФОРМАЦИОННЫХ СИСТЕМ Учебно-методическое пособие для выполнения лабораторных и практических работ Часть 1 Микропроцессоры INTEL 80X86 Ростов-на-Дону 2017 2 УДК 681.31(75.8) Чернов А.В. Архитектура информационных систем: [Электронный ресурс] учеб- но-методическое пособие. В 3 ч. Ч. 1. Микропроцессоры INTEL 80X86 /А.В. Чернов, А.В. Тишина; ФГБОУ ВО РГУПС. – Ростов н/Д, 2017. – 50 с. Учебно-методическое пособие предназначено для выполнения лабо- раторных и практических работ. Приводятся теоретические и методиче- ские рекомендации к выполнению работ по изучаемым темам. Рассмотре- ны принципы программирования и базовые приемы и на примере микро- процессоров семейства Intel 80х86. Приводится методика выполнения ра- боты, контрольный пример, варианты заданий. Предназначено для студентов направления подготовки 09.03.02 «Информационные системы и технологии» и 09.03.01 «Информатика и вычислительная техника» при изучении дисциплин «Архитектура инфор- мационных систем», «Архитектура вычислительных систем» и «Архитек- тура вычислительных и автоматизированных систем». Одобрено к внесению в «Электронный университет» кафедрой «Вычислительная техника и автоматизированные системы управления». ©Чернов А. В. 2017 ©Тишина А.В. 2017 © «Электронный университет» ФГБОУ ВО РГУПС, 2017 3 ВВЕДЕНИЕ Современный специалист в области создания программного обеспе- чения для вычислительной техники и автоматизированных систем должен обладать достаточными знаниями по использованию средств вычисли- тельной техники в организации и управлении процессами разработки про- граммного обеспечения. Низкоуровневое программирование позволяет четко усвоить принципы работы вычислительных машин и систем, а также их функциональных блоков, более рационально использовать их вычисли- тельную мощность при разработке конкретного вида программного обес- печения, с учётом его особенностей. Целью проведения лабораторных и практических работ является изучение студентами организации и принципов функционирования памя- ти, микропроцессора, организации ввода – вывода, а также приобретение навыков низкоуровневого программирования на языке ассемблера. Для выполнения работ требуются IBM совместимый персональный компьютер, операционная система Windows XP и выше, программный па- кет ассемблера TASM. Лабораторная работа 1 ОРГАНИЗАЦИЯ МИКРОСИСТЕМ НА БАЗЕ МИКРОПРОЦЕССОРОВ I8086 1.1. Цель работы Знакомство с принципами организации микросистем на базе МП i8086/80286 (далее МП86). Изучение архитектуры и программирования в машинных кодах МП86. Отработка навыков работы с турбоотладчиком TD. 1.2. Принципы организации микросистем на базе МП i8086 (К1810ВМ86) На рис. 1.1 приведена типовая структура микропроцессорных систем и микрокомпьютеров на базе 16-битного микропроцессора i8086 или К1810ВМ86. Микросистема содержит центральный процессор на основе МП i8086, память, подсистему ввода-вывода и логику управления систем- ной шиной, которая преобразует центральную магистраль Адрес/Данные (A/D) МП в раздельные шины адреса и данных. Такую структуру имеют 16-разрядные персональные компьютеры типа IBM PC/XT, Искра 1030, СМ1910, Mazovia CM1914 и др. 4 МП 8086 Логика управле ния сист шиной Память 1 МБайт ( ПЗУ , ОЗУ ) Подсистема ввода / вывода 64 КБайт A/D Упр 20 ША ШД ШУ 16 16 20 16 16 Рис. 1.1. Структура микросистемы на базе МП i8086 1.3. Структурная схема микропроцессора i8086 (рис. 1.2) В МП i8086 основные этапы выполнения команды распределены внутри МП между двух сравнительно независимых устройств (рис. 1.2): между операционным (ОУ) и устройством сопряжения (УС). ОУ содержит 16-битные регистры данных AX, BX, CX, DX, указатели памяти SP, BP, SI, DI, арифметико-логическое устройство АЛУ и регистр признаков F. Когда ОУ занято выполнением текущей команды, устройство сопряжения УС осуществляет опережающую выборку из памяти очеред- ных команд. Команды хранятся во внутренней регистровой памяти, назы- ваемой очередью (буфером) команд. Очередь команд по существу выпол- няет функцию регистра команд процессора. Длина очереди составляет 6 байт. 5 CM CS DS SS ES Регистр связи IP 6 5 4 3 1 2 Очередь команд Сегментные регистры Указ команд Устройство управле - ния А Л У AH AL BH BL CH CL DH DL SP BP SI DI Регистры данных Указатели F 20 Адрес / Данные 0 7 15 0 ОУ 16 Упр 0 19 УС AX BX CX DX Рис. 1.2. Структурная схема МП i8086 В состав УС входят 16-битные сегментные регистры CS, DS, SS и ES и сумматор CM, который формирует 20-битный физический адрес сегмен- та (базы) и смещения, называемого также эффективным (исполнительным) адресом EA. Это делается путём суммирования EA с содержимым сег- ментного регистра, сдвинутого относительно EA на 4 бита, как показано на рис. 1.3. 6 Сегментн адрес Эффект адрес EA СМ Физический адрес x2**4 Адрес =123A0 =157BB Память Операнд Сегмент 64 К =341B Рис. 1.3. Схема вычисления физического адреса Если, например, содержимое сегментного регистра данных DS=123A, а указатель памяти SI=341B, то физический адрес операнда в памяти будет равен 157ВВ. Пример 1.1 + 1 2 3 A 0 – начальный адрес сегмента данных DS ⋅ 2 4 3 4 1 B – эффективный адрес в SI 1 5 7 B B – физический адрес операнда в памяти 1.4. Программная модель МП (рис. 1.4.) В программной модели МП (рис. 1.4) можно выделить следующие 4 группы регистров. 1. Регистры данных В зависимости от того, чем оперирует команда – словами или байта- ми, регистры данных можно рассматривать как четыре 16-битных (AX, CX, BX, DX) или как восемь 8-битных регистров (AL, AH, CL, CH, BL, BH, DL, DH). Символы L и H означают младшие и старшие байты 16- битных регистров. Каждый из этих регистров помимо общих выполняет и специализированные функции: AX, AL – аккумулятор; BX – базовый ре- гистр (для косвенной адресации памяти); CX – счетчик в операциях с це- почками; DX – регистр данных или указатель при косвенной адресации ре- гистров (портов) ввода/вывода. 7 AH AL BH BL CH CL DH DL SP BP SI DI CS DS SS ES F IP 7 15 8 0 Аккумулятор Базовый рег Счётчик Регистр данных Указатель стека Указатель базы Индекс источн Индекс приемн Рег сегмента команд Рег сегмента данных Рег сегмента стека Рег доп сегмента Указ команд Рег признаков Регистры указатели Регистры сегментов Регистры данных AX BX CX DX Рис. 1.4. Программная модель МП i8086 2. Регистры сегментов CS, DS, SS, ES Как уже отмечалось ранее, память микросистемы на базе МП86 со- держит сегменты памяти по 64 Кбайт. МП может иметь дело одновремен- но с четырьмя типами сегментов: кода (команд), стека, данных и дополни- тельного сегмента данных. Сегментные регистры выполняют следующие функции. Регистр сегмента команд CS указывает на сегмент, содержащий те- кущую выполняемую программу. Для вычисления адреса следующей (с учётом очереди команд) исполняемой команды к содержимому CS, умноженному на 2 4 , добавляется содержимое указателя команд IP. Регистр сегмента стека SS указывает на текущий сегмент стека. Регистр сегмента данных DS указывает на текущий сегмент данных, обычно содержащий используемые программой данные. Регистр дополнительного сегмента ES указывает на текущий допол- нительный сегмент, который используется для выполнения операций над строками. 3. Регистры указателей SP, BP и индексов DI, SI Регистры предназначены для хранения внутрисегментных смещений и обеспечивают косвенную адресацию данных в пределах текущего сегмен- та. Эти же регистры могут участвовать в выполнении арифметических и логических операций над двухбайтными данными, т.е. используются при этом как регистры данных. Поэтому данную группу регистров и регистры 8 данных относят к регистрам общего назначения (РОН). Указатели стека SP и базы BP предназначены для доступа к данным в текущем сегменте стека. Индексные регистры DI (приёмника), SI (источника), а также регистр BX содержат смещение, которое по умолчанию относятся к сегменту данных (DS). В операциях с цепочками данных указатель DI по умолчанию отно- сится к дополнительному сегменту (ES). Указатель команд IP адресует следующую команду программы (разумеется, с учётом очереди команд) в сегменте кодов (CS). Этот регистр ведёт себя как программный счётчик PC в 8-битном МП К580ВМ80 (i8080). 4. Регистр признаков F Формат 16-битного регистра признаков F показан на рис. 1.5. 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 X X X X OF DF IF TF SF ZF X AF X PF X CF Признаки (флажки): OF – переполнение, DF, IF, TF – признаки управления МП, SF – знак, ZF – нуль, AF – вспомогательный перенос, PF – четность, CF – перенос. Рис. 1.5. Формат регистра признаков Младший байт регистра полностью соответствует регистру призна- ков МП К580ВМ80. Кроме того, в старшем байте F содержится признак арифметического переполнения OF. В дополнение к этому в регистре при- знаков F фиксируются некоторые признаки, предназначенные для управ- ления работой МП. DF – признак направления, указывающий на то, что обрабатываются цепочки: либо от меньших адресов к большим (DF=0), либо наоборот (DF=1). IF – признак прерывания: при IF=1 прерывание раз- решено. TF – признак трассировки, разрешающий при TF=1 выполнять программу по командам (пошаговый режим). 1.5 Адресная организация памяти, представление данных МП i8086 обеспечивает адресацию памяти ёмкостью 2 20 =1 Мбайт. На программном уровне память представляют как линейную последователь- ность из 2 20 байт =1 Мбайт (рис. 1.6). 9 Память Физ. адрес 7 0 00000 1А Байт 1А по адресу 00000 00001 2В Слово 3С2В по адресу 00001 00002 3С 00003 4В Байт 4В по адресу 00003 00004 50 Двойное слово FFFF6F50 по адресу 00004 00005 6F 00006 FF 00007 FF ХХ ХХ FFFFF ХХ Рис. 1.6. Адресная организация памяти Два смежных байта образуют слово. Слово может храниться по чет- ному или нечетному адресу. В первом случае слово передается за один цикл шины МП, а во втором – за два. Следовательно, для достижения наивысшей производительности МП необходимо слова размещать по четным адресам памяти. При этом адре- сом слова считается адрес его младшего байта, а старший байт размещает- ся по более старшему адресу. Принцип “Младшее по младшему адресу” сохраняется и для представления других единиц данных: многобайтных команд, двойных слов и т.д. Отметим, что выравнивание команд по четным адресам практически не влияет на производительность МП, т. к. он выбирает их в очередь ко- манд с опережением. Двойное слова содержит 4 байта, а квадрослово – 8. 1.6. Примеры форматов команд МП i8086 Примеры форматов команд с регистровой (1, 5, 6) , непосредственной (2, 7, 8) и прямой (3, 4) адресацией приведены на рис. 1.7. В обобщенном представлении команд, например ADD reg1,reg2, по- сле мнемоники команды указывается приемник, а затем через запятую – источник операнда. В байтах data L, data H команды указываются младшая и старшая части (если W=1) константы соответственно. Во всех командах содержится однобитное поле W: если W=1, то ко- манда оперирует словом, если W=0, то – байтом. В поле reg (или reg1, reg2, r/m) команд указываются трехбитные ад- реса РОНов МП. В табл. 1.1 приведены адреса регистров МП для различ- ных значений W. 10 1. Передача регистр – регистр MOV reg1,reg2 1-й байт 2-й байт 3-й байт 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 1 0 0 0 1 0 1 w 1 1 reg1 reg2 2. Передача константы в регистр MOV reg,data 1 0 1 1 w reg Data L Data H ,если w=1 3. Передача из памяти в аккумулятор MOV acc,[EA] 1 0 1 0 0 0 0 w Мл. часть ЕА Ст. часть ЕА 4. Передача из аккумулятора в память MOV [EA],acc 1 0 1 0 0 0 1 w Мл. часть ЕА Ст. часть ЕА 5. Сложить регистр – регистр ADD reg1,reg2 0 0 0 0 0 0 1 w 1 1 reg1 reg2 6. Вычесть регистр – регистр SUB reg1,reg2 0 0 1 0 1 0 1 w 1 1 reg1 reg2 7. Сложить константу с аккумулятором ADD acc,data 0 0 0 0 0 1 0 w Data L Data H ,если w=1 8. Вычесть константу из аккумулятора SUB acc,data 0 0 1 0 1 1 0 w Data L Data H ,если w=1 Рис 1.7. Примеры форматов команд с регистровой, непосредственной и прямой адресацией Таблица 1.1. Адреса регистров МП Адрес регистра reg, r/m Регистр W=1 W=0 000 001 010 011 100 101 110 111 AX CX DX BX SP BP SI DI AL CL DL BL AH CH DH BH 11 Рассмотрим примеры кодирования команд. Пример 1.2. Команды передачи Код команды Мнемоника Операция 10001011 MOV AX,BX AX BX 11000011 10001010 MOV AH,BH AH BH 11100111 BA MOV DX,02A7H DX 02A7H A7 02 A1 MOV AX,[1027H] AX [1027H] 27 10 1.7. Пример разработки программы в машинных кодах При программировании на машинном языке адреса, коды команд и данные записываются в 16-ричной системе счисления. Разработаем программу для вычисления выражения M=K+N-R +120, (1.1) в котором все операнды и результат – двухбайтные данные. K, R, M раз- мещены в сегменте данных, а N – в регистре DX. Числа со знаком пред- ставлены в дополнительном коде (ДК). Например, ДК чисел K=+60, R=-10, N=+30 соответственно равны [K] ДК =0060, [R] ДК =FFF0, [N] ДК =0030. Резуль- тат M=+1C0, [M] ДК =01C0. Правило образования ДК. ДК положительного числа есть само число, представленное в формате байта или слова. ДК отрицательного числа есть инверсия (not) числа плюс единица, например в формате слова [-30] ДК =not(0030)+1=FFCF+1=FFD0. Инверсия 16-ричной цифры равна: not( α )=F – α В табл. 1.2 приведена программа вычисления выражения (1.1). Начальный эффективный адрес программы равен 100. Этому адресу соот- ветствует физический адрес CS ⋅ 2 4 +100. Далее его будем обозначать как CS:0100. Эффективные адреса данных лежат в диапазоне 0500-0505, а фи- зические – в диапазоне DS:0500 - DS:0505. 12 Таблица 1.2. Программа вычисления выражения M=K+N-R+120 Адрес Код Мнемоника Операция CS:0100 A1 MOV AX,[0502H] АX R 0101 02 0102 05 0103 2B SUB DX,AX DX N-R 0104 D0 0105 A1 MOV AX,[0500H] AX K 0106 00 0107 05 0108 03 ADD AX,DX AX K+N-R 0109 C2 010A 05 ADD AX,0120H AX AX+120 010B 20 010C 01 010D A3 MOV [0504H],AX [0504] M 010E 04 010F 05 0110 90 NOP Пустая операция Адреса данных Данные в ДК DS:0500 60 K=0060 Операнд K=+60 0501 00 0502 F0 R=-0010 Операнд R=-10 0503 FF 0504 XX M=XXXX Результат M 0505 XX РОН Данные DX 0030 N=0030 Операнд N=+30 1.8. Отладчик TD Отладчик TD – это системная программа, находящаяся на диске ПЭВМ. Отладчик позволяет управлять процессом исполнения пользова- тельской программы. Команды TD, вводимые с клавиатуры ПЭВМ, позво- ляют выводить на экран и изменять содержимое памяти и регистров МП, исполнять программу по шагам (командам) и др. Команды отладчика бу- дут рассмотрены при выполнении работ. 13 1.9. Варианты заданий Таблица 1.3. Варианты заданий № варианта задания Размещение операндов Длина операн- да Нач. адр. прогр. M K R N 1.M=K+R+2N-3 Память BH Байт 100 2.M=K-R-N+50 Память DX Пам. Слово 100 3.M=2K-N+R-6 Пам. CL Память Байт 100 4.M=K+3N-R+20 Память DX Слово 100 5.M=K-R-N+8 Память CL Пам. Байт 100 6.M=2K-R+N+18 Пам. DX Память Слово 100 7.M=2K-2R+N-10 Память DL Пам. Байт 100 8.M=120-K-R+N Пам. CX Память Слово 100 9.M=20+K-2R+N Память CH Байт 100 10.M=500+K-2R+N Пам. BX Память Слово 100 1.10. Порядок выполнения работы Ниже изучаются команды программы Norton Commander и отладчика TD персональной ЭВМ, с помощью которых осуществляются ввод и от- ладка программ в машинных кодах микропроцессора МП86. В качестве примера используется программа вычисления выражения M=K-R+N+120, приведенная в табл. 1.2. Создание исходного файла программы 1. Для создания в системе Norton Commander (NC) нового файла про- граммы последовательно выполните пп. 2-4, при корректировке файла – пп. 5-7. Вызов системы производится командой nc. 2. При нажатой клавише Shift нажмите клавишу F4 – программа NC выдаст запрос. Введите в нем имя файла и его расширение txt и нажмите Enter ( ↵ ). Например, petrov.txt ↵ . Еще раз нажмите Enter и попадете в NC. 3. С помощью команд встроенного редактора NC наберите программу (табл. 1.2) в машинных кодах: a1 0205 2bd0 a1 0005 03c2 05 2001 a3 0405 90 14 4. Чтобы сохранить созданный файл на диске, нажмите F2, а затем F10 – вы выйдете из редактора. 5. Если потребуется скорректировать или дополнить известный файл, то в панели системы NC курсором выделите имя этого файла и нажмите F4 – вы попадете в редактор с вызванным файлом. 6. С помощью команд редактора NC скорректируйте исходный файл. Например, перед машинной командой 90 введите еще несколько кодов 90 (пустая операция NOP). 7. Чтобы сохранить созданный файл на диске, нажмите F2, а затем F10 – вы выйдите из редактора. Выделенный в панели NC файл можно распечатать на принтере, если нажать F5 – копировать, а затем при ответе на запрос ввести PRN (прин- тер) и нажать ↵ |