Advertisement
Stolar228

Untitled

Apr 6th, 2023
938
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ; Проверить являются ли элементы массива имеющие нечетный индекс
  2. ; упорядоченными по возрастанию, а элементы массива имеющие четный индекс
  3. ; упорядоченными по убыванию.
  4. ; результат будет записан в A5 и A6
  5. ; A5 - чётные
  6. ; A6 - не чётные
  7.  
  8.     .global  _c_int00
  9. ;///////////////////////////////////////
  10. .data ;секция данных
  11.  
  12. array: .uint 5, 8, 3, 4, 1 ; 1 0
  13. ;array: .uint 5, 2, 3, 4, 1 ; 1 1
  14. ;array: .uint 1, 2, 3, 4, 5 ; 0 1
  15. buf: .uint 0
  16. buf1: .uint 0
  17. buf2: .uint 4294967295
  18. size .set 5
  19. true .set 1
  20. false .set 0
  21. ;///////////////////////////////////////
  22. _c_int00:
  23. .text ;секция кода
  24.  
  25.     ;Инициализация:
  26.     MVKL .S1 array, A3 ;загружаем адрес массива1 в A3
  27.     MVKH .S1 array, A3
  28.     MVKL .S2 array, B3 ;загружаем адрес массива1 в B3 (для 2 ядра)
  29.     MVKH .S2 array, B3
  30.     MVK .S1 -2, A2
  31.     MVK .S2 -1, B2
  32.  
  33.     MVK .S1 1, A3
  34.  
  35.     MVK .S1 buf, A4
  36.     MVK .S2 buf, B4
  37.     LDW .D1 *A4, A4
  38.     || LDW .D2 *B4, B4
  39.     NOP 4
  40.  
  41.  
  42.     ; регистры куда запишется результат в виде 1 и 0 (true и false)
  43.     MVK .S1 true, A5
  44.     MVK .S1 true, A6
  45.  
  46.     ; буферные регистры, для хранения предыдущих значений массива
  47.     MVK .S2 buf1, B7
  48.     MVK .S1 buf2, A7
  49.     LDW .D1 *A7, A7
  50.     || LDW .D2 *B7, B7
  51.     NOP 4
  52.  
  53. LOOP:
  54.     ; чётсчики
  55.     ADD .L1 A2, 2, A2
  56.     || ADD .L2 B2, 2, B2
  57.  
  58.     CMPGT .L1 size, A2, A0
  59.     || CMPGT .L2 size, B2, B0
  60.  
  61.     AND .L1 A0, B0, A0
  62.     [!A0] B .S1 EXIT
  63.     NOP 5
  64.  
  65.     ; достаём элементы массива
  66.     LDW .D1 *A3[A2], A4
  67.     || LDW .D2 *B3[B2], B4
  68.     NOP 4
  69.  
  70.     CMPGTU .L1 A7, A4, A1
  71.     || CMPGTU .L2 B4, B7, B1
  72.     [!A1] SUB .L1 A3, 1, A5
  73.     [!B0] B .S1 SKIPB
  74.     NOP 5
  75.     [!B1] SUB .L1 A3, 1, A6
  76.  
  77. SKIPB:
  78.     ADD .L1 A4, 0, A7
  79.     || ADD .L2 B4, 0, B7
  80.  
  81.     B .S1 LOOP
  82.     NOP 5
  83.  
  84. EXIT:
  85.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement