Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

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

.doc
Скачиваний:
37
Добавлен:
02.05.2014
Размер:
50.69 Кб
Скачать

Министерство Образования Российской Федерации

Уфимский Государственный Авиационный Технический Университет

Кафедра Автоматизированных технологических систем

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

по дисциплине «Вычислительные машины, системы и сети»

НАПИСАНИЕ И ОТЛАДКА УПРАВЛЯЮЩИХ

ПРОГРАММ НА ЯЗЫКЕ АСЕМБЛЕР

Выполнила: студентка гр. АТП-3ХХ

К. Г.

Проверил: Никитин Ю. А.

Уфа 2006

НАПИСАНИЕ И ОТЛАДКА УПРАВЛЯЮЩИХ

ПРОГРАММ НА ЯЗЫКЕ АССЕМБЛЕР

1. Цель работы:

Дальнейшее углубление знаний микропроцессора. Изучить назначение и взаимодействие регистров, ячеек памяти, а также кодов в процессе трассировки программ, написанных с использованием языка программирования Ассемблер. Изучение работы подпрограмм, стековой памяти. Определение технических возможностей разработанных управляющих программ.

2. Теоретическая часть

Программа на языке Ассемблер вводится в ПЭВМ с использованием любого текстового редактора, транслируется в машинный код с помощью Турбоассемблера TASM и компоновщика TLJNK (фирмы Borland), либо с помощью Макроассемблера МАСМ, компоновщика LINK и преобразователя EXE2BIN.COM(фирмы Microsoft). Отладка программ производится с помощью программы-отладчика DEBUG.

Отлаженная программа должна рисовать на экране дисплея траекторию движения в соответствии с заданными параметрами движения режущего инструмента на станке.

СТРУКТУРА ПРОГРАММЫ на языке Ассемблер для создания СОМ-файла.

Все имена задавать на латыни. Численные значения можно задавать с использованием десятичного или шестнадцатеричного исчисления. В последнем случае после числа вставлять символ Н.

Имя_сегмента SEGMENT

ASSUME CS: Имя_сегмента;Assume - принять на себя:

;Хранить имя сегмента в регистре CS. ORG 100H ;Origin - начало (с ячейки №100Н) .

Метка: JMP Главная ;Метка: - начало данной программы.

;Определение переменных: X DW 100 ;Define Word(Byte) - Установить Слово

;(для переменной X).Начальное значение=100.

;Еще переменные

Главная PROC ;имя_процедуры PROC.

;ассемблерные инструкции

CALL Подпрограмма

;ассемблерные инструкции

RET ; Возврат в запустившую программу.

Главная ENDP ; конец указанной процедуры

Подпрограмма PROC ; Процедура с именем "Подпрограмма"

;Тело подпрограммы

RET ;Возврат в вызвавшую процедуру

Подпрограмма ENDP

Имя сегмента ENDS ;Конец записи в указанный сегмент.

END Метка ;Конец программы.

3. Выполнение работы.

3.1.Создание машинного кода.

1)Используя редактор NC(Shift+F4) или EDIT создать новый файл с расширением ASM. Набрать программу на языке Ассемблер.

2)Создание объектного кода с использованием TASM, а затем машинного кода:

tasm.exe name.asm -получим name.obj

tlink.exe/t name.obj -получим name.com.

При использовании макроассемблера MASM работа выполняется в 3 этапа:

masm.exe name.asm; -получим name.obj

link.exe name.obj; -получим name.exe

exe2bin.exe name.exe name.com -получим name.com.

3)3апустить СОМ- программу.

4)Если при выполнении указанных работ будут обнаруживаться синтаксические ошибки, следует их устранять.

5)Если полученная СОМ - программа не дает правильный результат, следует проверить:

правильность используемого алгоритма расчета,

правильность программы.

3.2. Текст программы.

Interpol segment

Assume cs: Interpol

Org 100H

Begin: JMP GLAV

X DW 0

Y DW 0

X1 DW 100

Y1 DW 100

F DW 0

GLAV PROC

MOV AH,0

MOV AL,10H

INT 10H

MOV AX,X1

MOV BX,Y1

MOV CX,X

MOV DX,Y

MOV SI,F

M1: CMP SI,0

JGE M2

ADD DX,1

JMP M3

M2: ADD DX,1

SUB SI,BX

M3: CALL PIXEL

CMP CX,BX

JL M1

RET

GLAV ENDP

PIXEL PROC

PUSH AX

PUSH BX

MOV BX,0

MOV AH,0CH

MOV AL,0AH

INT 10H

POP BX

POP AX

RET

PIXEL ENDP

INTERPOL ENDS

END BEGIN

Вывод

В данной работе мы ознакомились с программным обеспечением, разработанным для создания и отладки программ с использованием языка Ассемблера. Мы создали и отладили программу вывода на дисплей траектории движения в соответствии с заданными параметрами движения режущего инструмента на станке.