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


Полезное:

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


Категории:

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






Доступ к регистрам





1). В любой программе, разрабатываемой в среде Турбо-Си по умолчанию предопределены имена: _AX, _AL, _AH, _BX, _BL, _BH, _CX, _CL, _CH, _DX, _DL, _DH, _ES, _SS, _CS, _DS, _SI, _DI, _BP, _SP. Эти переменные (т.наз. псевдорегистры) типа int и char могут быть использованы для доступа к регистрам микропроцессора.

2). При обращениях к прерываниям передача входных и выходных параметров происходит через регистры. Для этих целей используются следующие описания данных, находящиеся в файле DOS.H (там же находятся и описания всех рассматриваемых далее функций и макросов).
Объединение REGS, используемое для задания содержимого регистров общего назначения:

union REGS { struct WORDREGS x; struct BYTEREGS h; }; struct WORDREGS { unsigned int ax, bx, cx, dx; unsigned int si, di, cflag, flags; }; struct BYTEREGS { unsigned char al, ah, bl, bh; unsigned char cl, ch, cl, dh; };


Поле flags структуры WORDREGS отражает состояние флагов микропроцессора, а поле cflag - состояние системного флага переноса CY, в котором обычно при обращениях к DOS и к BIOS индицируется ошибка. Использование объединения REGS позволяет программисту обращаться к регистру общего назначения как к целому двухбайтному слову или к каждому байту этого слова, выбирая описатель второго уровня x или h соответственно. Так, если в программе имеется определение:

union REGS rr;

то результаты выполнения операторов:

rr.x.ax=0x1122;

и:

rr.h.ah=0x11; rr.h.al=0x22;

будут одинаковы.
Структура SREGS, служащая для задания содержимого сегментных регистров:

struct SREGS { unsigned int es, cs, ss, ds; };

Наконец, структура REGPACK, обеспечивающая наиболее полный набор регистров микропроцессора:

struct REGPACK { unsigned int r_ax, r_bx, r_cx, r_dx; unsigned int r_bp, r_si, r_di; unsigned int r_ds, r_es, r_flags; };

Данные этих типов служат агрументами функций обращения к прерываниям.

3). Интересный способ доступа к регистрам возможен в программах обработки прерываний, он будет рассмотрен ниже вместе с такими программами.

Date: 2015-05-23; view: 606; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



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