Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
asm.doc
Скачиваний:
6
Добавлен:
09.11.2019
Размер:
913.41 Кб
Скачать

Розв’язування задач за тематикою заняття

Задача 1. Використовуючи директиву ASSUME пов’язати сегментні регістри із сегментами наступним чином : регістр CS із сегментом Сode, відповідно – DS із – Data, SS із – Stack, а регістр ES - не використовувати.

Розв’язання.

ASSUME CS:Сode, DS: Data, SS:Stack, ES:Nothing.

Задача 2. Написати фрагмент програми, ініціалізації сегментних регістрів DS та ES для використання із сегментами даних Code та DataExt відповідно.

Розв’язання.

mov AX,Code

mov DS,AX

mov AX,DataExt

mov ES,AX

Задача 3. Визначити, яка наведених послідовностей знаків не ідентифікатори мови асемблера:

.abc $abc1 _abc3 abc.a @abc @abc@a ?abc@

Розв’язання.

Не відповідає поняттю ідентифікатора мови асемблера послідовність знаків

abc.a. Знак крапка(.) в ідентифікатора дозволяється використовувати тільки на початку послідовності.

Завдання для самостійної роботи

  1. Написати фрагмент програми, застосовуючи директиву ASSUME, використання сегментних регістрів:

    1. CS, DS - Сode, SS - Stack, ES - не використовувати ;

    2. CS, DS, SS - Сode, ES - не використовувати ;

    3. CS, DS, SS, ES - Сode ;

    4. CS - Сode, DS - Data, SS - Stack, ES - Data ;

    5. CS - Сode, DS - Data, SS - Stack, ES - DataExt.

  2. Написати фрагмент програми, ініціалізації сегментних регістрів DS та ES для використання із сегментами даних відповідно

    1. Data та DataExt;

    2. Сode та Data;

    3. Data та Сode;

    4. MyData та DataExt;

    5. Data та MyData;

  3. Визначити, яка наведених послідовностей знаків не ідентифікатором мови асемблера:

1) .abc $abc1 3abc abc@a @ab12c ;

2) aAbc $B1B1 aB%b abc@a @abc;

3) a77ew $B2Ba aB..b abc @43ab;

4) 4Ah ___B a__B @64@ @64avc;

5) aAbc _B*B a4B aor ?ab5;

  1. Використовуючи текстовий редактор набрати приклад 1 та зберегти відповідно у файлі begin1.asm.

  2. Здійснити компіляцію програми, створивши файл роздруку. З файлу роздруку виписати об’єктний код програми у шіснадцятковому вигляді.

  3. Здійснити компонування програми(створити завантажувальний модуль).

  4. Протестувати виконання за допомогою налагоджувача (td.exe).

Лабораторна робота № 2.

Тема: Директиви визначення даних. Команди MOV, ADD, SUB, INC, DEC.

Мета. Вивчення методів визначення даних та способи резервування полів пам’яті для даних. Ознайомлення із командами обробки двійкових даних. Розробка програм обчислення простих арифметичних виразів.

План заняття :

  1. Директиви визначення даних.

  2. Директива повторення DUP.

  3. Сталі.

  4. Директиви визначення сталих EQU та =.

  5. Представлення в пам’яті цілих чисел.

  6. Команда пересилки даних MOV.

  7. Команди двійкового додавання та віднімання.

  8. Обчислення цілих арифметичних виразів.

Література : [1] c. 76-88; [2] c. 49-55; [3] c. 42-54; [4] c. 21, 23-25,35,43,77-80,102,148,151-152.

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

1. Директиви визначення даних.

Загальна структура директив визначення даних

[ Ім’я ] Dn вираз [ ,вираз ]

Ім’я - це ідентифікатор визначає елементи даних, може бути відсутній. Визначення даних за допомогою імен полегшує розробку програм.

Dn - визначає розмір елементів даних в байтах : DB - байт, DW-слово, DD - подвійне слово, DP - 6 байтів, DQ -8 байтів та DT - 10 байтів.

вираз – задає початкове значення елементів. Вираз може складатися із числових сталих, символьних рядків або знака запитання(?). Знак запитання використовується для не визначених даних. Вираз також допускає повторення сталих за допомогою директиви – DUP. Елементи виразу розділяються комами.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]