Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБОРАТОРНАЯ РАБОТА №18.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
712.19 Кб
Скачать

8.1.4 Числовые константы и системы счисления

MPASM поддерживает шестнадцатеричную, десятичную и двоичную системы счисления. Для обозначения числового значения используется символ «#».

Синтаксические правила числовых значений приведены в таблице 1.

Таблица 1 – Синтаксис числовых значений

Тип

Синтаксис

Пример

Шестнадцатеричный

0x< числовое значение >

#0x9F

Десятичный

<числовое значение>

#123

Двоичный

0b<числовое значение>

#0b11

8.1.5 Текстовые строки

Текстовые строки могут состоять из знаков ASCII. Определение строки завершается специальным символом окончания строки – «\n».

8.2 Тренировочный пример выполнения работы

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

Алгоритм решения задачи представлен на рисунке 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 разрядов

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

Результат выполнения алгоритма – регистр W6 содержит значение 0x6000.

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

23