Assembler. Лабораторная работа №1. (4 часа).
“Разработка линейных программ”.
Цели:
Ход работы:
1. Изучить (повторить) теоретический материал: Введение, Темы: 1, 2, 3, 4, 5, 6, 7, 8.
2. Выполнить контрольный тест по теме №1 "Регистры микропроцессора".
3. Получить (уточнить) у преподавателя номер своего варианта.
4. Выбрать из списка номер вашего варианта:
5. Прочитать условие задачи, если возникли вопросы по условию, задайте их преподавателю. В этой работе и во всех последующих данные занимают слово (целые со знаком).
6. Внимательно изучить пример программы.
7. Разработать программу для своего варианта, выполнив последовательно все действия, подробно описанные в
"5. Средства разработки программ".
8. Протестировать программу.
9. Оформить отчет по лабораторной работе - в начале asm-файлов записать как комментарий:
10. Сдать преподавателю выполненную работу: скопировать папку с файлами проекта (asm, obj, exe) в папку "Рабочий стол\ЛР-сдача\№группы_Фамилия_№ЛР", например, 29в_Петров_1. Оценки по проверенным работам можно посмотреть в электронном журнале.
Примечания:
1. Отсутствие требуемого оформления понижает оценку на 1 балл.
2. Отчет оформить в asm-файле, записав в нем все необходимое в виде комментариев (номер и название лабораторной работы, вариант, группа, ФИО, условие задачи, полученные программой результаты).
4. Работа должна быть сдана в установленные сроки. Задержка сдачи работы на одно лабораторное занятие понижает оценку на 1 балл. Если работа не будет сдана в течении 3-х лабораторных занятий после ее окончания, то за работу выставляется оценка 1.
5. Работа не своего варианта не зачитывается!
Данные примечания распространяются на все последующие работы!
; Составить программу для вычисления выражения: x = y + (z - u * v) / w
; данные занимают слово (целые со знаком)
; =======================================
.Model Small ;определение модели памяти
.Stack 100h ;начало сегмента стека
.Data ;начало сегмента данных
x dw ? ;определение данных
y dw 5
z dw -10
u dw 2
w dw -2
v dw 3
; Результат: AX = 000Dh = 13
.Code ;начало сегмента кода
begin:
mov ax,@Data ;загрузка в регистр ds адреса сегмента данных
mov ds,ax
mov ax,u
imul v ;u*v
mov bx,ax
mov ax,z ;z-u*v
sub ax,bx
cwd ;подготовка к делению
idiv w ;(z-u*v)/w
add ax,y ;y+(z-u*v)/w
mov x,ax ;запись результата в x
mov ah,4ch ;выход из программы
int 21h
end begin
Индивидуальные задания
Составить программу для вычисления выражения:
Протестировать программу при следующих значениях исходных данных:
a) y = 1; w = 4; u = 3; v = 5; z = 2
b) y = 12; w = -2; u = 2; v = 3; z = -10
Составить программу для вычисления выражения:
Протестировать программу при следующих значениях исходных данных:
a) y = 2; w = 3; u = 10; v = 5; z = 18
b) y = 2; w = 3; u = 10; v = -2; z = 18
Составить программу для вычисления выражения:
Протестировать программу при следующих значениях исходных данных:
a) y = 1; w = 4; u = 2; v = 5; z = 3
b) y = -2; w = 4; u = 2; v = 5; z = 3
Составить программу для вычисления выражения:
Протестировать программу при следующих значениях исходных данных:
a) y = 12; w = 4; u = 8; v = 2; z = 10
b) y = 12; w = 4; u = 8; v = 2; z = -20
Составить программу для вычисления выражения:
Протестировать программу при следующих значениях исходных данных:
a) y = 10; w = 8; u = 4; v = 3; z = 2
b) y = 10; w = 40; u = 4; v = 3; z = 2
Составить программу для вычисления выражения:
Протестировать программу при следующих значениях исходных данных:
a) y = 5; w = 3; u = 2; v = 3; z = 1
b) y = 5; w = 3; u = -10; v = 3; z = 1
Составить программу для вычисления выражения:
Протестировать программу при следующих значениях исходных данных:
a) y = 1; w = 5; u = 3; v = 4; z = 2
b) y = 1; w = -12; u = 3; v = 4; z = 2
Составить программу для вычисления выражения:
Протестировать программу при следующих значениях исходных данных:
a) y = 5; w = 1; u = 3; v = 2; z = 4
b) y = 2; w = 1; u = 3; v = 2; z = 4
Составить программу для вычисления выражения:
Протестировать программу при следующих значениях исходных данных:
a) y = 2; w = -1; u = 8; v = 5; z = 3
b) y = -20; w = -1; u = 8; v = 5; z = 20
Составить программу для вычисления выражения:
Протестировать программу при следующих значениях исходных данных:
a) y = 8; w = 5; u = 4; v = 1; z = 2
b) y = 8; w = 15; u = 4; v = 1; z = 2
Составить программу для вычисления выражения:
Протестировать программу при следующих значениях исходных данных:
a) y = 12; w = 3; u = 2; v = -2; z = -10
b) y = 12; w = 3; u = 2; v = -2; z = 12
Составить программу для вычисления выражения:
Протестировать программу при следующих значениях исходных данных:
a) y = 2; w = 30; u = 20; v = -20; z = -10
b) y = 12; w = 30; u = 20; v = -20; z = 10