Составители:
8
mov c, 0 ; Data[20h.0] → С , где С=20h.0 – нулевой бит ячейки Data
mov ACC.7, c ; С → Acc.7,
mov c, x0 ; x0 - имя бита
с) Stack – в памяти Data с косвенным доступом через регистр-указатель
вершины SP, пре-автоинкремент (+SP) при записи и пост-автодекремент (SP-)
при чтении
push ad
Например, push Acc обозначает SFR[Acc] → Data[+SP]
pop ad
Например, pop 22h обозначает Data[SP--] → Data[22h]
При включении и сбросе MCU устанавливается SP=07.
При
переполнении Стека следующий адрес вершины SP=0;
3. Постоянная память программ и констант Code, 64 кб адресное
пространство,
mov a,#d ; Code[PC+] → Асс , #d непосредственный операнд
movc a,@a+pc ; Code[PC + Acc] → Acc ; адресация относительно
; текущего РС, в АСС индекс
movc a,@a+dptr ; Code[dptr + Асс] → Acc ; базовая индексная
адресация- база в DPTR, в АСС смещение (индекс)
4. Расширенная память данных
Xdata – запись и чтение данных при
исполнении программ. Объем адресного пространства 64 Кбайта:
movx a, @dptr ; Xdata[dptr] → Асс
movx @dptr,a ;
movx a, @r0 ; Xdata[P2.@r0] → Асс, в P2 адрес страницы, @r0 –
смещение в странице, P2.@r0 обозначает конкатенацию)
1.2. Арифметические операции
Используются следующие форматы данных:
− знаковое 8-разрядное целое;
− беззнаковое 8-разрядное целое;
− 8-разрядный двоичный код;
−
биты;
− 2-х разрядное десятичное число в 8-4-2-1 коде.
a) Знаковая Арифметика.
Отрицательные числа традиционно представлены дополнительными
кодами:
add a, {Ri,@rj,#d,ad} ; a + {..} → a, признаки C,OV,P в PSW
в скобках {.. } обозначены режимы адресации второго операнда
Страницы
- « первая
- ‹ предыдущая
- …
- 6
- 7
- 8
- 9
- 10
- …
- следующая ›
- последняя »