РЕГИСТРЫ
Регистры Н и L (пара регистров Н) представляют собой основной ре гистр адреса памяти. Команды, которые ссылаются на регистр М, в действи тельности ссылаются на адрес памяти в этой паре регистров.
Регистры D и E (пара регистров D) представляют собой дополнительный Регистр адреса памяти, так как программист может поменять их содержимое с содержимым Н и L, используя команду XCHG. Регистры В и С (пара регистров В) являются регистрами общего назначения без каких-либо отличительных особенностей, хотя команды LDAX (загрузить аккумулятор косвенно) и STAX (запомнить аккумулятор косвенно) могут использовать их в качестве адресных регистров. Обычно программисты используют регистры В и С для счетчиков и временного хране ния данных.
Индивидуальные особенности отдельных регистров можно описать следующим образом;
Аккумулятор. Единственный регистр длиной в байт, который может быть
прямо загружен или записан в память. Единственный регистр,который можно сдвигать, инвертировать ил и корректировать в двоично-десятичный вид с
помощью одной команды. Единственный регистр, который может быть за
писан в порт вывода (с помощью команды OUT) или загружен из порта вы вода (с Помощью команды IN) . Исходный регистр и регистр назначения для всех арифметических и логических команд, за исключением DAD, OCR, DCX, INR и INX. Единственный регистр, который может быть загружен из регистра маски прерываний (командой RIM) или записан в регистр маски прерыва ний (SIM).
Регистры Н и L. Единственная пара регистров, которая может быть использована косвенно ( с помощью ссылки на регистр М) в командах ADC,
ADD, ANA, CMP, DCR, INR, MOV, MVI, ORA, SBB, SUB и XRA. Единственная пара регистров, которая может быть прямо загружена или записана в память. Исходные регистры и регистры назначения для команды DAD. Единственная пара регистров, которую можно обменять с регистрами D и Е и с вершиной стека. Единственная пара регистров, которую можно переслать в указатель стека (используя команду SPHL) или в счетчик команд (командой PCHL). Единственная пара регистров, которая может быть сдвинута одной коман дой (DAD H).
Регистры D и Е. Единственная пара регистров, для которой возможен об
мен данными с регистрами Н и L (с помощью команды XCHG).
Указатель стека. Единственный адресный регистр, который обеспечивает автоприращение (приращение адреса после выполнения команды) и авто уменьшение (уменьшение адреса до выполнения команды). Может быть за
гружен только командой LXI или SPHL. Его значение можно определить
только с помощью загрузки 0 в пару регистров Н и L с последующим использованием команды DAD SP. Единственная пара регистров, которая может быть использована для передачи других пар регистров в память или из памяти (команды PUSH и POP) или для записи в память или чтения из нее счет чика команд ( команды CALL и RETURN).
Слово состояния процессора (PSW). Содержит в себе аккумулятор (старший байт) и флаги (младший байт). Может быть только передано в стек или из стека с помощью команд PUSH и POP.
Отметим следующее:
Только аккумулятор и регистры Н и L могут быть прямо загружены из
памяти или записаны в память. Для других регистров или пар регистров нет команд, эквивалентных командам LDA, STA, LHLD или SHLD.
Только адрес в Н и L (регистр М) можно использовать для всех команд, кроме загрузки или записи аккумулятора в память. Только адрес в H и L может быть использован для передачи данных в другие регистры или из их в арифметических или логических командах. Только команды DCR, DCX, DAD, INR и INX позволяют выполнять арифметические операции без использования аккумулятора (команды DCR и INR можно применять и для аккумулятора). Из этих команд только DCR, DAD и INR изменяют значение флагов; DCR и INR изменяют все флаги/кро ме переноса, в то время ка к DAD изменяет только флаг переноса.
ПЕРЕДАЧА ИЗ РЕГИСТРА В РЕГИСТР
Команда MOV может передавать любой 8-разрядный регистр общего на значения (А , В, С, D, Е, Н или L ) в любой другой 8-разрядаый регистр обще го назначения. Регистр флагов (F ) может быть только передан в стек или получен из стека вместе с аккумулятором (с помощью PUSH PSW и POP PSW).
Регистр маски прерываний (только в 8085) может быть передан в аккумулятор или из него с помощью команд RIM или SIM. Команда XCHG обменивает пары регистров D и Н. Обычно используют следующие команды передачи:
MOV A, REG передает содержимое регистра в аккумулятор; MOV REG, А передает содержимое аккумулятора в регистр; MOV REG, М загружает регистр содержимым памяти по адресу в регистрах Н и L;
MOV М, REG записывает содержимое регистра в память по адресу в реги страх Н и L;
ХСНС обменивает содержимое пары регистров D (регистры D и Е) с со держимым пары регистров Н (регистры Н и L)
В команде MOV регистр назначения является первым операндом, таким об разом, MOV REGI, REG2 передает содержимое REG2 в REG1, что обратно со глашению, предложенному в стандарте 694 IEEE для команд языка ассемблера. Команда MOV изменяет регистр назначения, но не влияет на регистр-источник. Команда XCHG изменяет четыре регистра (D, Е, Н и L) ; таким образом, эта команда эквивалентна четырем командам MOV плюс некоторым промежуточным командам, сохраняющим один байт данных во время передачи другого. Ни MOV, ни XCHG не влияют на флаги.
Do'stlaringiz bilan baham: |