Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Презентации / lection4-Уже знаем.ppt
Скачиваний:
18
Добавлен:
11.04.2015
Размер:
599.04 Кб
Скачать

Уже знаем

или

Директивы сегмента

Имя SEGMENT {счетный} {комбинированный} {‘класс’}

Имя ENDS

В качестве счетного типа может использоваться

»Byte

»Word

»Para

»Page

В качестве комбинированного типа:

Public

Stack

Common

Memory

At адрес

;Простая программа с тремя сегментами ;Укажем соответствие сегментных регистров сегментам assume CS:code,DS:data

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

code segment ;Откроем сегмент команд begin: mov AX,data ;Настроим DS

mov DS,AX ;на сегмент данных; Выведем на экран строку текста

mov АН,09h ;Функция DOS вывода на экран mov DX,offset msg ;Адрес выводимой строки int 21h ;Вызов DOS

;Завершим программу

mov AX,4C00h ;Функция DOS завершения программы int 21h ;Вызов DOS

code ends ;Закроем сегмент команд ;Опишем сегмент данных

data segment ;Откроем сегмент данных

msg db "Программа работает!$' ;Выводимая строка data ends ;Закроем сегмент данных

;Опишем сегмент стека

stk segment stack ;Откроем сегмент стека db 256 dup (?) ;Отводим под стек 256 байт stk ends ;Закроем сегмент стека

end begin ;Конец текста с точкой входа

1. Какие команды заставляют ассемблер печатать заголовок в началекаждой страницы листинга и делать прогон листа?

2. Какие из следующих имен неправильны: а) PC_AT, б) $50, в) @$_Z,г) 34B7, д) AX?

3. Какое назначение каждого из трех сегментов, описанных в этойглаве?

4. Что конкретно подразумевает директива END, если она завершает а)программу, б) процедуру, в) сегмент?

5. Укажите различия между директивой и командой.

6. Укажите различия в назначении RET и END.

7. Для сегментов кода, данных и стека даны имена CDSEG, DATSEG и STKSEG соответственно. Сформируйте директиву ASSUME.

8. Напишите три команды для инициализации стека адресом в DS инулевым адресом.

1.Создайте LST-файл.

2.Вызовите DEBUG файл .EXE

3. Для просмотра сегмента стека введите

D SS:0

4.Введите R для просмотра содержимого регистров и

5.выполните прогpамму с помощью команды T (трассировка). Обратите внимание на воздействие двухкоманд PUSH на стек - в вершине стека теперь находится содержимое регистра DS и нулевой адрес. В процессе пошагового выполнения программы обратите внимание на содержимое регистров. Когда вы дойдете до команды RET, можно ввести Q(Quit - выход) для завершения работы отладчика.

Сегментация памяти

Производить обмен с памятью можно только относительно одного из 4х этих сегментных регистров. Таким образом, физический адрес числа или команды вычисляется центральным процессором по формуле

где SEG – значение сегментного регистра, а A –заданное в команде смещение. Физический адрес берётся по модулю 220, чтобы он не

вышел за максимальный адрес памяти.

Экзотическая особенность представления чисел в ПК

Соседние файлы в папке Презентации