6502 - LDA/STA 命令中的 < 或 > 是什么意思?
问题描述
我了解 6502 指令集的基础知识,但遇到了让我感到困惑的代码。
在我的 6502 手册中找不到对这些的任何参考。
< 和 > 是什么意思?
CLBASE = $100
BPTR = $25
ARM .BYT $1,$2
LDA #<ARM
STA BPTR
LDA #>ARM
STA BPTR+1
LDA #>CLBASE
解决方案
前缀#< 指定操作数的低字节,#> 指定操作数的高字节。
例如
LDA #>CLBASE ;This will be #$01
LDA #<CLBASE ;This will be #$00
在大多数汇编程序(例如ACME )支持的 6502 派生设备范围内都有一个汇编程序约定。这是 WDC 的 W65C816S 8/16 位微处理器数据表中的相关部分。
| Operand | One Byte Result | Two Byte Result |
|-------------|-----------------|-----------------|
| #$01020304 | 04 | 0403 |
| #<$01020304 | 04 | 0403 |
| #>$01020304 | 03 | 0302 |
| #^$01020304 | 02 | 0201 |