close

Вход

Забыли?

вход по аккаунту

?

лаба7спо

код для вставкиСкачать
Министерство образования и науки России
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
"Тульский государственный университет"
КАФЕДРА ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ
СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
ЛАБОРАТОРНАЯ РАБОТА №7
ПРЕПРОЦЕССОРЫ
ЧАСТЬ 1.
ИСПОЛЬЗОВАНИЕ БИБЛИОТЕКИ МАКРООПРЕДЕЛЕНИЙ
Выполнил: студент гр. 220911
Шмаков А.С.
Проверил:
к.т.н, доц.
Андриянова М. А.
Тула 2013
Цель и задачи работы:
Целью и задачами работы является приобретение навыков составления и использования библиотек макроопределений при программировании на языке Ассемблера.
Вариант задания:
Задание8Вычислить площадь круга, если известен диаметр Ход работы:
Листинг 1. Код первой программы.
title test_macro
circle macro d
mov ax, d
mov bx, 3
mov cx,2
div cx
mul ax
mul bx
endm
stack segment para stack 'stack'
db 64 dup(?)
stack ends
cseg segment para 'code'
assume cs:cseg,ss:stack
prog proc far
circle 8
ret
prog endp
cseg ends
end prog
Листинг 2. Код второй программы.
title test_macro
include sss.lib
stack segment para stack 'stack'
db 64 dup(?)
stack ends
dseg segment para public 'data'
d db 8
dseg ends
cseg segment para 'code'
assume cs:cseg,ds:dseg,ss:stack
prog proc far
mov ax,dseg
mov ds,ax
circle d
ret
prog endp
cseg ends
end prog
Листинг 3. Макроопределение sss.lib.
circle macro d
mov ax, d
mov bx, 3
mov cx,2
div cx
mul ax
mul bx
endm
Результаты работы:
Листинг трансляции первой программы:
title test_macro
circle macro d
mov ax, d
mov bx, 3
mov cx,2
div cx
mul ax
mul bx
endm
0000stack segment para stack 'stack'
0000 0040[db 64 dup(?)
??
]
0040stack ends
0000cseg segment para 'code'
assume cs:cseg,ss:stack
0000prog proc far
circle 8
0000 B8 0008 1mov ax, 8 0003 BB 0003 1mov bx, 3 0006 B9 0002 1mov cx,2 0009 F7 F1 1div cx 000B F7 E0 1mul ax 000D F7 E3 1mul bx 000F CBret
0010prog endp
0010cseg ends
end prog
Результат работы первой программы представлен на рисунке 1.
Рисунок 1 - Результат работы первой программы
Листинг трансляции второй программы:
title test_macro
include sss.lib
Ccircle macro d
Cmov ax, d
Cmov bx, 3
Cmov cx,2
Cdiv cx
Cmul ax
Cmul bx
Cendm
0000stack segment para stack 'stack'
0000 0040[db 64 dup(?)
??
]
0040stack ends
0000dseg segment para public 'data'
0000 08d db 8
0001dseg ends
0000cseg segment para 'code'
assume cs:cseg,ds:dseg,ss:stack
0000prog proc far
0000 B8 ---- Rmov ax,dseg
0003 8E D8mov ds,ax
circle d
0005 A1 0000 R 1mov ax, d 1.ASM(14): warning A4031: Operand types must match
0008 BB 0003 1mov bx, 3 000B B9 0002 1mov cx,2 000E F7 F1 1div cx 0010 F7 E0 1mul ax 0012 F7 E3 1mul bx 0014 CBret
0015prog endp
0015cseg ends
end prog
Результат работы второй программы представлен на рисунке 2.
Рисунок 2 - Результат работы второй программы
Вывод:
В ходе выполнения данной лабораторной работы, научились использовать макроопределения и библиотеки макроопределений в программах на языке ассемблер.
Документ
Категория
Рефераты
Просмотров
17
Размер файла
81 Кб
Теги
лаба7спо
1/--страниц
Пожаловаться на содержимое документа