Целью работы является разработка простой программы использующей логические команды для приобретения практических навыков программирования ветвлений.

2. ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

Логические команды, команды сдвига и вращения сведены в таблицу.

Мнемокод

Формат

Логические команды

AND

AND приемник, источник

OR

OR приемник, источник

ХOR

ХOR приемник, источник

NOT

NOT приемник

TEST

TEST приемник, источник

Команды сдвига SAL, SHL

SAL, SHL приемник, источник

SAR

SAR приемник, источник

SHR

SHR приемник, источник

Команды циклического сдвига

ROL

ROL приемник, источник

ROR

ROR приемник, источник

RCL

RCL приемник, источник

RCR

RCR приемник, источник

Логические команды выполняют побитовые операции по приведенным ниже правилам:

Бит
источника

Бит
приемника

AND

OR

XOR

NOT

TEST

0

0

0

0

0

1

0

0

1

0

1

1

0

0

1

0

0

1

1

1

0

1

1

1

1

0

0

1


3. ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

1. Изучить логические команды.

2. Получить у преподавателя вариант задания n из таблицы заданий и разработать на языке ассемблер программу, исходными данными для работы которой являются исходное слово и слово-маска. В разрядах исходного слова совпадающих с единичными значениями слова-маски следует изменить значения в соответствии с заданным вариантом. После этого, пользуясь указанной операцией сдвига, подсчитать количество единиц (нулей) в слове-результате.

3. Оттранслировать программу сформировать исполняемый файл.

НЕ нашли? Не то? Что вы ищете?

4. Запустить программу в пошаговом режиме под управлением отладчика с фиксацией содержимого используемых регистров и ячеек памяти до и после выполнения команды. Результаты прогона программы должны быть представлены в отчете.

4. СОДЕРЖАНИЕ ОТЧЕТА

1. Титульный лист.

2. Индивидуальное задание.

3. Текст программы с комментариями.

4. Тестовые наборы, обеспечивающие проверку алгоритма.

5. Протоколы исполнения программы под управлением отладчика в виде таблицы.

6. Выводы по работе.

5. ВАРИАНТЫ ЗАДАНИЙ

Вариант

Вид обработки

Вид операции

Считать

1

установить в 1

ROL

1

2

установить в 1

ROL

0

3

установить в 1

SAR

1

4

установить в 1

SAR

0

5

установить в 0

ROR

1

6

установить в 0

ROR

0

7

установить в 0

RCL

1

8

установить в 0

RCL

0

9

противоположное

RCR

1

10

противоположное

SAL

0

Лабораторная работа №4 «Программирование ветвлений»

1. ЦЕЛЬ РАБОТЫ

Целью работы является разработка простой программы использующей операторы условного и безусловного перехода для приобретения практических навыков программирования ветвлений.

2. ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

Команды условного перехода

Мненемокод

Формат

Команды безусловной передачи управления

JMP

JMP имя

Команды условной передачи управления

JA / JNBE

JA / JNBE близкая метка

JAE / JNB

JAE / JNB близкая метка

JNC

JNC близкая метка

JB / JNAE

JB / JNAE близкая метка

JC

JC близкая метка

JBE / JNA

JBE / JNA близкая метка

JCXZ

JCXZ близкая метка

JE / JZ

JE / JZ близкая метка

JG / JNLE

JG / JNLE близкая метка

JGE / JNL

JGE / JNL близкая метка

JL / JGNE

JL / JGNE близкая метка

JLE / JNG

JLE / JNG близкая метка

JNE / JNZ

JNE / JNZ близкая метка

JNO

JNO близкая метка

JNP / JPO

JNP / JPO близкая метка

JNS

JNS близкая метка

JO

JO близкая метка

JP / JPE

JP / JPE близкая метка

JS

JS близкая метка


3. ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

1. Изучить команды условных и безусловного переходов.

2. Получить у преподавателя вариант задания n из таблицы заданий и разработать на языке ассемблер программу, которая по заданным целым значениям a, b, i, k вычисляет для заданного варианта:

а) значения i1 = f(n1)(a, b,i) и i2 = f(n2) (a, b,i);

b) значения res= f(n3)(i1,i2,k),

где вид функций f(n1), f(n2)  определяется из табл.1, а функции f(n3)   - из табл.2 по цифрам шифра индивидуального задания (n1,n2,n3).

Значения a, b,i, k являются исходными данными, которые должны выбираться студентом самостоятельно и задаваться в процессе исполнения программы в режиме отладки. При этом следует рассмотреть всевозможные комбинации параметров a, b и k, позволяющие проверить различные маршруты выполнения программы (по указанию преподавателя).

Таблица 1

Таблица 2

1

f={

-4·i

0

при a > b

при a ≤ b

1

f={

min (i1, i2) max (i1, i2)

при k=0

при k≠0

2

f={

8·i

-2·i

при a > b

при a ≤ b

2

f={

max (i1, i2)

|i1‌‌-i2|

при k<0

при k≥0

3

f={

i

16·i

при a ≤ b

при a > b

3

f={

|i1‌‌+i2|

min (i1, i2)

при k=0

при k≠0

4

f={

-i/4

-i

при a ≤ b

при a > b

4

f={

min (i1, 8)

max (8, i2)

при k<0

при k≥0

5

f={

2·i

i/2

при a > b

при a ≤ b

5

f={

min (i1, i2)

|i1|+|i2|

при k=0

при k≠0

6

f={

128

-4·i

при a > b

при a ≤ b

6

f={

min (|i1|, 6)

|i1|+|i2|

при k=0

при k≠0

7

f={

55

-4·i

при a > b

при a ≤ b

7

f={

|i1|-|i2|

max (6, |i2|)

при k<0

при k≥0

8

f={

124

-i

при a ≤ b

при a > b

8

f={

min (i1, 8)

max (4, i2)

при k=0

при k≠0

9

f={

-50

-8·i

при a > b

при a ≤ b

9

f={

|i1‌‌+i2|

min (i1, |i2|)

при k<0

при k≥0

10

f={

i/16

-i

при a ≤ b

при a > b

10

f={

min (i1,i2) max (i1, i2)

при k=0

при k≠0

При вычислении функций fn1 и fn2 для реализации операции умножения следует использовать арифметический сдвиг.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4