У вас вопросы?
У нас ответы:) SamZan.net

Тема роботи- Програмування циклічних процесів на асемблері

Работа добавлена на сайт samzan.net: 2015-07-10

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 3.4.2025

Практична робота N 3

Тема роботи: Програмування циклічних процесів на асемблері.

Мета роботи: Вивчити команди циклу та навчитися застосовувати їх на практиці.

Теоретичні відомості.

Серед циклів на практиці найчастіше зустрічаються цикли з попередньо відомою кількістю повторень, до них відносяться:

1. LOOP - перехід по лічильнику

Ознаки не змінюються.

LOOP short-label.

Логіка: CX = CX - 1; if (CX <> 0)

JMP short-label.

Команда LOOP зменшує CX на 1, потім передає керування на мітку short-label, якщо CX не дорівнює 0. Операнд short-label повинен знаходитись у межах від -128 до +127 байт від наступної команди.

2. LOOPE - перехід доки рівно

Ознаки не змінюються.

Команда: LOOPE short-label.

Логіка: CX = CX - 1; if (CX <> 0) and (ZF = 1)

JMP short-label.

Команда LOOPE використовується після команд CMP чи SUB. Вона зменшує CX на 1, потім передає керування на мітку short-label, якщо CX не дорівнює нулю та якщо перший операнд команд CMP або SUB дорівнював іншому операнду. Операнд short-label повинен знаходитись у межах від -128 до +127 байт від наступної команди.

Примітка: Команда LOOPZ, перехід доку нуль, - це та ж команда, що й LOOPE.

3. LOOPNE - перехід доку не рівно

Ознаки не змінюються.

Команда: LOOPNE short-label.

Логіка: CX = CX - 1 if (CX <> 0) and (ZF = 0)

JMP short-label.

Команда LOOPNE використовується після команд CMP або SUB. Вона зменшує CX на 1, потім передає керування на мітку short-label, якщо CX не дорівнює нулю, та якщо перший операнд команд CMP або SUB не дорівнює іншому операнду. Операнд short-label мусить знаходитися в межах від -128 до +127 байт від наступної команди.

Примітка: Команда LOOPNZ, перехід доку не нуль, - це та ж команда, що й LOOPNE.

4. LOOPNZ - перехід доки не нуль

Ознаки не змінюються.

Команда: LOOPNZ short-label.

LOOPNZ - синонім LOOPNE. Дів. пояснення LOOPNE.

5. LOOPZ - перехід доки нуль

Ознаки не змінюються.

Команда: LOOPZ short-label.

LOOPZ - синонім LOOPE. Дів. пояснення LOOPE.

Індивідуальні завдання:

Розрахувати значення функції (значення змінної "а" задати на власний розсуд), використовуючи команди:

а) умовного переходу

б) циклів

1.

  f = 3x +4y -5

  x   [ 1..10], крок 2

  y   [1..20], крок 4

  Якщо f > a розрахунки припинити

2.

  f = 4x +3y -2z

  x   [ 1.. 5], крок 1

  y   [10..20], крок 2

3.

  f = 7x +3y

  x   [ 1..20], крок 4

  Якщо xy > a розрахунки припинити

4.

  f = 3/y +4z -20

  y   [-1..10], крок 1, y <> 0

  z   [ 3.. 9], крок 3

5.

  f = 3y -4x -2z

  y   [ 2..10], крок 2

  z   [ 1..15], крок 3

  Якщо yz > a розрахунки припинити

6.

  f = 7x +3y -10z

  x   [10.. 1], крок -1

  z   [ 5..20], крок 5

  Якщо x = y розрахунки припинити

7.

  f = 7(x +y) -3y +5z

  y   [ 1..20], крок 2

  Якщо y^2 > z розрахунки припинити

8.

  f = 7x^2 -3y^2 +y

  x   [10.. 5], крок -1

  Якщо x^2 > y^2 розрахунки припинити

9.

  f = (7y -3z)x

  y   [20.. 2], крок -2

  Якщо yz > x розрахунки припинити

10.

  f = 10(y -z)x

  y   [ 1.. 5], крок 1

  x   [ 2..10], крок 2

11.

  f = 6x +4y -5z

  x   [ 1..10], крок 1

  y   [1..20], крок 4

  Якщо f => a розрахунки припинити

12.

  f = 4x +8y -2z

  x   [ 1.. 15], крок 5

  y   [10..20], крок 2

13.

  f = 3/y +4z -2x

  y   [1..10], крок 1

  z   [ 3.. 9], крок 3

14.

  f = 3y +4x -6z

  y   [ 2..10], крок 2

  z   [ 1..15], крок 3

  Якщо yz > a розрахунки припинити

15.

  f = (7x +3y)/4+z-1

  x   [1.. 10], крок 1

  z   [ 5..20], крок 5

  Якщо xy=a розрахунки припинити

16.

  f = 7(x +y)+5z

  y   [ 1..20], крок 2

  z   [ 5..20], крок 5

  Якщо y^2 > z розрахунки припинити

17.

  f =(7x -3y)z+y-1

  x   [10.. 5], крок -1

  z   [ 1..20], крок 4

  Якщо x^2 > y^2 розрахунки припинити

18.

  f = (7y+3z)x-3y

  y   [20.. 2], крок -2

  z   [ 1..20], крок 5

  Якщо yz > x розрахунки припинити

19.

  f = 10(y+z)x-5

  y   [ 1.. 5], крок 1

  x   [ 2..10], крок 2

20.

  f = 3x +4y -5z

  x   [ 1..10], крок 2

  y   [1..20], крок 4

  Якщо f= a розрахунки припинити

21.

  f = (4x +3y)/2-2z

  x   [ 1.. 5], крок 1

  y   [10..20], крок 2

22.

  f = 7x +3y+4xy

  x   [ 1..20], крок 4

  Якщо xy=a розрахунки припинити

23.

  f = 3y +4z+2x

  y   [-1..10], крок 1

  z   [ 3.. 9], крок 3

24.

  f = 3y+4x+2z-1

  y   [ 2..10], крок 2

  z   [ 1..15], крок 3

  Якщо yz=a розрахунки припинити


Контрольний приклад

  f = 7x +3y-3

  x   [ 1..20], крок 4

  y   [10..20], крок 2

Якщо xy > a розрахунок зупинити

program al1;

uses crt;

var x,y,f,a:integer;

label a1,a2,stop;

begin

clrscr;

write('Input a=');

readln(a);

    asm

      mov x,1  {x=1}

  a2: mov y,10     {Мітка 2, в якій у=10}

       a1: mov ax,7      {Мітка 1 в якій х=7}

            imul x              {ах=7x}

            mov bx,3         {bx=3}

            xchg ax,by        {ax=3, bx=7x}

            imul y                {ax=3y}

            add ax,bx          {ax=7x+3y}

            sub ax,3             { ax=7x+3y-3}

            add y,2              {y=y+2} 

            mov cx,x           {cx=x}

            xchg cx,ax         {cx=7x+3y-3, ax=x}

            imul y                {ax=xy}

            xchg cx,ax        { ax=7x+3y-3, cx=xy }

            cmp cx,a           

             jg stop            {xy>a stop}

           cmp y,20         

            jle a1              {y<=20 a1}

            add x,4        {x=x+4}

            cmp x,20    

           jle a2            {x<=20 a2}

      stop:

      mov f,ax      {f=ax=7x+3y-3}

      end;

writeln('x=',x);

writeln('y=',y);

writeln('f=',f);

readkey;

end.

Порядок виконання роботи

1. Вивчити команди циклу.

3. Написати програму.

4. Зробити звіт .

Зміст звіту

1. Опис команд циклу.

2. Текст програми.

3. Результати.

4. Висновки.

5. Відповіді на контрольні питання.

Контрольні питання

1. Коли використовується команда LOOPNE?

2. Коли використовується команда LOOPE?

3. Коли використовується команда LOOPNZ?




1. Реферат- Как приобрести навык
2. Отчет по лабораторной работе ’ 2 Определение качества дизельного топлива
3. Праздник Крещение проведенный на городском пруду 19 января собрал многочисленное количество гр
4. Новый Уголовный Кодекс РФ, вступающий в действие с 1 января 1997 г
5. слож белки небелк часть представл нукл ктами
6. Этничность и этническое насилие противостояние теоретических парадигм
7. а Военная реформа б Судебник 1550 г г Дворцовая тетрадь д Стоглав е Земельные реформы ж Земская реф
8. 1Понятие и сущность политических партий 1.html
9. по теме Рождество и Новый год в Великобритании актуализация лексических навыков тренировка навыков чтени
10. Дипломная работа- Корректирующие коды