Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Dti ends





DT2 SEGMENT /программный сегмент DT2

С DB 'hello1

DT2 ENDS

CODE SEGMENT;программный сегмент CODE

ASSUME CS:CODE, DS:DT1, ES:DT2

BEG: MOV AX,DT2

MOV DS,AX

MOV BH,C

CODE ENDS

END BEG;конец текста программы

Предложения программного сегмента ассемблер размещает в од-

Ном сегменте памяти (в совокупности они не должны занимать бо-

Лее 64 Кб) начиная с ближайшего свободного адреса, кратного 16.

Номер (первые 16 битов начального адреса) этого сегмента стано-

Вится значением имени сегмента. В MASM это имя относится к кон-

Стантным, а не к адресным выражениям, в связи с чем в команде

MOV AX,DT2

Второй операнд является непосредственным, поэтому в регистр АХ

Будет записано начало (номер) сегмента DT2, а не содержимое на-

Чальной ячейки этого сегмента.

Режимы процессора. Система команд процессоров 180x86... 399

Имена же переменных (А, в, с) и метки (BEG) относятся к ад-

Ресным выражениям, и им ставится в соответствие адрес их ячейки

относительно ≪своего≫ сегмента:

Имени А соответствует адрес 0;

Имени в —адрес 1;

Имени с —адрес 0, а метке BEG —адрес 0.

Все ссылки на предложения одного программного сегмента ас-

Семблер сегментирует (по умолчанию) по одному и тому же сегмент-

Ному регистру. По какому именно —устанавливается специальной

Директивой ASSUME. В нашем примере эта директива определяет, что

Все ссылки на сегмент CODE должны (если явно не указан сегмент-

Ный регистр) сегментироваться по регистру CS, все ссылки на DT1 — по регистру DS, а все ссылки на DT2 —по регистру ES.

Встретив в тексте программы ссылку на какое-либо имя (напри-

Мер, на имя с в команде MOV AX, с), ассемблер определяет, в каком

Программном сегменте оно описано (у нас — в DT2), затем по ин-

Формации из директивы ASSUME узнает, какой сегментный регистр

Поставлен в соответствие этому сегменту (у нас —это ES), и далее







Date: 2015-11-13; view: 380; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию