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

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

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

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

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

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

от 25%

Подписываем

договор

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

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

Практична робота 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. Коммуникативные особенности поведения в конфликт
3. Присвоение квалификационных категорий и оплата сверхурочных работ
4. реферат дисертації на здобуття наукового ступеня кандидата медичних наук
5. Некоторые аспекты гидрохимического режима воды местных источников
6. Реферат на тему Процес індивідуального спілкування Види взаємодії в процесі спілкув
7. Красноярский государственный медицинский университет имени профессора В
8. Организация кассовых операций в организациях розничной торговли.html
9. владну компетенцію[1] для виконання завдань і функцій держави
10. Введение3 Глава1 Новые индустриальные страны в мировой экономике5 Понятие сущность основные черт.
11. Методические рекомендации к практическому занятию 1 Специальность- 051301 Общая медиц
12. k~l где k ~ жёсткость пружины
13. Каковы принципиальные отличия амниот от анамниот наличие дополнительных эмбриональных оболочек- амн
14. Строение и функции желудка Желудок непарный орган желудочнокишечного тракта пищеварительной системы
15. Игра как организационная форма обучения через Интернет
16. 1 Расчет потребной площади и определение габаритных размеров кон тейнерных площадок
17. ирония и майевтика
18. диагностический опросник ДДО разработанный сотрудниками ВНИИ профтехобразования под руководством Е.html
19. Лабораторная работа 5 ТемаРазработка модели программной системы с использованием диаграммы состояний
20. пахать на дядю или творить свой мир Хочешь получать максимум дохода за минимум твоих усилий и времени