28-12-2014_12-52-57 / задачи
.docx-
Задача
Сумма элементов массива.
Ввод из РА5. Результат выводится в DXR1. Цикл - banz, число элементов - const. Числа дробные, знаковые.
.def _c_int00
PA5 .set 5
DXR1 .set 43h
cnt .set 8-1
.mmregs
_c_int00 ld #0, DP
ssbx sxm
ssbx ovm
stm #cnt, AR1
ld #0, B
loop portr PA5, Al
add Al, B
banz loop, *AR1-
stlm B, DXR1
nop
.end
-
Задача
Найти min из массива data.
Ответ вывести в РА5. Числа целые, беззнаковые. Число элементов - в ячейке памяти cnt. Цикл - rptb.
.def _c_int00
PA5 .set 5
.data
cnt .word 5-1
data .word 1,3,5,7,4
.mmregs
.text
_c_int00 ld #data, DP
rsbx sxm
stm #data, AR1
mvdm #cnt, brc
ld *AR1, A
rptb loop-1
ld *+AR1, B
min A
loop portw аl, PA5
nop
.end
-
Задача
Прибавить к каждому элементу массива некоторое число из ячейки памяти (+K).
Вход - массив в памяти данных Vhod. Выход - DXR0. Число элементов - const. Цикл - banz. Числа целые, беззнаковые.
.def _c_int00
DXR0 .set 23h
cnt .set 8-1
.data
Vhod .word 1,2,5,8,9,1,4,9
K .word 5
.text
_c_int00 ld #0, DP
rsbx sxm
ssbx ovm
stm #Vhod, AR3
stm #cnt, AR2
stm K, AR4
loop banzd loop, *AR2-
add *AR3+, *AR4, A
sth A, DXR0
nop
.end
-
Задача
Инвертировать знаковый разряд.
Вход - РА5. Ответ вывести в ВЧК1. Числа дробные, со знаком. Число элементов - const. Цикл - rptb.
.def _c_int00
PA5 .set 5
DXR1 .set 43h
cnt .set 8-1
inv .set 80h
.mmregs
.text
_c_int00 ld #0, DP
ssbx sxm
stm #cnt, brc
rptb loop-1
port PA5, аl
xor inv, A
stlm A, DXR1
loop nop
.end
-
Задача
Определить количество элементов, не превышающих опред порог Pred.
Массив вводится из DRR0. Ответ вывести в ячейку памяти BOL. Числа целые, со знаком. Число элементов - в ячейке памити cnt. Цикл - ba
.def _c_int00
DRR0 .set 21h
Pred .set 0xA0
.data
BOL .word 0
cnt .word 8
.text
_c_int00 ld #0, DP
st #0, BOL
ssbx sxm
mvdm cnt, AR1
loop ld DRR0, A
sub #Pred, A
banzd loop, *AR1-
xc 1, agt
mar *AR2+
mvmd AR2, BOL
nop
.end
-
Задача
Подсчёт числа нечётных элементов.
Вход - ячейка памяти MAS, выход - в конец массива, число элементов - const CNT, числа целые со знаком, цикл – BANZ
.def _c_int00
.mmregs
CNT .set 6+1
.data
MAS .word 1,2,3
.text
_c_int00 stm #MAS, AR2
stm #CNT-2, AR1
stm #0, AR3
loop bit *AR2+, 15
bc m1, NTC
mar *AR3+
m1 banz loop, *AR1-
mvkd AR3, *AR2+
nop
.end