Assembler. Лабораторная работа №1. (4 часа).

“Разработка линейных программ”.

Цели:

Ход работы:

1. Изучить (повторить) теоретический материал: Введение, Темы: 1, 2, 3, 4, 5, 6, 7, 8.

 

2. Выполнить контрольный тест по теме №1 "Регистры микропроцессора".

 

3. Получить (уточнить) у преподавателя номер своего варианта.

 

4. Выбрать из списка номер вашего варианта:

1 2 3 4 5 6 7 8 9 10 11 12

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


Индивидуальные задания

Вариант 1.

Составить программу для вычисления выражения:

Протестировать программу при следующих значениях исходных данных:

a) y = 1; w = 4; u = 3; v = 5; z = 2

b) y = 12; w = -2; u = 2; v = 3; z = -10

Вариант 2.

Составить программу для вычисления выражения:

Протестировать программу при следующих значениях исходных данных:

a) y = 2; w = 3; u = 10; v = 5; z = 18

b) y = 2; w = 3; u = 10; v = -2; z = 18

Вариант 3.

Составить программу для вычисления выражения:

Протестировать программу при следующих значениях исходных данных:

a) y = 1; w = 4; u = 2; v = 5; z = 3

b) y = -2; w = 4; u = 2; v = 5; z = 3

Вариант 4.

Составить программу для вычисления выражения:

Протестировать программу при следующих значениях исходных данных:

a) y = 12; w = 4; u = 8; v = 2; z = 10

b) y = 12; w = 4; u = 8; v = 2; z = -20

Вариант 5.

Составить программу для вычисления выражения:

 

Протестировать программу при следующих значениях исходных данных:

a) y = 10; w = 8; u = 4; v = 3; z = 2

b) y = 10; w = 40; u = 4; v = 3; z = 2

Вариант 6.

Составить программу для вычисления выражения:

Протестировать программу при следующих значениях исходных данных:

a) y = 5; w = 3; u = 2; v = 3; z = 1

b) y = 5; w = 3; u = -10; v = 3; z = 1

Вариант 7.

Составить программу для вычисления выражения:

Протестировать программу при следующих значениях исходных данных:

a) y = 1; w =  5; u =  3; v =  4; z = 2

b) y =  1; w =  -12; u =  3; v =  4; z = 2

Вариант 8.

Составить программу для вычисления выражения:

Протестировать программу при следующих значениях исходных данных:

a) y =  5; w =  1; u =  3; v =  2; z = 4

b) y =  2; w =  1; u =  3; v =  2; z = 4

Вариант 9.

Составить программу для вычисления выражения:

 

Протестировать программу при следующих значениях исходных данных:

a) y = 2; w = -1; u = 8; v = 5; z = 3

b) y = -20; w = -1; u = 8; v = 5; z = 20

Вариант 10.

Составить программу для вычисления выражения:

 

Протестировать программу при следующих значениях исходных данных:

a) y = 8; w = 5; u = 4; v = 1; z = 2

b) y = 8; w = 15; u = 4; v = 1; z = 2

Вариант 11.

Составить программу для вычисления выражения:

 

Протестировать программу при следующих значениях исходных данных:

a) y = 12; w = 3; u = 2; v = -2; z = -10

b) y = 12; w = 3; u = 2; v = -2; z = 12

Вариант 12.

Составить программу для вычисления выражения:

 

Протестировать программу при следующих значениях исходных данных:

a) y = 2; w = 30; u = 20; v = -20; z = -10

b) y = 12; w = 30; u = 20; v = -20; z = 10