* AIX:
* 1) Нахождение 8-разрядной контрольной суммы для 512-байтовой таблицы
*
Метка Операция Операнд Комментарий
ORG $7000
TABLE FDB 512
ORG $6E00 ; Адресное пространство ROM/EPROM
LDHX #511 ; Инициализация количества байтов (0...511)
CLRA ; Очистка результата
ADDLOOP ADD TABLE,X
AIX #-1 ; Декрементирование байта счетчика
*
* Примечание: DECX не переносит из X через H. AIX переносит
*
CPHX #0 ; Готово
*
* Примечание: DECX воздействует на CCR. AIX не воздействует (требуется CPHX)
*
BPL ADDLOOP ; Еще цикл, если не завершено
*
* * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* 2) Округление 16-разрядного дробного числа со знаком
* Запятая дробного числа находится между битами 7 и 8
*
* Ввод: 16-разрядное дробное число во fract
* Вывод: Целочисленный результат операции округления в A
*
Метка Операция Операнд Комментарий
ORG $50 ; Адресное пространство RAM
FRACT RMB 2
*
ORG $6E00 ; Адресное пространство ROM/EPROM
LDHX FRACT
AIX #1
AIX #$7F ; Округление, если X >= $80 (дробная часть >= 0,5)
*
* Примечание: Операндом AIX является 8-разрядное число со знаком. Таким образом AIX #$80 должен
* быть эквивалентен AIX #-128 (со знаком, расширенный до 16 битов). Разделение сложения на
* две положительные операции необходимо для корректного выполнения округления.
PSHH
PULA
*
|