Assembler

Приложение С. bat файл для компиляции и выполнения программ

Приложение С. .bat файл для компиляции и выполнения программ

     @echo off
     cls
rem удаление результатов предыдущей компиляции, если таковы были
     if exist "%1.obj" del "%1.obj"
     if exist "%1.exe" del "%1.exe"

rem компиляция (ассемблирование) исходного кода с получением листинга
     c:\ASSEMBLER\masm %1.asm,%1.obj,%1.lst
     if errorlevel 1 goto ErrAsm

rem редактирование объектного кода, получение исполняемой программы
     if %2.==. goto TheLink
     c:\ASSEMBLER\link %1.obj,,,%2.lib;
     goto IfLinkError

:TheLink
     c:\ASSEMBLER\link %1.obj;
:IfLinkError
     if errorlevel 1 goto ErrLink
     dir "%1.*"
     echo Press Enter to continue ­ Нажми Ввод для продолжения
     Pause
     goto TheExe

:ErrLink
     echo _
     echo Link error – Ошибка редактирования
     goto TheEnd

:ErrAsm
     echo _
     echo Assembly Error – Ошибка ассемблирования
     goto TheEnd

:TheExe
     %1

:TheEnd

Pause

Замечание. Курсивом отмечен путь к компилятору и редактору связей. Предполагается, что .bat файл находится в том же каталоге, что и файл с исходной программой. Результаты попадут в тот же каталог. Пример запуска на компиляцию и выполнение программы в файле progr.asm: <имя_bat_файла>.bat progr (имя файла задано без расширения). В случае создания программы с использованием библиотеки bib.lib запуск может выглядеть следующим образом: <имя_bat_файла>.bat progr, bib.

Работа с отладчиком Turbo Debugger (TD)

Приложение B. Работа с отладчиком Turbo Debugger (TD)

Для запуска программы под управлением отладчика необходимо с клавиатуры ввести команду TD prog.exe. На экране появится окно отладчика:tdebugger

Горячие клавиши отладчика:

Alt+F2                   – Установка точки останова.

F2                          – Снятие точки останова.

Alt + F3                 – Закрыть окно.

F4                          – Выполнить программу до заданной точки.

Alt + F4                 – Back Trace.

F5                          – ZOOM окна.

Alt + F5                 – Просмотр окна выполнения программы.

F7                          – Trace Into, шаг отладки с углублением в подпрограммы.

F8                          – Step Over, полный шаг отладки без углубления в подпрограммы.

F9                          – Run, запуск тестируемой программы на выполнение;
.                                запуск после точки останова.

Ctrl + NumLock   – Прервать выполнение тестируемой программы,
.                                   запущенной по команде RUN.

F10                        – Главное меню.

Tab, Shift + Tab   – Переход к следующему/предыдущему окну.

A..Z                        – Ввод команд Ассемблера в тело тестируемой

.                                  программы по адресу в позиции курсора.

Ctrl + G                 – Задать начальный адрес интересуемой области памяти

Ctrl+C                   – Изменение данных в регистре или ячейке памяти

Ctrl+D                   – При редактировании ячейки памяти можно установить
.                                 тип: byte, word и т.д.

Ctrl+S                   – Поиск необходимой инструкции или содержимого
.                                 ячейки памяти

Alt + X                  – Выход из отладчика в DOS.

Комментарии к рисунку:

Все числа в команде представлены в шестнадцатеричном виде. Все метки и переменные представлены своими смещениями

Картина окна кода состоит из трех столбцов:

  1. Адрес. Смещения команд относительно начала сегмента.
  2. Машинный код команд.
  3. Исходный текст программы на языке Ассемблера.

Картина содержимого памяти (зона данных) состоит из двух частей:

  1. Шестнадцатеричная часть. Каждый байт выводится в виде шестнадцатеричного числа.
  2. Часть ASCII. Байты выводятся в виде символов ASCII.
  3. При размещении данных в памяти младшие байты располагаются по младшим адресам, а старшие по старшим. Отладчик показывает память от младших адресов к старшим, поэтому данные, определенные, например, как

dw  1234h, 5678h, dd  9ABCDEF1h

dt 10201234567890ABCDEFh

пользователь увидит, как это показано на нижеследующей схеме.

Mem1Размещение данных в памяти

Вопросы по курсу Архитектура ПЭВМ и Ассемблер. Часть 2.

Вопросы по курсу Архитектура ПЭВМ и Ассемблер. Часть 2.

  1. Режимы адресации. Понятие относительного адреса (символические адреса). Примеры использования различных способов адресации.
  2. Классификация команд.  команды пересылки данных: общего назначения, ввода-вывода, пересылки адреса, пересылка флагов.
  3. Арифметические команды: сложения, вычитания, сравнения, умножения, деления, расширения знака.
  4. Команды манипулирования битами логические команды (AND, OR, XOR, NOT, TEST), сдвига (SAL, SAR, SHL, SHR, ), циклического сдвига (ROL, ROR, RCL, RCR).
  5. Команды обработки строк: пересылка (MOVS), сравнение (CMPS), сканирование (SCAS), загрузка (LODS), сохранение(STOS), префиксы повторения (REP, REPE/REPZ, REPNE/REPNZ).
  6. Команды безусловного перехода  JMP. Команды условной передачи управления. Команды управления циклами (LOOP, LOOPE/LOOPZ, LOOPNE/LOOPNZ).
  7. Процедуры в языке ассемблера. Описание процедур. Команды вызова процедур. Команда возврата из процедуры. Косвенные вызовы процедур. Вложенные процедуры.
  8. Передача аргументов через регистры. Передача аргументов через общую область памяти. Передача аргументов через стек. Использование директив extrn и public. Возврат результата из процедуры.
  9. Макросредства языка Ассемблера. Псевдооператоры equ и =. Макрокоманды. Макрорасширения.Библиотеки макроопределений. Задание макроопределений в исходных программах.
  10. Макродирективы: WHILE, REPT, IRP и IRPC, IRP и IRPC, EXITM и GOTO.
  11. Директивы условной компиляции. Директивы IF и IFE — условная трансляция по результату вычисления логического выражения. Директивы IFDEF и IFNDEF — условная трансляция по факту определения символического имени.
  12. Директивы условной компиляции. Директивы IFB и IFNB — условная трансляция по факту определения фактического аргумента при вызове макрокоманды.
  13. Директивы условной компиляции. Директивы IFIDN, IFIDNI, IFDIF и IFDIFI — условная трансляция по результату сравнения строк символов.
  14.  Константные выражения в условных директивах. Директивы генерации ошибок: .ERR. Условная генерация пользовательской ошибки: .ERRB (.ERRIFB) и .ERRNB (.ERRIFNB), ERRDEF (.ERRIFDEF) и .ERRNDEF (.ERRIFNDEF),.ERRDIF (.ERRIFDIF) и .ERRIDN (.ERRIFIDN), ERRE (.ERRIFE) и .ERRNZ (.ERRIF).
  15. Дополнительное управление трансляцией. Директивы DISPLAY,  %OUT и LOCAL.
  16. Сложные структуры данных. Структуры. Описание шаблона структуры. Объединения. Записи. Определение экземпляра записи. Работа с записями.
  17. Команды управления микропроцессором. Команды управления флагами. Команды внешней синхронизации. Команда холостого хода.
  18. Прерывания работы микропроцессора. Внешние прерывания. Векторы прерывания. Маскируемые и немаскируемые прерывания. Внутренние прерывания. Команды прерывания.
  19. Связь разноязыковых модулей Интерфейс между языком C и Ассемблером. Ассемблер, встроенный в C. Передача параметров между модулями. Вызов исполняемых модулей.
  20. Программирование в защищенном режиме. Системные регистры микропроцессора. Структуры данных защищенного режима. Пример программы защищенного режима.

Вопросы по курсу Архитектура ПЭВМ и Ассемблер. Часть 1.

Вопросы по курсу Архитектура ПЭВМ и Ассемблер.  Часть 1.

  1. Понятие о микрокомпьютерах. Отличительные особенности этого класса компьютеров. Тенденции развития микро-ЭВМ. Понятие об архитектуре персональных ЭВМ.
  2. Устройство персональных ЭВМ (ПЭВМ). Устройство микропроцессора, крупноблочная схема. Основной цикл работы микропроцессора. Схема структурной организации микро-ЭВМ. Организация памяти. Сегментация. Физические и логические адреса. Регистры микропроцессора, системные регистры, регистр флагов.
  3. Введение в Ассемблер. Схема ассемблирования.
  4. Внутреннее представление данных. Константы с плавающей и фиксированной точкой. Десятичные константы. Строковые константы. Псевдооператоры представления данных (DB, DW, DD, DQ, DF, DP, DT).
  5. Модель программы. Сегментация программы. Псевдооператоры SEGMENT, ASSUME, PROC, END. Псевдооператоры управления листингом.

 

Translate Переводчик

Подписка на новости

SmartResponder.ru
Ваш e-mail: *
Ваше имя: *

Хостинг для Wordpress сайтов