- •Федеральное агентство по образованию
- •В.Н. ЛОКТЮХИН
- •Рязань 2008
- •Печатается по решению редакционно-издательского совета Государственного образовательного учреждения высшего профессионального образования «Рязанский государственный университет имени С.А. Есенина» в соответствии с планом изданий на 2008 год.
- •ВВЕДЕНИЕ
- •1.1. Системы счисления, применяемые в ЭВМ
- •1. Двоичная система счисления
- •2. Шестнадцатеричная система счисления
- •1.5. Кодирование алфавитно-цифровой информации
- •Представление чисел в ЭВМ
- •Форматы (формы представления) числовых данных в МП
- •3. Представление многобайтовых двоичных чисел
- •4. Представление чисел с плавающей точкой (ПТ)
- •1.7.2. Сложение двоичных чисел в ЭВМ
- •Рис. 2.2. Формат регистра признаков
- •2.1.2. Модели доступа к памяти в реальном и защищенном режимах работы процессора, поддержка многозадачности
- •Формат команды и способ адресации как элементы программной архитектуры и ассемблера
- •3. ОСНОВЫ РАЗРАБОТКИ И ОТЛАДКИ ПРОГРАММ НА ЯЗЫКЕ АССЕМБЛЕРА IBM PC
- •В таблице 3.1 приведены примеры записи в программах директив ассемблера tasm.exe фирмы Borland.
- •Таблица 3.1
- •Примеры записи директив ассемблера tasm
- •Пример 3.4
- •Пример 3.5
- •.MODEL
- •3.3.1. Разновидности программного обеспечения для разработки программ на языке ассемблера
- •3.3.3. Порядок ввода и отладки программы (пример 3.4) с исполняемым com-модулем
- •Создание исполняемого модуля
- •Порядок разработки программы
- •Пример 3.6
- •Ассемблирование
- •Создание исполняемого модуля
- •Выполнение и отладка программы
- •3.8. Программирование обработки цепочек данных
- •ПРИЛОЖЕНИЯ
- •Приложение 1
- •Варианты заданий к практическим занятиям по представлению данных и выполнению арифметико-логических операций в ЭВМ
- •Приложение 2
- •Приложение 3
- •Приложение 4
- •Приложение 6
- •Таблица сложения 16-ричных цифр (символов)
- •Приложение 8
- •Базовая система команд МП 80Х86 (или 8086)
- •ОГЛАВЛЕНИЕ
- •ВВЕДЕНИЕ………………………...………...……………………......
- •Системы счисления, применяемые в ЭВМ……...………………
- •Перевод из десятичной в q-ичную систему счисления.....……
- •Перевод из q-ичной в десятичную систему счисления….....…
- •ПРИНЦИПЫ ДОСТУПА К ПАМЯТИ. ФОРМАТЫ КОМАНД И РЕЖИМЫ АДРЕСАЦИИ В МП 80Х86…………………...….....
- •Регистры и модели доступа к памяти. Поддержка многозадачности в защищенном режиме работы МП………..
- •Приложение 1. Варианты практических заданий по представлению данных и выполнению арифметико-логических операций в ЭВМ..
- •Приложение 5. Варианты заданий по обработке цепочек…………..
- •Приложение 6. Таблица сложения 16-ричных цифр (символов)……
- •Приложение 7. Темы практических занятий и лабораторных работ
- •Приложение 8. Базовая система команд МП 80х86 (или 8086)….....
- •архитектура
- •Книга 2
Управляет процессом отладки программ и является инструментом для поиска логических ошибок в выполняемой программе.
Далее для примера 3.4 приводится порядок ее создания (редактирования), трансляции и отладки.
3.3.3. Порядок ввода и отладки программы (пример 3.4) с исполняемым com-модулем
Создание исходного файла программы
1. Находясь в системе (оболочке), например Norton Commander, Total Commander или другие, при нажатой клавише Shift нажмите клавишу F4 – система выдаст запрос. Введите в нем имя файла и его расширение .asm (например, petrov.asm) и нажмите Enter ( ) – вы войдете в редактор. Наберите в нем программу (пример 3.4) на языке ассемблера. Специально допустите 2–3 ошибки. Далее при трансляции эти ошибки будут обнаружены, и вы их исправите.
2.Сохраните введенный текст – для этого используйте в оболочке функции его меню или нажмите клавишу F2 (Сохранить), а затем F10 (Выйти).
3.Если требуется скорректировать или дополнить известный файл, то в панели оболочки курсором выделите имя этого файла и нажмите F4 – вы попадете в редактор с вызванным файлом. Чтобы его сохранить после коррекции, используйте в оболочке функции его меню или нажмите F2 (Сохранить), а затем F10 (Выйти).
Ассемблирование
4. С помощью команды
tasm.exe <имя файла>.аsm, ,
введенной в командной строке оболочки, запустите ассемблер. Не забудьте ввести две запятые.
Сформированные в результате ассемблирования объектный модуль программы и ее листинг записываются на диск соответственно в виде файлов с расширением .obj и .lst.
5. Повторите действия 3–4, если эти файлы в результате ассемблирования не получены, это объясняется наличием грубых (фатальных) ошибок в исходном файле. Например, в тексте программы допущены ошибки в наборе обозначений директив.
Если в результате трансляции сформирован только файл с расширением .lst, то это означает, что в программе имеют место несуществен-
61
ные синтаксические ошибки, например возникшие при наборе мнемоник команд. В этом случае перейдите к пункту 6.
6. Выделите файл с расширением .lst и нажмите клавишу F3 или F4. С помощью клавиш перемещения курсора просмотрите весь листинг и зафиксируйте в нем ошибки и их тип. Листинг содержит последовательность строк, отображающих коды команд и соответствующие им мнемоники. С помощью функций меню оболочки, или, нажав клавишу Esc, выйдите из режима просмотра. Для коррекции текста программы (файл с расширением .asm) и ее последующего ассемблирования повторяйте действия 3–6 до тех пор, пока не будут получен объектный модуль программы с расширением .obj.
При этом для примера 3.4 коды команд в листинге должны полностью соответствовать последовательности кодов, полученных путем их ручного кодирования (см. табл. 2.2) для решения одной и той же задачи (2.1), что говорит о правильности их получения, а также показывает работу ассемблера по принципу «один к одному».
Создание исполняемого модуля
7. Вызовите компоновщик (редактор связей), для чего введите tlink.exe /t/x <имя файла>.obj
С помощью опции t компоновщику задано сформировать соmфайл, а х – не генерировать mар-файл исполняемой программы. После выполнения tlink будет создан исполняемый соm-модуль, который может быть использован далее для его выполнения (или отладки).
Выполнение и отладка программы
8. С помощью команды
td.exe <имя файла>.com
запустите отладчик для работы с созданным соm-файлом программы. Отладчик загрузит в память исполняемый модуль с адреса 100h, причем коды программы и данных разместятся в одном сегменте кода емкостью 64 Kбайт. После загрузки отладчик выдаст на экран монитора окно процессора CPU.
9. Нажав ENTER, снимите марку отладчика. На экране изобразится окно отладчика CPU, состоящее из пяти подокон: кодового сегмента, содержащего коды команд программы и их мнемоники; регистров микропроцессора; регистров флажков; сегмента стека; сегмента данных. Переход из одного подокна в другое осуществляется нажатием клавиши Tab или щелчком левой кнопки мышки.
62
Находясь в подокне, можно, нажав Alt–F10, войти в локальное подменю. С помощью его команд можно изменить содержимое регистров МП или памяти. Нажав F10, можно войти в главное меню отладчика и воспользоваться его командами для управления выполнением программы. Выход из меню производится клавишей Esc.
Ниже рассматриваются основные команды отладчика для отладки программ с помощью окна процессора CPU.
10. Запись в регистр. Нажав клавишу Tab, перейдите в подокно регистров. Если вы вводите данные в регистр DX, подведите маркер к регистру DX, введите с клавиатуры код 30h и нажмите ENTER. Тем самым вы ввели в DX операнд N = 0030h. При вводе 16-ричных кодов необходимо, чтобы первый символ начинался с цифры, например 0FFFFh.
11. Запись в память. Перейдите в подокно сегмента данных. Нажав Alt-F10, вызовите для данного подокна локальное меню. Выберите в нем команду GOTO и нажмите ENTER. Далее введите с клавиатуры начальный адрес данных ds:0500h .
Если исходная программа работает с данными в формате слова, то с помощью клавиш Ctrl–D войдите в подменю и задайте в нем формат WORD (слово). В подокне после адреса ds:0500h вы увидите значения операндов в ДК – они оказались в сегменте данных памяти (DS) в результате работы ассемблера и других системных программ.
Модификация содержимого памяти. Маркером выделите нужную ячейку памяти и введите с клавиатуры необходимый операнд в ДК, например, 0004, по адресу ds:0500. Затем переместите маркер на следующую ячейку и введите в нее значение следующего операнда, например, код 0FFFF, отражающий число –1.
12. Перейдите в подокно кодов (программы). В нем изображаются дизассемблированные команды выполняемой программы, причем текущая команда помечается стрелкой. Для управления выполнением программы используют следующие основные команды, вызываемые активными клавишами:
F7 |
Выполнение одной команды |
F8 |
Выполнение одной команды с пропуском вызовов |
F9 |
Запуск программы в автоматическом режиме |
F4 |
Выполнение команд до точки останова |
Ctrl–F2 |
Установка программы в исходное состояние |
F2 |
Установка/отмена точки останова |
63
