Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...
Топ:
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов...
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного хозяйства...
Устройство и оснащение процедурного кабинета: Решающая роль в обеспечении правильного лечения пациентов отводится процедурной медсестре...
Интересное:
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Финансовый рынок и его значение в управлении денежными потоками на современном этапе: любому предприятию для расширения производства и увеличения прибыли нужны...
Инженерная защита территорий, зданий и сооружений от опасных геологических процессов: Изучение оползневых явлений, оценка устойчивости склонов и проектирование противооползневых сооружений — актуальнейшие задачи, стоящие перед отечественными...
Дисциплины:
2017-11-17 | 580 |
5.00
из
|
Заказать работу |
assume cs: code, ds: data;задание сегментных регистров
Start: mov ax,data;загрузка адреса
Mov ds,ax;сегмента данных в регистр ds
.
.
Текст программы
Quit: mov ax,4c00h;код завершения 0
Int 21h;выход в DOS
Code ends;директива конца сегмента кода
End start;конец трансляции программы
Загрузка адреса сегмента данных состоит из двух команд, так как непосредственные данные нельзя заносить прямо в сегментный регистр.
Для завершения программы и выхода в DOS имеется несколько возможностей, рекомендуется использовать две команды, начинающиеся с метки quit.
Обработка программ в MS-DOS
Обработка программ на языке ассемблера в MS-DOS состоит из следующих этапов:
1) создать с помощью текстового редактора файл с текстом программы на языке ассемблера;
2) транслировать программу с помощью ассемблера TASM (или MASM);
3) Скомпоновать программу с помощью компоновщика (редактора связей) TLINK(или LINK);
Запустить программу на выполнение (через отладчик).
Файл исходного текста программы должен иметь расширение *.asm.
Запуск транслятора осуществляется командой: tasm <исходный файл >.
При этом будет создан объектный файл (*.obj).
Компоновщик использует объектный файл и создаёт исполняемый файл с расширением по умолчанию *.exe. Запуск компоновщика осуществляется командой: link < объектный файл >.
Для запуска под отладчиком необходимо запустить отладчик и загрузить исполняемый файл.
Пример выполнения работы
Задание: Вычислить Х = 3А+(В+5)/2–С–1, где А,В,С,Х – целые знаковые числа занимающие слово. Написать программу, реализующую данную формулу.
Распишем формулу по отдельным операциям:
АХ ← А; значение А в регистре АХ
АХ ← 2*(АХ); значение 2А в регистре АХ
АХ ← (АХ) + А; значение 3А в регистре АХ
ВХ ← В; значение В в регистре ВХ
ВХ ← 5 + (ВХ); значение (В+5) в регистре ВХ
ВХ ← (ВХ)/2; значение (В+5)/2 в регистре ВХ
АХ ← (BX)+(AX); значение 3А+(В+5)/2 в регистре АХ
АХ ← (АХ)–С; значение 3А+(В+5)/2–С в регистре АХ
АХ ← (АХ)–1; значение 3А+(В+5)/2–С–1 в регистре АХ
Х ← (АХ); значение 3А+(В+5)/2–С–1 в регистре Х
В листинге 2.9 приведена структура этой программы на ассемблере.
Листинг 2.9. Пример программы
Data segment
A dw 10
B dw 20
C dw 5
X dw?
Data ends
Code segment
Assume cs: code, ds: data
Start: mov ax, data
Mov ds, ax
Mov ax, a
Sal ax, 1
Add ax, a
Mov bx, b
Add bx, 5
Sar bx, 1
Add ax, bx
Sub ax, c
Dec ax
Mov x, ax
quit:
Mov ax, 4c00h
Int 21
Code ends
End start
Варианты заданий
Разработать программу, реализующую указанную формулу (переменные в программе имеют размер слова). Проверить работоспособность программы на нулевом, единичном и произвольном наборах входных данных. Объяснить полученные результаты. Подтвердить полученные значения расчетами вручную или на калькуляторе.
Блок 1.
1. Х= 4А–3В+С/4
2. Х= 6А-5*(В+С)/2–1
3. Х= (А+2В–С)/4
4. Х= (С–А)/2+(В+С)/8
5. Х= (4А–7В–32С)/2
6. Х= – (–(С+2А)*5+В)
7. Х= 3*(А–2В)+50–С/2
8. Х= (3А+2В) –С/4+217
9. Х= 3*(С–2A)+(В–С+1)/2
10. Х= (2А+В)/4–С/2+168
11. Х= 6*(А-2В+С/4)+10
12. Х= 3*(А–4В)+С/4
13. Х= – (– (С +2А)*5+В*16)
14. Х= А/2–3*(А+В)+С*4
15. Х= 3*(А–2В)+50–С/2
16. Х= 5А+2В–С/4+131
17. Х= А–5*(В–2С)+2
18. Х= –4А+(В+С)/4+2
19. Х= 7А–2В–100+С/2
20. Х= –А /2+4*(В+1)+3С
21. Х= 5*(А–В) –2С+5
22. Х= (А/2+В)/4+С–1
23. Х= – (С+2А+4В)+18
24. Х= 6А+(В–С+1)/2
25. Х= 2–8*(А+В)+С/4
Блок 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 Контрольные вопросы
Назначение директив SEGMENT и ENDS.
Назначение директивы ASSUME.
Назначение директив DB, DW.
Назначение оператора DUP в директивах DB, DW.
Назначение директивы END.
Из каких полей состоит строка программы на ассемблере?
Какие поля обязательны, а какие можно опустить?
8. В чем различие между командами: mov AX, BX и mov AX, [BX]?
В чем разница между командой mov A, 1 и директивой А dw 1?
10. Как Вы считаете, почему в рассмотренном примере для вычитания единицы использовался оператор: dec ax, а не оператор sub ax,1?
Лабораторная работа № «Команды языка Ассемблер. Циклические и разветвляющиеся программы»
Цель работы: научиться использовать циклы и условия при написании программ на языке ассемблер.
Для выполнения работы студент должен: иметь представление об условном и безусловном переходах, уметь составлять программы с использованием циклов и условий, знать определение и свойства массивов.
Теоретические сведения
Электронное представление чисел
Команды передачи, управления служат для передачи управления инструкции, не следующей непосредственно за данной. Управление может передаваться как внутри текущего сегмента кода (внутрисегментная передача управления), так и за его пределы (межсегментная передача управления). Тип передачи управления может быть задан ассемблеру предшествующим адресу перехода ключевым словом NEAR (внутрисегментная) или FAR (межсегментная).
Безусловные переходы
Инструкция безусловного перехода передаёт управление команде, адрес которой указан в инструкции. Команда безусловного перехода имеет вид, представленный в листинге 3.1.
Листинг 3.1. Синтаксис команды условного перехода
jmp [< тип > ptr ] операнд.
<тип> - тип перехода short (короткий) – смещение 127 байтов вперёд или 128 байтов назад, near (близкий) – смещение в пределах сегмента (64 Кбайта), far (дальний) – в любой сегмент с любым смещением.
ptr – приставка, которую можно перевести как указанный в...
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!