"РЛ" - НАЧИНАЮ Щ ИМ
и
Роман Абраш
г. Новочеркасск
E-mail:
a r v @ r a d io lig a .c o m
j j
S
j t -
Глава 13. Команды переходов
Как обычно, разберем предыдущее задание. В качестве варианта решения
предлагаю следующие варианты:
1.
Заполнение области памяти нулевыми значениями. Адрес начала -130, количество - 131.
к
П р о д о л ж е н и е .
Н а ч а л о в № 1 -5 /2 0 0 7
ZeroFill:
LoopFill:
; пусть наша подпрограмма называется так ©
PUSH
RO
; сохраним в стеке R0
PUSH
R1
; сохраним и Rl
MOV
0RO, #0
; заносим ноль по очередному адресу
INC
RO
; следующий адрес ячейки
DJNZ
Rl, LoopFill
; цикл заданного количества повторов
ЮР
R1
; восстановим Rl
ЮР
RET
RO
; и R0
2.
Копирование областей памяти. Адрес начала источника в ВО, адрес начала приемника в В1, количество копируемых
байт в В2.
СоруМет:
LoopCopy:
; пусть наша подпрограмма называется так ©
PUSH
RO
; сохраним в стеке R0
PUSH
Rl
; сохраним и И1
PUSH
R2
; и И2 тоже сохраним
PUSH
ACC
; аккумулятор тоже, он потребуется
MOV
A, 0RO
; извлекаем очередное значение из области-источника
MOV
0R1, A
; и заносим его в очередную ячейку области-приемника
INC
RO
; следующий адрес ячейки-источника
INC
Rl
; следующий адрес ячейки-приемника
DJNZ
R2, LoopCopy
; цикл заданного количества повторов
ЮР
ACC
; начнем восстановление с
; аккумулятора
ЮР
R2
; восстановим
Я2
ЮР
Rl
; восстановим Rl
ЮР
RO
; и R0
RET
3. Обмен содержимого
байт в R2.
ChangeMem: ; пусть
PUSH
PUSH
PUSH
PUSH
MOV
LoopChange:
XCH
XCH
INC
INC
DJNZ
POP
POP
POP
POP
RET
областей памяти. Адрес начала одной области в ВО, адрес начала приемника в 131, количество
наша подпрограмма называется так ©
R0
R1
R2
АСС
A, 0RO
сохраним в стеке R0
сохраним и И1
и
Я2
тоже сохраним
аккумулятор тоже, он потребуется
извлекаем очередное значение из области 1
A, 0R1
A, 0RO
R0
R1
R2, LoopChange
АСС
R2
R1
R0
меняем местами А и очередной байт из области 2
меняем местами А и очередной байт из области 1
следующий адрес в области 1
следующий адрес в области 2
цикл заданного количества повторов
начнем восстановление с аккумулятора
восстановим I*2
восстановим Е1
и R0
36
U
Радиолюбитель - 0 6 /2 0 0 7
предыдущая страница 36 Радиолюбитель 2007-06 читать онлайн следующая страница 38 Радиолюбитель 2007-06 читать онлайн Домой Выключить/включить текст