Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава 5 ВМС.doc
Скачиваний:
11
Добавлен:
07.11.2018
Размер:
1.42 Mб
Скачать

9. Лабораторные работы

Лабораторная работа № 1

Изучение среды программирования turbo assembler

И отладчика программ debuGger

Из программы FAR MANAGER или TOTAL COMMANDER, а можно и непосредственно из WINDOWS, требуется запустить программу ta.exe, расположенную в папке, содержащей файлы, необходимые для работы ТурбоАссемблера. Открывается окно турбосреды, аналогичное тому, какое имеют языковые среды ПАСКАЛЬ или СИ.

Вход в верхнее меню осуществляется с помощью клавиши F10.

Необходимо выполнить команду FILE – NEW, чтобы начать вводить новую программу.

После ввода небольшой тестовой программы её необходимо откомпилировать и устранить синтаксические ошибки (пункт меню COMPILE – COMPILE TO OBJ). Ниже приводится пример такой программы, складывающей два числа.

Одной из самых грубых ошибок начинающего программиста на языке Ассемблер является нежелание (или непонимание необходимости) правильно писать вход и выход из программы, а также соблюдать все правила её обрамления. Из-за этого, во-первых, может проявиться неправильный доступ к данным (обычно обнаруживаемый синтаксическим анализатором), а главное ­– сбой при завершении программы. Категорически рекомендуется как можно чаще сохранять вводимый текст, чтобы с минимальными потерями продолжать работу после «вылета» программы. Придерживайтесь приводимого ниже синтаксического образца. Первые 5 (пять) команд программы, и самую последнюю, следует писать буквально, так, как приведено в примере. Они называются прологом и эпилогом программы, и даются согласно стандартному соглашению о связях для операционной системы MS/DOS (пролог и эпилог для WINDOWS пишется совсем по-другому, но, во-первых, эти понятия есть и там, а во-вторых, научитесь сначала писать простые программы). Слова, стоящие в строках примера после символа «;» (точка с запятой), являются комментариями, и их набивать не требуется (хотя и не запрещается).

Когда программа набита, сохранена, и все синтаксические ошибки исправлены, следует перейти в отладчик DEBUG. В нём необходимо сначала открыть окно отображения регистров и флагов (пункт верхнего меню VIEW – REGISTERS), а затем оттащить его (мышкой, или с помощью CTRL-F5) в сторону, чтобы не загораживало текст программы. Второе используемое окно для отображения значений переменных (WATCHS) уже открыто, и находится внизу. В нём можно проставить имена тех данных, изменения которых требуется проследить.

Далее, нажимая клавишу F7, выполнить каждую команду программы до её логического конца.

; Самая первая программа для трассировки

;

assume cs:mycode,ds:mydate,ss:mystack

mycode segment para

start: push ds ; Эта и следующие 4 команды

xor ax,ax ; называются прологом.

push ax

mov ax,seg mydate

mov ds,ax

mov ax,x ; Операнд1 помещается в регистр AX

add ax,y ; и складывается с Операнд2.

mov z,ax ; результат пишется в переменную z.

retf ; завершение программы (эпилог).

mycode ends

mydate segment para

x dw 5

y dw 4

z dw 0

mydate ends

mystack segment para stack ‘stack’

dw 100 dup (?) ; резервируется место для стека.

mystack ends

end start

Протранслировав программу, и выполнив её покомандно в отладчике, следует выполнить повторную инициализацию программы с помощью пункта меню RUN – PROGRAM RESET, после чего обратиться к преподавателю с целью её показа.

Модифицировать программу так, чтобы она вычисляла:

  1. Произведение двух чисел;

  2. Частное и целочисленный остаток от деления;

  3. Побитовые операции «Не», «Или», «И», «Исключающее Или»;

  4. Операции сдвига;

  5. Преобразования цифрового символа в двоичное число.