Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Упрощенные директивы сегментации



1. Использование турбоассемблера фирмы Borland позволяет применять упрощенные директивы сегментации - .code, .data,.stack в режиме masm и codeseg, dataseg, stack в режиме ideal для оформления программы.

Директива указания модели памяти model частично управляет размещением сегментов и выполняет функции директивы assume. Обязательным для директивы model является параметр модели памяти. Он определяет модель сегментации памяти для программного модуля: tiny – для программ типа.com; small – для большинства программ, имеющих один сегмент кода и т.д.

Наличие в программе директивы model позволяет использовать идентификаторы @code, @data, @stack для получения адресов соответствующих сегментов.

Ниже приведена программа z1_pr1.asm с упрощенными директивами сегментации.

;=== Программа 3. Файл z2_pr3.asm ===========

masm

model small

stdout=1

lf=10

cr=13

.data

mes db ‘Работаешь на ПК – изучи ассемблер’,cr,lf

meslen=$-mes

stack 256

.code

myproc proc

mov AX,@data

mov DS,AX

;Вывод строки на экран

mov AH,40h

mov BX,stdout

mov CX,meslen

mov DX,offset mes

int 21h

outpr: mov AH,4Ch

mov AL,00h

int 21h

myproc endp

end myproc

;=========================================

2. Проверьте выполнение этой программы на Вашем компьютере.

3. Перестройте ее в тип.com. Для этого смените параметр модели памяти на tiny, уберите сегмент стека и двухходовую команду заполнения регистра DS начальным адресом. Как и ранее, в сегмент кода добавьте организацию программного префикса командой: org 100h. Не забудьте опцию /t при компоновке программы.

;=== Программа 4. Файл z2_pr4.asm ===========

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

1.Перечислите еще четыре, кроме приведенных выше, директивы сегментации турбоассемблера?

2.Какие еще три модели сегментации памяти имеются в турбоассемблере?

3.Зачем необходима двухстрочная комбинация

mov AX,@data

mov DS,AX

для программ типа.exe и почему ее нет в программах типа.COM?

4. Что заменяет директиву макроассемблера assume в турбоассемблере?





Дата публикования: 2014-12-10; Прочитано: 416 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...