Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; Проверить является ли последовательность элементов между двумя заданными
- ; индексами массива упорядоченной по убыванию. Результат проверки записать в
- ; регистр.
- ; проверки записать в регистр.
- ; результат будет записан в A5
- .global _c_int00
- ;///////////////////////////////////////
- ;секция данных
- .data
- array: .ushort 1, 1, 3, 2, 1 ; массив (ответ будет 1)
- ;array: .ushort 1, 2, 3, 4, 5 ; массив (ответ будет 0)
- ;array: .ushort -5, -4, -3, -2, -1 ; массив (ответ будет 0)
- size .set 5 ; размер мессива
- buf: .ushort 0 ; текущее значение массива
- ;; диапазон в котором будет происходить проверка
- left .set 1
- right .set 4
- ;///////////////////////////////////////
- _c_int00: ; метка с которой будет выполняться программа
- ; основной код программы
- .text
- ; записываем адресс массива в регистр
- MVKL .S1 array, A3 ;загружаем адрес массива1 в A3
- MVKH .S1 array, A3
- MVKL .S2 array, B3 ;загружаем адрес массива1 в B3
- MVKH .S2 array, B3
- MVK .S1 right, A2
- MVK .S2 left, B2
- ADD .L1 A2, 1, A2
- || SUB .L2 B2, 1, B2
- MVK .S1 buf, A6
- MVK .S2 buf, B6
- LDH .D1 *A6, A4
- || LDH .D2 *B6, B4
- NOP 4
- ; регистр куда запишется результат в виде 1 или 0 (true или false)
- MVK .S1 1, A5
- ; буферные регисты для хранения предыдущих значения массива
- MVK .S1 -128, A7
- MVK .S2 128, B7
- ; LDW .D1 *A7, A7
- ; || LDW .D2 *B7, B7
- NOP 4
- LOOP:
- ; счетчики
- SUB .L1 A2, 1, A2
- || ADD .L2 B2, 1, B2
- ; достаём элемент массива и записываем его в A4
- LDH .D1 *A3[A2], A4
- || LDH .D2 *B3[B2], B4
- NOP 4
- CMPGTU .L1 A4, A7, A0
- || CMPGTU .L2 B7, B4, B0
- ; NOT .L1 A0, A0
- ; || NOT .L2 B0, B0
- OR .L1 A0, B0, A0
- [!A0] SUB .L1 A5, 1, A5
- [!A0] B .S1 EXIT
- NOP 5
- SUB .S1 A4, 0, A7
- || SUB .S2 B4, 0, B7
- ; если в массиве больше нет значений, то заканчиваем программу
- SUB .L1 A2, B2, A0
- [!A0] B .S1 EXIT
- NOP 5
- ADD .L1 A2, 1, A0
- SUB .L1 A0, B2, A0
- [!A0] B .S1 EXIT
- NOP 5
- ; следующая итерация
- B .S1 LOOP ;переход если A2 <> 0
- NOP 5
- EXIT:
Advertisement
Add Comment
Please, Sign In to add comment