Мегаобучалка Главная | О нас | Обратная связь


Регистры общего назначения



2016-09-16 594 Обсуждений (0)
Регистры общего назначения 0.00 из 5.00 0 оценок




При программировании на языке ассемблера регистры общего назначения являются основными рабочими регистрами. Особенностью этих регистров является то, что возможна использование их не только как единого целого, но и по частям. Так 32-х разрядные регистры имеют в качестве младшей половинки соответствующий 16-ти разрядный регистр (однако, старшая половинка не адресуема). А 16-ти разрядные, в свою очередь имеют адресуемые младшие и старшие одно байтовые половинки.

Регистры EAX и AX. Регистры EAX и AX являются аккумуляторами и применяются для всех основных операций ввода-вывода, некоторых операций над строками и некоторых арифметических операций. Например, команды умножения, деления и сдвига предполагают использование регистров EAX и AX. Некоторые команды генерируют более эффективный код, если они имеют ссылки на регистры EAX и AX.

EAX

AX

AH AL

Регистры EBX и BX. Регистры EBX и BX являются базовыми регистрами. Эти регистры общего назначения могут использоваться в качестве "индекса" для расширенной адресации. Другое общее их применение - вычисления.

EBX

BX

BH BL

Регистры ECX и CX. Регистры ECX и CX являются счетчиками. Они необходимы для управления числом повторений циклов и для операций сдвига влево или вправо. Эти регистры используется также для вычислений.

ECX

CX

CH CL

Регистры EDX и DX. Регистры EDX и DX являются регистрами данных. Они применяется для некоторых операций ввода-вывода и тех операций умножения и деления над большими числами, которые используют регистровые пары EDX:EAX или DX:AX.

EDX

DX

DH DL

Все регистры общего назначения могут участвовать в операциях сложения и вычитания как 8-ми, 16-ти и 32-х битовых значений.

Регистры-указатели

Регистры-указатели ESP/SP и EBP/BP обеспечивают системе прямой доступ к данным в сегменте стека. Иногда их используют для операций сложения и вычитания. Регистры SP и BP в 32-х разрядных процессорах являются младшими половинками ESP и EBP соответственно.

Регистры ESP и SP - указатели стека. Указывают на текущую вершину стека.

ESP

SP

Регистры EBP и BP - указатели базы. Используются в адресации по базе. Можно использовать для доступа к данным в стеке без использования команд push/pop.

EBP

BP

При этом регистры SP и BP используется при 16-ти разрядном режиме адресации, а ESP и EBP – при 32-х разрядном.

Индексные регистры

Индексные регистры ESI/SI и EDI/DI используются в индексной адресации. Иногда их используютдля операций сложения и вычитания.

Регистры ESI и SI - индекс источника при операциях со строками.

ESI

SI

Регистр EDI и DI - индекс приемника при операциях со строками.

EDI

DI

Регистр командного указателя

Регистры EIP/IP содержат смещение команды, которая должна быть выполнена.

EIP

IP

 

Регистр флагов

Флаговые регистры (EFLAGS/FLAGS) определяют текущее состояние машины и содержат результаты выполнения некоторых команд (многие арифметические команды и команды

сравнения изменяют состояние флагов).

Флаг Назначение

o(переполнение) ситуация переполнения возникает, когда результат умножения или деления не помещается в приемнике

d(направление) указывает на левое или правое направление при операциях со строками

i(прерывание) указывает на возможность внешних прерываний

t(пошаговый режим) переводит процессор в пошаговый режим выполнения команд

s(знак) содержит знак результата последней арифметической операции (0 - плюс, 1- минус)

z(ноль) содержит 1, если результат последней арифметической операции 0, и 0 – в противном случае

a(внешний перенос) содержит результат переноса из 3-го бита в байте при операциях с целыми числами в BCD-формате

c(перенос) содержит результат переноса из старшего бита после арифметических операций

p(четность) содержит 1, если в младших 8-ми битах 16-ти разрядных регистров четное количество единиц, и 0 - в противном случае

Структура программы на языке ассемблера

Структура программы на языке ассемблера сильно зависит от используемого компилятора и целевой операционной системы. В данном лабораторном практикуме используется пакет OpenWatcom, использующий синтаксис Intel и предназначенный для ОС DOS, Windows и OS/2.

Типичная программа на языке ассемблера (не только для DOS) содержит описание сегментов (секций) кода, данных и стека.

DOS-программа exe-формата может иметь следующую структуру:

;--------------------------------------------------

; Сегмент кода:

;--------------------------------------------------

CodeSg segment 'CODE'

; Подсказываем ассемблеру какие сегментные регистры

; указывают на какой сегмент:

Assume CS:CodeSg, DS:DataSg, SS:StackSg

; Точка входа в программу (указывается в завершающем

; программу операторе end):

begin:

; Собственно код:

; инициализируем DS:

Mov AX, DataSg

Mov DS, AX

; Ваш код

; нормальное завершение DOS-программы

Mov AX, 4C00h

Int 21h

CodeSg ends

;--------------------------------------------

; Сегмент данных:

;--------------------------------------------

DataSg segment 'DATA'

; Ваши данные

DataSg ends

;--------------------------------------------

; Сегмент стека:

;--------------------------------------------

StackSg segment stack 'STACK'

; резервируем под стек 256 байт,

; заполненых нулями:

Db 256 dup(0)

StackSg ends

;------------------------------------

End begin

 

Режимы адресации

В зависимости от того откуда и куда передаются данные и каким способом, различаются несколько режимов адресации:

• регистровая;

• непосредственная;

• прямая;

• косвенная;

•по базе со смещением;

•по базе с индексированием;

•стековая.

Регистровая адресация

Этот вид адресации предполагает передачу данных из одного регистра в другой.



2016-09-16 594 Обсуждений (0)
Регистры общего назначения 0.00 из 5.00 0 оценок









Обсуждение в статье: Регистры общего назначения

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы...
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (594)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.009 сек.)