LDA/STA 命令中的 < 或 > 是什么意思?
What do < or > mean in LDA/STA command?
我了解 6502 指令集的基础知识,但遇到了这段让我感到困惑的代码。
在我的 6502 手册中找不到任何关于这些的参考。
< 和 > 表示什么?
CLBASE = 0
BPTR =
ARM .BYT ,
LDA #<ARM
STA BPTR
LDA #>ARM
STA BPTR+1
LDA #>CLBASE
前缀#<指定操作数的低字节,#>指定操作数的高字节。
例如
LDA #>CLBASE ;This will be #
LDA #<CLBASE ;This will be #[=10=]
大多数汇编程序支持的 6502 派生设备范围内都有一个汇编程序约定,例如 ACME for instance. Here's the relevant section from WDC's W65C816S 8/16–bit Microprocessor datasheet。
| Operand | One Byte Result | Two Byte Result |
|-------------|-----------------|-----------------|
| #020304 | 04 | 0403 |
| #<020304 | 04 | 0403 |
| #>020304 | 03 | 0302 |
| #^020304 | 02 | 0201 |
我了解 6502 指令集的基础知识,但遇到了这段让我感到困惑的代码。
在我的 6502 手册中找不到任何关于这些的参考。
< 和 > 表示什么?
CLBASE = 0
BPTR =
ARM .BYT ,
LDA #<ARM
STA BPTR
LDA #>ARM
STA BPTR+1
LDA #>CLBASE
前缀#<指定操作数的低字节,#>指定操作数的高字节。
例如
LDA #>CLBASE ;This will be #
LDA #<CLBASE ;This will be #[=10=]
大多数汇编程序支持的 6502 派生设备范围内都有一个汇编程序约定,例如 ACME for instance. Here's the relevant section from WDC's W65C816S 8/16–bit Microprocessor datasheet。
| Operand | One Byte Result | Two Byte Result |
|-------------|-----------------|-----------------|
| #020304 | 04 | 0403 |
| #<020304 | 04 | 0403 |
| #>020304 | 03 | 0302 |
| #^020304 | 02 | 0201 |