Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод_з_1.doc
Скачиваний:
15
Добавлен:
01.03.2025
Размер:
2.57 Mб
Скачать

8.3.3. Дополнительные средства ассемблера

В языке ассемблера существуют средства, позволяющие, во-первых, задать используемую в программе модель памяти и, во-вторых, упростить описание сегментов такой программы. Модель памяти задается с помощью директивы .model. В качестве аргумента этой директивы выступает ключевое слово, определяющее используемую модель памяти. Малая (трёхсегментная) модель описывается ключевым словом small, крошечная (односегментная) - ключевым словом tiny. Указание директивы .model позволяет далее использовать упрощенные директивы описания сегментов.

Пример программы вывода строки:

.model small

; описание сегмента команд

.code

main proc

mov ax, @data (или _data)

mov ds, ax

mov ah, 09h

mov ax, offset mes

int 21h

; выход в DOS

mov ax, 4c00h

int 21h

main endp

.data

mes db ‘OK!$’

.stack 256 ; размер стека 256 бит

end main

Транслятор языка ассемблер предоставляет набор символических имен (идентификаторов) для сегментов команд (@code или _code), данных (@data или _data) и стека (stack).

Если в программе предполагается использовать расширенный состав команд МП Pentium, то начало программы будет выглядеть:

.386

.model use16 small

.code

….. и т.д.

9. Темы заданий для контрольной работы

Тема 1. Архитектура процессора Intel 8086.

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

Задание: Используя представленный ниже теоретический материал, имеющуюся литературу [9,11,14,21] и предоставленное преподавателем обучающее программное обеспечение студент должен изучить структуру микропроцессора Inlet 8086. В результате выполнения практической работы студент должен знать:

- структуру микропроцессора Intel 8086;

- назначение входящих в него блоков и устройств;

- регистры микропроцессора и их основное назначение;

- структуру и назначение регистра флагов;

- структуру памяти и особенности принципа сегментации;

- принцип прерываний;

- режимы адресации;

- последовательность написания программ на языке Ассемблера.

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

1. В реальном режиме работы процессора существует дна способа описания адресации памяти: в форме "сегмент-смешение" и линейные адреса: преобразуйте приведенные ниже адреса, используемые процессором в реальном режиме и заданные в форме "сегмент-смешение", в линейные адреса:

а) 0950: 0100; б) 0CD1: 02Е0.

2. Почему в операционной системе MS DOS нельзя было запускать программы, разработанные для защищенного режима работы про­цессора?

3. Покажите, что в реальном режиме работы процес­сора могут существовать два разных адреса, заданных в форме "сегмент-смещение", которые соответствуют одному и тому же линейному адресу.

4. Зачем нужна внешняя кэш-память? (см. раздел 6 данного пособия)

5. Какие функции среди микросхем системной логики выполняет контроллер Intel 8259? (см. раздел 7.4 данного пособия и [21])

6. Где расположена память, которая используется для создания видеоизображения? (см. раздел 9.1 данного пособия)

7. Что такое программная заглушка?

8. В каких случаях после выполнения команды IMUL устанавливаются флаги перено­са CF и переполнения OF?

9. В каком из регистров будет находиться частное, если в качестве операнда команды DIV указан регистр:

а) ЕВХ? б) ВХ?

10. В каком из регистров будет находиться произведение, если в качестве операнда команды MUL указан регистр BL?

11. Какое значение будет находиться в регистрах АХ и DX после выполнения приве­денного ниже фрагмента программы?

mov dx,0

mov ax,222h

mov cx,100h

mul ex

11. Какое значение будет находиться в регистре АХ после выполнения приведенного

ниже фрагмента программы?

mov ax,63h

mov bl,10h

div bl

12. Какое значение будет находиться в регистрах ЕАХ и EDX после выполнения приве­денного ниже фрагмента программы?

mov eax,123400h

mov edx,0

mov ebx,10h

div ebx

13. Какое значение будет находиться в регистрах АХ и DX после выполнения приве­денного ниже фрагмента программы?

mov ax,4000h

mov dx,500h

mov bx,1Oh

div bx

14. Напишите последовательность команд, в которой число -276 делится на 10, и ре­зультат записывается в 16-разрядную переменную var1.

15. Каково назначение блока преобразования адресов в МП?

  1. Алгоритм формирования физического адреса памяти из логического?

  2. Размер адресного пространства памяти и В/В в системах на базе МП 8086; как адресуются порты В/В?

  3. Составьте последовательность команд, заменяющую команду XLAT?

  4. В чем состоит различие в использовании флагов CF и OF?

  5. В чем сходство и различие выполнения команд MUL и IMUL, а также DIV и IDIV?

  6. Какие ограничения присущи командам условного перехода?

Примечание: для правильного ответа на вопросы с 7 по 14 используйте книгу [9].