Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Непряма адресація пам'яті програм



Для зчитування даних з пам'яті програм використовується непряма адресація з використанням індексного регістра Z.

 


Адреса константи - байту міститься в регістрі Z . 15 старших бітів визначають адресу слова, а молодший (0-й) біт - молодший або старший байт константи в пам'яті програм: 0 -молодший, 1 - старший байт. Результат читання з пам'яті програм завжди розташовується в регістрі R 0. В AVR-МК передбачена одна команда читання вмісту пам'яті програм: LPM (Load from Program Memory). Напр.

 


Студент повинен

знати :

v Означення регістрової адресації.

v Означення способів адресації перходів.

v Види способів адресації переходів.

v Означення та призначення адресації відносно лічильника команд.

v Означення та призначення абсолютної адресації.

v Означення та призначення безпосередньої адресації.

v Означення та призначення прямої адресації.

v Означення та призначення простої непрямої адресації.

v Означення та призначення відносної непрямої адресації.

v Означення та призначення непрямої адресації з предекрементом.

v Означення та призначення непрямої адресації з постінкрементом.

v Означення та призначення непрямої адресації памяті програм.

вміти :

v Використовувати регісрову адресацію при створення власних програм.

Питання для самоконтролю

1. Дайте означення регістрової адресації.

2. Дайте означення способів адресації перходів.

3. Назвіть види способів адресації переходів.

4. Дайте означення та назвіть призначення адресації відносно лічильника команд.

5. Дайте означення та назвіть призначення абсолютної адресації.

6. Дайте означення та назвіть призначення безпосередньої адресації.

7. Дайте означення та назвіть призначення прямої адресації.

8. Дайте означення та назвіть призначення простої непрямої адресації.

9. Дайте означення та назвіть призначення відносної непрямої адресації.

10. Дайте означення та назвіть призначення непрямої адресації з предекрементом.

11. Дайте означення та назвіть призначення непрямої адресації з постінкрементом.

12. Дайте означення та назвіть призначення непрямої адресації памяті програм.

 Література

[2] с. 24-28, [5] с. 27-29,[10] с. 107-118

 





Робота з файлами у мові Assembler

Питання для опрацювання

1.Робота з файлами у мові Assembler

Методичні рекомендації

Під час вивчення даної теми студенти мають о знайомитись із порядком роботи з файлами у мові Асемблер, навчитись вико-ристовувати файли у власних программах .

Мова Асемблера, так само як і мови високого рівня підтримує роботу з файлами. Усі типові операції для роботи з файлами на рівні DOS (створення, знищення, запис, читання) реалізовані у вигляді певних функцій переривання №21h. Більше того, стандартні функції для роботи з файлами мов високого рівня (наприклад fread , fwrite мови С++) фактично лише здійснюють виклик відповідних функцій переривання №21h. Повний перелік функцій переривання №21h, які виконують роботу з файлами можна отримати із додаткової літератури, наприклад [2 c.181]. Розглянемо призначення деяких функцій:

· Функція 5 Bh виконує створення і відкриття нового файлу. Порядок її виклику є наступним:

Mov ah , 5 Bh

mov cx , <атрибут файла>

 Кожен біт цього атрибуту має такі властивості (1 – встановлення властивості):

- біт 7: файл дозволено відкривати різним процесам в операційній системі Novell Netware;

- біт 6: не використовується;

- біт 5: ознака архівного файлу;

- біт 4: ознака папки (директорії).

- біт 3: мітка тома

- біт 2: ознака системного файлу

- біт 1: ознака прихованого файлу;

- біт 0: ознака файлу тільки для читання.

ds : dx – адреса ASCIIZ-рядка із повним шляхом до файлу. Буква Z в кінці означає, що рядок повинен завершуватись нуль-символом.

У нашому випадку визначення сегмента (запис адреси сегменту даних в регістр ds) відбувається на початку програми, а запис адреси рядка в регістр dx будемо проводити за допомогою команди lea

Int 21h

В результаті виклику цієї функції в регістрі ax у разі успішного відкриття файлу буде знаходитись цифровий ідентифікатор файлу (аналог вказівника на файл мови С++). Він буде використовуватись під час усіх подальших операцій із файлами.

Слід розуміти, що на відміну від інших мов програмування в Асемблері перезапис існуючого файлу не відбувається автоматично. Для цього слід додатково викликати іншу функцію. Тому перед викликом даної функції слід зробити так, щоб файлу, який буде створюватись, не існувало на диску. Якщо не виконати цього, то існуючий файл залишиться незмінним.

· Функція 3Е h виконує закриття файлу. Крім номера функції, який традиційно передається через регістр ah, перед викликом переривання додатково в регістрі bx треба передати цифровий ідентифікатор файлу.

· Функція 40 h виконує запис даних у файл. Вона викликається в такому форматі:

mov ah , 40 h ; номер функції

mov bx , <ідентифікатор>

mov cx ; <кількість байт, які треба записати>

ds : dx – адреса буфера з даними, які будуть записуватись у файл

Int 21 h

      Аналогічно працює функція для читання даних з файлу. Вона має номер 3 Fh.

Студент повинен

знати :

v Призначення функції 5Bh.

v Порядок виклику функції 5Bh.

v Призначення функції 3Еh.

v Призначення функції 40h.

v Призначення функції 3Fh.

вміти :

v Використовувати роботу із файлами у власних програмах.

Питання для самоконтролю

1. Назвіть призначення функції 5Bh.

2. Назвіть порядок виклику функції 5Bh.

3. Назвіть призначення функції 3Еh.

4. Назвіть призначення функції 40h.

5. Назвіть призначення функції 3Fh.

 Література

[2] c. 182-193


Поделиться:



Последнее изменение этой страницы: 2019-04-19; Просмотров: 308; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.014 с.)
Главная | Случайная страница | Обратная связь