Содержимое HL перемещается в указатель стека SP
(SP) ß (HL)
(SP) ß (<Б3><Б2>)
Запись и чтение содержимого стековой памяти.
В стековую память записываются данные регистров РОН : (ВС ), (DE), (HL), PSW
Команда записи данных в стековую память
Например : PUSH B ; в стековой памяти запись содержимого ВС.
Команда чтения данных из стековой памяти
Например :РОР D ;запись содержимого стековой памяти в регистровую
пару ( DE).
Обращение к подпрограммам.
При выполнении основной программы можно организовать ветвление программы не только с помощью команд безусловного и условного переходов, но и путем применения команд “обращения к подпрограммам”.
Команда обращения к подпрограмме.
(РС) ß (<Б3 ><Б2>)
(SP)ß(SP)- 2
Последней командой в подпрограмме должна быть команда
(PC)L ß(SP) (SP)ß(SP)+2
(PC)H ß(SP)+1
Последовательность разработки, отладки и выполнения программ на языке “assembler” для симулятора AVSIM 85.
Этапы разработки, отладки и выполнения программ на AVSIM 85.
- Словесная (вербальная) постановка задачи.
- Разработка алгоритма программы.
- Написание программы.
- Трансляция программы – перевод текста пользователя в код МП (obj)
Компоновка программы (hex)
- Отладка программы.
- Выполнение программы.
Рассмотрим последовательность отладки и выполнения программ.
1 этап. Разработать 4-х разрядный двоичный вычитающий счетчик , с произвольными начальными и конечными значениями.
Qнач =5 Qкон = 8
ANI 0F (A)ß(A)^ 0F
2 этап.Разработка алгоритма.
3 этап. Написание программы.
Для написания программы используйте “Блокнот”. Сохранять файл программы с расширением “asm”
Test3.asm
outport equ 1
Qn equ 5
Qk equ 8
Include init .asm
Begin:
MOV C, Qn
M1
MOV A, C
OUT outport
DCR C
MOV A,C
ANI 0F
MOV C,A
CPI 7 ; (Qn-1)
JZ Begin
JMP M1
Include stack.asm
END
Построение счетчика на регистровой паре.
Счетчик на одном регистре обеспечивают к-счета =28=256, поэтому счетчик строится на регистровой паре к-счета =216=65536.
При построении такого счетчика пользователь (разработчик программы) должен на программном уровне сформировать признак нулевого значения в регистровой паре, поскольку на аппаратном уровне в регистре признаков признак нулевого значения , только для одного регистра.
Счетчики на регистровой паре применяются в программах временной задержки.
Рассмотрим фрагмент программы временной задержки
DEL equ 0608C h
Begin :
MOV B,C
CALL DELAY
DELAY LXI B,DEL ;(BC)ßDEL
NOP
NOP
DCX B ;(BC)ß(BC)-1
MOV A,C
ORA B
JNZ DELAY
JMP Begin