Advertisement
Guest User

Untitled

a guest
Feb 21st, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.74 KB | None | 0 0
  1. МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
  2. Федеральное государственное автономное образовательное учреждение высшего образования
  3. "САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
  4. АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ"
  5. КАФЕДРА КОМПЬЮТЕРНЫХ ТЕХНОЛОГИЙ
  6. И ПРОГРАММНОЙ ИНЖЕНЕРИИ (КАФЕДРА №43)
  7.  
  8.  
  9.  
  10.  
  11. ОТЧЕТ
  12. ЗАЩИЩЕН С ОЦЕНКОЙ
  13. ПРЕПОДАВАТЕЛЬ:
  14. доцент, к.т.н. А.В. Яковлев
  15. должность, уч. степень, звание подпись, дата инициалы, фамилия
  16.  
  17.  
  18.  
  19.  
  20.  
  21. ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №7
  22.  
  23. «ПРИНЦИПЫ ОРГАНИЗАЦИИ ПАРАЛЛЕЛЬНОГО ВЫПОЛНЕНИЯ КОМАНД»
  24.  
  25. ПО ДИСЦИПЛИНЕ «АРХИТЕКТУРА ЭВМ И СИСТЕМ»
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34. РАБОТУ ВЫПОЛНИЛ
  35. СТУДЕНТ ГР. 4531 А.А.Ушаковский
  36. подпись, дата инициалы, фамилия
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45. 1. Цель работы
  46. Освоение принципов построения приложений на языке ассемблера для системы Texas Instruments, ознакомление с командами и правилами построения программ в соответствии с особенностями параллельного выполнения команд.
  47. 2. Текст задания
  48. Разработать программу, вычисляющую сумму элементов массива между двумя заданными. Границы задаются по индексам. Программа должна быть выполнена с применением параллельного выполнения команд.
  49. 3. Схемы алгоритмов
  50. На рисунке представлена схема алгоритма программы с применением параллельного выполнения команд.
  51.  
  52.  
  53. 4. Пример результатов работы программы
  54. Рассмотрим работу программы на примере следующих тестовых данных:
  55. таблица 4.1 Тестовые данные
  56. Массив Левая граница Правая граница Результат
  57. 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 0 15 105
  58. Результат работы программы с применением параллельного выполнения команд на рис. 1.1.
  59.  
  60. Рис. 1.1 Результат работы программы с применением параллельного выполнения команд
  61. 5. Выводы по работе
  62. В результате выполнения лабораторной работы было ознакомление с командами и правилами построения программ в соответствии с особенностями параллельного выполнения команд.
  63. Разработать программу, вычисляющую сумму элементов массива между двумя заданными. Границы задаются по индексам. Программа должна быть выполнена с применением параллельного выполнения команд.
  64.  
  65. Текст программы с применением параллельного выполнения команд
  66. .ref _c_int00 ;точка входа
  67. _c_int00:
  68.  
  69. .data ;секция данных
  70.  
  71. array: .int 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
  72. i .set 0 ; левая граница
  73. e .set 15 ; правая граница сумма = 105
  74.  
  75. .text ;секция кода
  76. ;Инициализация:
  77.  
  78. MVKL .S1 array, A4 ; A4 - указатель на очередное четное слагаемое
  79. MVKH .S1 array, A4
  80. MVK .S1 i, A1 ; A1 - левая граница
  81. SUB .S1 e, A1, A2 ; A2 - число оставшихся слагаемых
  82. ||MPY .M1 A1, 4, A1 ; вычисление смещения в адресе относительно начала массива
  83. SUB .S1 A2, 3, A2 ; A2 -= 1; A2 -= 2;
  84. ADD .S1 A1, A4, A4 ; установка A4 на элемент, предшествующий первому слагаемому
  85. MV .L2X A4, B4 ; B4 - указатель на очередное нечетное слагаемое
  86. ||MVK .S1 0, A0 ; A0 - сумма четных слагаемых
  87. ||MVK .S2 0, B0 ; B0 - сумма нечетных слагаемых
  88.  
  89. ; подготовка данных для первых 5 итераций
  90. LDW .D1 *++A4, A3 ;чтение из памяти
  91. ||LDW .D2 *++B4[2], B3
  92. ||[A2] B .S2 LOOP
  93. ||[A2] SUB .S1 A2, 2, A2
  94.  
  95. LDW .D1 *++A4[2], A3
  96. ||LDW .D2 *++B4[2], B3
  97. ||[A2] B .S2 LOOP
  98. ||[A2] SUB .S1 A2, 2, A2
  99.  
  100. LDW .D1 *++A4[2], A3
  101. ||LDW .D2 *++B4[2], B3
  102. ||[A2] B .S2 LOOP
  103. ||[A2] SUB .S1 A2, 2, A2
  104.  
  105. LDW .D1 *++A4[2], A3
  106. ||LDW .D2 *++B4[2], B3
  107. ||[A2] B .S2 LOOP
  108. ||[A2] SUB .S1 A2, 2, A2
  109.  
  110. LDW .D1 *++A4[2], A3
  111. ||LDW .D2 *++B4[2], B3
  112. ||[A2] B .S2 LOOP
  113. ||[A2] SUB .S1 A2, 2, A2
  114.  
  115. LOOP:
  116. [A2] B .S2 LOOP
  117. ||ADD .S1 A3, A0, A0
  118. ||ADD .L2 B3, B0, B0
  119. ||LDW .D1 *++A4[2], A3
  120. ||LDW .D2 *++B4[2], B3
  121. ||[A2] SUB .L1 A2, 2, A2
  122.  
  123. ADD .S1X A0, B0, A0 ; сумма четных и нечетных слагаемых
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement