Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лабораторные АРХ.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
2.53 Mб
Скачать

Блок 2.

  1. Х= 2В–1+4*(А–3С)

  2. Х= (2А+В)/4–С/2+144

  3. Х= 6*(А–2В+С/4)+10

  4. Х= (С–3А)/4+В/8

  5. Х= (5А–В–10С)/4

  6. Х= – (–(2*С+5А)*3+2В)

  7. Х= –7*(3А–В)+40–С/4

  8. Х= (6А–В)+С/2–103

  9. Х= 15*(С–A)+(В–С)/8

  10. Х= (А+4В)/8–2С+16А

  11. Х= 4*(3А-7В+С/16)+12

  12. Х= –3*(4А–3В)+С/2

  13. Х= – (С +6А)*15+В/16

  14. Х= –А/4–5*(2А–В)+С/2

  15. Х= –16*(3А–2В)+77–С/64

  16. Х= 18А+64В–(С–А)/64+17

  17. Х= 4А–15*(2В–2) –22

  18. Х= 4А+3*(В+С)/4–42

  19. Х= 7А+9В–106+С/16

  20. Х= –А/4–9*(В+11)+15С

  21. Х= 2*(7А–В) –12С+55

  22. Х= 3*(А/2+В/16)+С/32–61

  23. Х= –(–(С+2А+4В)+16А)

  24. Х= –4А+(В+3С–1)/2

  25. Х= 12+16*(2А+3В)+С/2

Блок 3.

  1. Х= 3В+19+3*(2А–3С)

  2. Х= –(С–2А–3В) –98

  3. Х= –6А+(3В–4С+11)/4

  4. Х= –2–8*(7А–В)–С/4

  5. Х= – (2А+В)/2–С/2–101

  6. Х= –6*(3А–В–С/4) –55

  7. Х= (2С–3А)/2–В/4

  8. Х= (–3А–4В+С)/16

  9. Х= 5*(–3А+В) –14–С/8

  10. Х= – (6–А+В) –С/2+13

  11. Х= –8*(4А–С)–(В+3С)/4

  12. Х= (А–3В)/8+3С–55

  13. Х= 6*(3А–В)+С/4

  14. Х= –(–(3С–11А)*16–В/4)

  15. Х= А/8–4*(А+3С)+А/2

  16. Х= 14*(2–3А)+64В+С/8

  17. Х= –4А+16*(–2В+11)–65С

  18. Х= –4А+5*(2В+С)/4+100

  19. Х= 129А+9В–256–С/16

  20. Х= А/16+2*(3В–91) –16С

  21. Х= –2*(7А+В) +33С+400

  22. Х= А/2–В/8+4*(С/32–61)

  23. Х= –(–2*(С–3А+35В) –А)

  24. Х= 4А-5*(2*В–С–11)/4

  25. Х= 93–8*(2А+3В) –С/2

2.4 Контрольные вопросы

  1. Назначение директив SEGMENT и ENDS.

  2. Назначение директивы ASSUME.

  3. Назначение директив DB, DW.

  4. Назначение оператора DUP в директивах DB, DW.

  5. Назначение директивы END.

  6. Из каких полей состоит строка программы на ассемблере?

  7. Какие поля обязательны, а какие можно опустить?

  8. В чем различие между командами: mov AX, BX и mov AX, [BX]?

  9. В чем разница между командой mov A, 1 и директивой А dw 1?

  10. Как Вы считаете, почему в рассмотренном примере для вычитания единицы использовался оператор: dec ax, а не оператор sub ax,1?

Лабораторная работа № «Команды языка Ассемблер. Циклические и разветвляющиеся программы»

Цель работы: научиться использовать циклы и условия при написании программ на языке ассемблер.

Для выполнения работы студент должен: иметь представление об условном и безусловном переходах, уметь составлять программы с использованием циклов и условий, знать определение и свойства массивов.

3.1 Теоретические сведения

3.1.1 Электронное представление чисел

Команды передачи, управления служат для передачи управления инструкции, не следующей непосредственно за данной. Управление может передаваться как внутри текущего сегмента кода (внутрисегментная передача управления), так и за его пределы (межсегментная передача управления). Тип передачи управления может быть задан ассемблеру предшествующим адресу перехода ключевым словом NEAR (внутрисегментная) или FAR (межсегментная).

3.1.2 Безусловные переходы

Инструкция безусловного перехода передаёт управление команде, адрес которой указан в инструкции. Команда безусловного перехода имеет вид, представленный в листинге 3.1.

Листинг 3.1. Синтаксис команды условного перехода

jmp [< тип > ptr ] операнд.

<тип> - тип перехода short (короткий) – смещение 127 байтов вперёд или 128 байтов назад, near (близкий) – смещение в пределах сегмента (64 Кбайта), far (дальний) – в любой сегмент с любым смещением.

ptr – приставка, которую можно перевести как указанный в...

Если тип не задан, по умолчанию принимается near.

Всего можно выделить пять типов безусловных переходов (таблица 3.1).

Таблица 3.1. Типы команд безусловного перехода

Название

Мнемоника

Описание

внутрисегментный прямой короткий

jmp short <операнд>

IP ← (IP) + 8-битное смещение, определяемое операндом

внутрисегментный прямой близкий переход

jmp near ptr <операнд>

IP ← (IP)+16-битное смещение, определяемое операндом

внутрисегментный косвенный переход

jmp <адрес операнда>

IP ← 16-битный адрес перехода

Межсегментный прямой далекий переход

jmp far ptr <операнд>

IP ← смещение операнда в сегменте

CS ← адрес сегмента, содержащего опе­ранд

Межсегментный косвенный далёкий переход

jmp far ptr <адрес операнда>

IP ← операнд

CS ← адрес операнда +2

3.1.3 Условный переход

Команда условного перехода организует передачу управления при выполнении определённого в команде условия, в противном случае переход осуществляется на команду, следующую за инструкцией условного перехода. Условия определяются текущим состоянием флагов процессора. Каждая из 30 команд условных переходов проверяет определенную комбинацию флагов.

Все условные переходы являются короткими, т.е. адрес перехода должен отстоять не далее, чем на –128 или +127 байтов от первого байта следующей команды.