Команды работы со стеком.

PUSH rp (rp = B, C; D, E; H, L, PSW) -Запоминание значения регистров в стеке. При выполнении команды содержимое пары регистров запоминается в стеке. Одной из пар регистров является слово состояния процессора PSW, которое состоит из содержимого аккумулятора (старший байт) и регистра состояния (младший байт). Нет такой команды, при выполнении которой запомнится в стеке только один регистр.

Пример:

PUSH B. При выполнении этой команды <B,C>, запоминается в вершине стека, а указатель стека уменьшается на 2. <B> запоминается первым, потом <C> заканчивает стек в его вершине.

POP rp (rp = B, C; D, E; H, L, PSW)- Загрузка регистров из стека. По этой команде пара регистров rp загружается содержимым вершины стека.

Пример: POP D. Эта команда загружает регистры D и E из вершины стека и увеличивает указатель стека на 2. Регистр Е загружается первым.

Стек имеет следующие особенности:

§ указатель стека содержит адрес ячейки, которая была занята самой последней (младший занятый адрес). Стек может быть расположен в любом месте памяти;

§ данные запоминаются в стеке с использованием предуменьшения, то есть команды уменьшают указатель стека на 1 перед запоминанием каждого байта;

§ данные загружаются из стека с использованием послеувеличения, то есть команды увеличивают указатель стека 1 после загрузки каждого байта;

§ отсутствуют указатели выхода за границы стека в ту или иную сторону, что типично для микропроцессоров всех типов.

SPHL - Загрузка указателя стека (sp) – однобайтная команда.

<H> ® <<SP> +1>; <L> ® <<SP>>.

 

PCHL - Загрузка программного счетчика PC .

<H,L> ® <PC>.

 

 

3.6. Программирование арифметических и логических операций.

 

С помощью одного байта можно представить 256 различных чисел. Старший разряд байта интерпретируется как знаковый (0 – положительное, 1 – отрицательное число). Все остальные биты используются для представления численного значения. Таким образом, в одном байте может быть представлены числа в диапазоне от –127 до 127.

Для представления отрицательных чисел используется дополнительный код.

Дополнительный код А*=> .

Например, двоичный код числа А=-10: А=0000 1010

А*=1111 0101+0000 0001=1111 0110

ë знаковый бит.

Как при сложении, так и при вычитании операнды в пределах от 0 до 255 интерпретируются как положительные восьмиразрядные числа. При вычитании вычитаемое преобразуется в его дополнительный код и затем суммируется с уменьшаемым. Если суммирование приводит к результату большему 255 (переполнение), то С–бит становится равным единице, в противном случае С=0.

Процессор имеет возможность выполнять операции сложения и вычитания чисел от –127 до +127 т.о., что результат имеет правильный знак. Для представления знака результата арифметической операции используется бит состояния S. Он устанавливается в единицу, если старший бит регистра А[7]=1. В противном случае он сбрасывается.

Примеры арифметических операций 8-разрядных чисел.

 

Сложение: [+] [0] вычитание: [7] [0]

10 0000 1010 -10 0000 1010

8 0000 10008 0000 1000

18 0001 0010 2 0001 0010

<C-бит>=0 <S>=0 <C> =0 <S>=0

 

+10 0000 1010 -10 0000 1010

(-12) 1111 0100 12 1111 0100

-2 0 1111 1110 -2 1111 1110


<C>=0 <S>=1 <C> =1 <S>=1








Дата добавления: 2016-02-09; просмотров: 1073;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.