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

“Разработка программ с ветвлениями”.

Цели:

 

Ход работы:

1. Изучить (повторить) теоретический материал: Тема 9. Программирование ветвлений.

 

2. Выполнить контрольный тест по теме №9 "Программирование ветвлений".

 

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

 

4. На данную работу предлагается 2 задачи:

 

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

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

6. Прочитать условие задач, если возникли вопросы по условию, задайте их преподавателю.

 

7. Внимательно изучить пример программы.

 

8. Разработать программы для своего варианта.

 

9. Протестировать программы.

 

10. Оформить отчет по лабораторной работе - в начале asm-файлов записать как комментарий:

 

11. Сдать преподавателю выполненную работу: скопировать папку с файлами проекта (asm, obj, exe) в папку "Рабочий стол\ЛР-сдача\№группы_Фамилия_№ЛР", например, 29в_Петров_2. Оценки по проверенным работам можно посмотреть в электронном журнале.


Пример программы:

; Составить программу вычисления функции y:
;        (a+b)/a,       если a=b
; y =  (a+b)/b,       если a<b
;        (a+b)/(a*b), если a>b
;===============================
        .model small ;определение модели памяти
        .stack 100h   ;начало сегмента стека
        .data              ;начало сегмента данных
            a dw -1
            b dw -2
            y dw ?
;===============================

    .code
        begin: mov ax,@data
        mov ds,ax
        mov ax,a
        add ax,b           ;y:=a+b
        mov y,ax
        mov ax,a
        cmp ax,b
        je var1            ;на вариант a=b
        jl var2            ;на вариант a<b
var3:
mov ax,a      ;a>b
        imul b

        mov bx,ax
        mov ax,y
        cwd
        idiv bx
        jmp exit
var2: mov ax,y     ;a<b
        cwd
        idiv b
        jmp exit

var1: mov ax,y     ;a=b
        cwd
        idiv a
exit: mov y,ax     ;запись y
        mov ah,4ch ;выход в ОС
        int 21h
end begin


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

Вариант 1.

1. Составить программу для вычисления функции y(a,b):

 

Протестировать программу при следующих значениях исходных данных: a) а= 2; b= 2   b) a= 1; b= 2   c) а= 1;  b= -2

 

2. Составить программу для вычисления функции y(x):

Протестировать программу при следующих значениях исходных данных: a) x= 2; b) x= 6; c) x= 11

 

Вариант 2.

1. Составить программу для вычисления функции y(x):

Протестировать программу при следующих значениях исходных данных: a) x= 4; b) x= 5

2. Составить программу для вычисления функции y(a,b):

 

Протестировать программу при следующих значениях исходных данных: a) а= -3; b= -4  b) a= 2; b= 2  c) а= 2;  b= -4

Вариант 3.

1. Составить программу для вычисления функции y(x):

Протестировать программу при следующих значениях исходных данных: a) x= 6; b) x= 5

2. Составить программу для вычисления функции y(a,b):

 

Протестировать программу при следующих значениях исходных данных: a) а= -2; b= -2  b) a= 2; b= 3  c) а= 2;  b= -3

Вариант 4.

1. Составить программу для вычисления функции y(x):

 

 

 

Протестировать программу при следующих значениях исходных данных: a) x= 8; b) x= 5

2. Составить программу для вычисления функции y(a,b):

 

Протестировать программу при следующих значениях исходных данных: a) а= -2; b= 4  b) a= 2; b= -4  c) а= 6;  b= 4

Вариант 5.

1. Составить программу для вычисления функции y(x):

 

 

Протестировать программу при следующих значениях исходных данных: a) x= -8; b) x= 25

2. Составить программу для вычисления функции y(a,b):

 

Протестировать программу при следующих значениях исходных данных: a) а= -2; b= -3  b) a= 5; b= -2  c) а= 2;  b= 3

Вариант 6.

1. Составить программу для вычисления функции y(a,b):

 

Протестировать программу при следующих значениях исходных данных: a) а= -2; b= 4   b) a= 6; b= 5  c) а= 2;  b= 2

 

2. Составить программу для вычисления функции y(x):

Протестировать программу при следующих значениях исходных данных: a) x= -2; b) x= 6; c) x= -6

Вариант 7.

1. Составить программу для вычисления функции y(x):

 

Протестировать программу при следующих значениях исходных данных: a) x= 8; b) x= 12

2. Составить программу для вычисления функции y(a,b):

 

Протестировать программу при следующих значениях исходных данных: a) а= 2; b= 2  b) a= -3; b= -2   c) а= -2;  b= 3

Вариант 8.

1. Составить программу для вычисления функции y(x):

 

 

 

 

Протестировать программу при следующих значениях исходных данных: a) x= -2; b) x= 2; c) x= 0

2. Составить программу для вычисления функции y(a,b):

 

Протестировать программу при следующих значениях исходных данных: a) а= 1; b= 3  b) a= -1; b= -3  c) а= 2;  b= -4

Вариант 9.

1. Составить программу для вычисления функции y(a,b):

 

Протестировать программу при следующих значениях исходных данных: a) а= 2; b= 3  b) a= 1; b= -5  c) а= 2;  b= 2

 

2. Составить программу для вычисления функции y(x):

Протестировать программу при следующих значениях исходных данных: a) x= -2; b) x= 2; c) x= 6

 

Вариант 10.

1. Составить программу для вычисления функции y(a,b):

 

Протестировать программу при следующих значениях исходных данных: a) а= 15; b= 16  b) a= 12; b= 10   c) а= 5;  b= 5

 

2. Составить программу для вычисления функции y(x):

Протестировать программу при следующих значениях исходных данных: a) x= -5; b) x= 0; c) x= 2

 

Вариант 11.

1. Составить программу для вычисления функции y(a,b):

 

Протестировать программу при следующих значениях исходных данных: a) а= 4; b= 1  b) a= 1; b= 4  c) а= 4;  b= 4

 

2. Составить программу для вычисления функции y(x):

Протестировать программу при следующих значениях исходных данных: a) x= -5; b) x= 1; c) x= 6

Вариант 12.

1. Составить программу для вычисления функции y(x):

Протестировать программу при следующих значениях исходных данных: a) x= 0; b) x= 6; c) x= 5

2. Составить программу для вычисления функции y(a,b):

 

Протестировать программу при следующих значениях исходных данных: a) а= 2; b= 4   b) a= 1; b= 3  c) а= 2;  b= 5