Что означают <или> в команде LDA / STA? - PullRequest
2 голосов
/ 06 мая 2020

Я понимаю основы набора инструкций 6502, но наткнулся на этот код, который меня сбивает.

Не могу найти никаких ссылок на них в имеющихся у меня руководствах по 6502. Что означают <и>?

CLBASE  = $100
BPTR    = $25
ARM .BYT $1,$2  

LDA #<ARM
STA BPTR
LDA #>ARM
STA BPTR+1
LDA #>CLBASE

1 Ответ

3 голосов
/ 07 мая 2020

Префикс # <определяет младший байт операнда, а #> определяет старший байт операнда.

Например,

LDA #>CLBASE ;This will be #$01
LDA #<CLBASE ;This will be #$00

Существует соглашение ассемблера в диапазоне 6502-производные устройства, поддерживаемые большинством ассемблеров, например, ACME . Вот соответствующий раздел из таблицы данных 8/16-разрядного микропроцессора W65C816S WD C .

| Operand     | One Byte Result | Two Byte Result |
|-------------|-----------------|-----------------|
| #$01020304  | 04              | 0403            |
| #<$01020304 | 04              | 0403            |
| #>$01020304 | 03              | 0302            |
| #^$01020304 | 02              | 0201            |
...