- •Щемелева т.К.
- •Архитектура и программирование реального режима микропроцессоров фирмы intel
- •Учебное пособие
- •Пермь 2001
- •Содержание
- •1.2.Переводы между позиционными системами счисления
- •1.3.Система кодирования символов ascii
- •1.4. Преобразование строки ascii-кодов в двоичное и шестнадцатеричное число
- •1.5. Применение систем счисления в эвм
- •1.6. Контрольные вопросы и задания
- •Тема 2. Представление данных на языке ассемблера и их хранение в памяти пк
- •2.1. Биты, байты и слова
- •2.3. Размещение различных типов данных в памяти пк
- •2.4. Отрицательные числа
- •2.5. Контрольные вопросы и задания
- •Тема 3. Элементы архитектуры персонального компьютера: сегментная память и регистровая структура микропроцессора
- •3.1. Понятие сегмента
- •3.2. Способ адресации ячеек сегментированной памяти
- •3.4. Программистская модель мп i8086. Назначение регистров.
- •Регистры общего назначения
- •Регистры сегментов и указатель команд
- •3.5. Контрольные вопросы и задания
- •Тема 4. Создание программы в ехе-формате
- •4.1. Программы на языке транслятораMasm.
- •4.1.1. Определение сегментов и данных.
- •4.1.2. Структура программы.
- •4.2. Программы на языке транслятораTasm.
- •4.2.1. Особенности транслятора.
- •4.2.2. Определение сегментов и данных .
- •4.2.3. Директива model.
- •4.2.4. Директивы упрощенного описания сегментов.
- •4.2.5. Структура программы.
- •4.2.6. Директивы startupcode и exitcode.
- •4.3. Контрольные вопросы и задания
- •Тема 5. Способы адресации данных в командах языка ассемблер
- •5.1. Регистровая адресация
- •5.2. Непосредственная адресация.
- •5.3. Прямая адресация.
- •5.4. Косвенная регистровая.
- •5.5. Адресация по базе.
- •5.6. Индексная адресация.
- •5.7. Адресация по базе с индексированием.
- •5.8. Контрольные задания.
- •Тема 6. Основные команды языка Ассемблер
- •6.1. Команды пересылки.
- •1) Пересылка данных
- •2) Пересылка адресов
- •4) Пересылка в стек и из стека
- •6.2. Арифметические операции.
- •2) Арифметические операции над двоичными кодами.
- •3) Команда сравнения:
- •6.3. Команды корректировки.
- •6.4. Команды логических операций.
- •1) Поразрядные логические операции:
- •2) Команды сдвига
- •6.5. Команды передачи управления.
- •6.6. Команды организации цикла.
- •6.7. Команды вызова процедур и возврата из них.
- •6.8. Команды прерываний и возврата из них.
- •6.8.1. Функции ввода/выводаDos.
- •6.8.2. ФункцииBios управления экраном.
- •Тема 7. Стек
- •7.1.Стек и сегмент стека
- •7.2.Стековые команды
- •7.3. Доступ к элементам стека
- •Тема 8. Практическая работа на пк.
- •Тема 9. Создание линейных программ
- •9.1 Создание линейной программы.
- •9.1.1. Составление текста программы.
- •9.1.2 Трансляция.
- •9.1.3. Создание исполняемого файла
- •9.1.4.Отладка программы в turbo debugger’е
- •9.2. Контрольные вопросы и задания
- •Тема 10. Организация ветвлений.
- •10.1.Флаги и их назначение.
- •10.2 Команда безусловного перехода jmp
- •10.3 Команды условных переходов
- •10.4. Создание разветвленной программы.
- •10.4.1. Составление текста программы.
- •10.4.2.Трансляция.
- •10.4.3. Создание исполняемого файла.
- •10.5. Контрольные вопросы и задания
- •Тема 11. Организация циклов
- •11.1. Команды управления циклом
- •11.2.Создание циклической программы.
- •11.2.1.Составление текста программы.
- •11.2.2.Трансляция.
- •11.2.3.Создание исполняемого файла
- •11.2.4.Отладка программы в turbo debugger’е
- •11.3. Контрольные вопросы и задания
- •Тема 12. Циклическая разветвленная программа
- •12.1.Создание программы.
- •12.1.1.Составление программы
- •12.1.2.Трансляция.
- •12.1.3.Создание исполняемого файла.
- •12.1.4. Отладка программы в turbo debugger’е
- •12.2.Контрольные вопросы
- •12.3. Контрольные задания
- •Тема 13. Связь ассемблера с языкомPascal.
- •13.1 Общие положения
- •13.2 Организация связи
- •13.3 Передача аргументов (и возврат результата в случае функции)
- •13.4 ДирективаArg
- •13.5 Использование операндов директивыmodel
- •13.6 Передача данных остальных типовPascal
- •13.7 Возврат значения в программу наPascal
- •13.8 КомандыEnter иLeave
- •13.9 Итоги
- •Листинг 1.2. Ассемблерное представление.
- •Тема 16. Рекомдации начинающему программисту
- •Тема 17. Контрольная работа
- •Список литературы
- •Приложение 1 Инструкция по работе с программой Turbo Debugger.
- •Приложение 2 Практическая работа на пк
- •Приложение 3 ключи командной строкиtasmиtlink
Пермский государственный технический университет
Кафедра ИТАС
Щемелева т.К.
Архитектура и программирование реального режима микропроцессоров фирмы intel
Учебное пособие
Пермь 2001
УДК 681.322
Архитектура и программирование реального режима микропроцессоров фирмы Intel:учебное пособие /Сост. Т.К.Щемелева; Перм. техн. ун-т. Пермь,2001. 96 c.
Содержит сведения об архитектуре микропроцессора I8086, инструментальной системе программирования Ассемблер, контрольные вопросы, упражнения и задания на программирование.
Для студентов специальностей «автоматизированные системы управления», «электронно-вычислительные машины, комплексы системы и сети».
Табл.12, ил.22. Библиогр.: 24 назв.
Содержание
Пермский государственный технический университет 1
СОДЕРЖАНИЕ 3
Тема 1. СИСТЕМЫ СЧИСЛЕНИЯ, ПРИМЕНЯЕМЫЕ В ЭВМ 4
Тема 2. ПРЕДСТАВЛЕНИЕ ДАННЫХ НА ЯЗЫКЕ АССЕМБЛЕРА И ИХ ХРАНЕНИЕ В ПАМЯТИ ПК 9
Тема 3. ЭЛЕМЕНТЫ АРХИТЕКТУРЫ ПЕРСОНАЛЬНОГО КОМПЬЮТЕРА: СЕГМЕНТНАЯ ПАМЯТЬ И РЕГИСТРОВАЯ СТРУКТУРА МИКРОПРОЦЕССОРА 13
Тема 4. СОЗДАНИЕ ПРОГРАММЫ В ЕХЕ-ФОРМАТЕ 20
Тема 5. СПОСОБЫ АДРЕСАЦИИ ДАННЫХ В КОМАНДАХ ЯЗЫКА АССЕМБЛЕР 34
Тема 6. Основные команды языка Ассемблер 40
Тема 7. СТЕК 55
Тема 8. Практическая работа на ПК. 58
Тема 9. СОЗДАНИЕ ЛИНЕЙНЫХ ПРОГРАММ 60
Тема 10. ОРГАНИЗАЦИЯ ВЕТВЛЕНИЙ. 64
Тема 11. ОРГАНИЗАЦИЯ ЦИКЛОВ 70
Тема 12. ЦИКЛИЧЕСКАЯ РАЗВЕТВЛЕННАЯ ПРОГРАММА 74
ТЕМА 13. СВЯЗЬ АССЕМБЛЕРА С ЯЗЫКОМ Pascal. 80
Тема 15. Создание Windows-приложения на ассемблере Каркасное Windows-приложение на языке С/С++. 92
Тема 16. РЕКОМДАЦИИ НАЧИНАЮЩЕМУ ПРОГРАММИСТУ 100
Тема 17. КОНТРОЛЬНАЯ РАБОТА 101
Список литературы 104
ПРИЛОЖЕНИЕ 1 105
Инструкция по работе с программой Turbo Debugger. 105
ПРИЛОЖЕНИЕ 2 111
Практическая работа на ПК 111
ПРИЛОЖЕНИЕ 3 115
КЛЮЧИ КОМАНДНОЙ СТРОКИ TASM И TLINK 115
Тема 1. СИСТЕМЫ СЧИСЛЕНИЯ, ПРИМЕНЯЕМЫЕ В ЭВМ
1.1.Понятие системы счисления
Система счисления (далее для краткости - СС) - это способ обозначения чисел. Множество символов (цифр), используемых для представления всех чисел, называется алфавитом СС. Например, алфавит десятичной СС – это десять цифр от 0 до 9. Размер алфавита равен основанию СС. Для десятичной СС основание равно десяти.
В ЭВМ применяются позиционные системы счисления, в которых вес цифры (т.е. ее значение в числе) определяется ее местом (позицией) в числе. Например, целое число в десятичной СС может быть представлено в виде многочлена:
Nn*10n+ Nn-1*10 n-1 + ... + N3*103+N2*102+N1*101+N0*100 (1)
где Nn , Nn-1 , ... ,N1 , N0 - это цифры от 0 до 9, а 10n, 10n-1, ... , 100 – это веса цифр в этом числе.
В ЭВМ применяют СС с недесятичным основанием, прежде всего двоичную и шестнадцатеричную. Принято обозначать числа в этих системах счисления буквами b и h соответственно.
1.2.Переводы между позиционными системами счисления
Для перевода чисел из одной CC в другую используются точные алгоритмы, основанные на применении многочлена (1) и арифметических операций умножения, деления, сложения. Однако перевод небольших чисел из десятичной СС в b-СС и обратно просто выполнить и устно, используя метод подбора цифр в разрядах многочлена.
1.2.1.Рассмотрим перевод из десятичной в двоичную СС. Для этого применим известный уже многочлен к b-СС:
... N5*25 + N4*24 + N3*23 + N2*22 + N1*21 + N0*20.
Еще удобнее выполнить операцию возведения в степень и получить:
... N5*32 + N4*16 + N3*8 + N2*4 + N1*2 + N0*1.
Если помнить, что все цифры N для b-СС может принимать одно из двух значений 0 или 1, то проще помнить многочлен типа: ... 32 + 16 + 8 + 4 + 2 + 1, или еще короче, ряд: ... 32, 16, 8, 4, 2, 1. Тогда перевод будет состоять в том, чтобы правильно определить, будет ли участвовать определенный вес из этого ряда в формировании b-числа или нет. Если да, то данному весу соответствует цифра «1», если нет – цифра «0».
1.2.2. Рассмотрим перевод из двоичной СС в десятичную, используя метод на примере числа 111000b:
1) Мысленно или письменно расставим веса всех разрядов двоичного числа
32 16 8 4 2 1
1 1 1 0 0 0
2) Сложим веса разрядов, которым в числе соответствуют «1» (такие веса являются множителями при цифрах «1»). Получим: 32+16+8=56, т.е. 111000b=56
1.2.3. Переводы между двоичной и шестнадцатеричной СС выполняются еще проще, т.к. основания этих СС связаны соотношением: 24 = 16. На практике для перевода чисел между системами счисления удобно использовать следующие алгоритмы:
1) Перевод b-числа в h-число осуществляется путем объединения двоичных цифр в группы по 4 и замены каждой группы ее 16-ричным эквивалентом, причем группы отсчитываются с младших разрядов числа, а старшую группу дополняют при необходимости нулями. Например, число 55 в b-коде имеет вид 110111b, переведя его в h-СС получим : 0110111b=37h
2) Перевод h-числа в b-число заключается в замене каждой 16-ричной цифры ее двоичным эквивалентом. Например, переведем число 37h. Для этого заменим цифры 3 и 7 так:
3 7 h
0011 0111b , т.е. 37h=00110111b=55