Тренировочный пример составления исходного кода программы

Задача: Вычислить значение выражения (25 + 13) × (18 – 9), результаты промежуточных вычислений хранить в регистрах. Выделить младшую тетраду результата и поместить её в старшую. Проверить корректность выполнения алгоритма и результаты промежуточных вычислений в симуляторе. Указать результат выполнения алгоритма.

Алгоритм решения задачи представлен на рисунке 18.18.

Листинг тренировочной программы:

  .include "P33FJ32MC204.inc"  
  .global __reset  
__reset:     ;Метка начала исходного файла
  MOV #25, W0 ;W0 = 25
  MOV #13, W1 ;W1 = 13
  ADD W0, W1, W2 ;W2 = W0 + W1
       
  MOV #18, W3 ;W3 = 18
  MOV #9, W4 ;W4 = 9
  SUB W3, W4, W5 ;W5 = W3 – W4
  MUL.SS W2, W5, W6 ;W6 = W2 × W5
       
  AND #0x000F, W6 ;W6 = W6 ˄ #0x000F, выделение;младшей тетрады
  SL W6, #12, W6 ;W6 = W6 << 12, сдвиг влево на;12 разрядов
Результат выполнения алгоритма – регистр W6 содержит значение 0x6000.

.end   ;Конец исходного файла

Рисунок 18.18 – Схема алгоритма к тренировочному заданию

ЛАБОРАТОРНАЯ РАБОТА №19


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: