首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >$#和%在6502中的意义是什么?

$#和%在6502中的意义是什么?
EN

Stack Overflow用户
提问于 2021-06-22 05:00:15
回答 2查看 629关注 0票数 3

平台

assembler

  • Windows 10
  • 6502仿真器

我的数字是从

#2

2F美元

%0000111

我不明白为什么在6502?的汇编代码中使用#$%

有时ldx #$FF

用#$FF加载x寄存器

为什么这里使用两个符号?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-06-22 07:42:30

DASM允许用二进制、八进制、十进制和十六进制表示数字。

二进制数字使用%1101).

  • Octal前缀(例如,015).

  • Decimal数字使用0前缀(例如,015).

  • Decimal数字不使用前缀)(例如,13).

  • Hexadecimal数字使用$前缀(例如,$0D).

)

#符号用于指定即时寻址:

代码语言:javascript
复制
LDA 0   ; Load the byte from address 0 in memory into register A
LDA #0  ; Load the value 0 into register A

当然,可以将即时寻址与不同的数字基结合起来,例如:

代码语言:javascript
复制
LDA #$FF ; Load the value $FF into register A
票数 9
EN

Stack Overflow用户

发布于 2021-06-22 05:42:18

这些符号是许多汇编程序在许多平台上使用的常用语法糖,其目的是使人类更容易在2、10和16 (二进制、十进制和十六进制)的基础上向汇编程序提供数值:

代码语言:javascript
复制
%00001100 means 12 in binary
12 means 12 in decimal
$0C means 12 in hexadecimal

#符号作为许多程序集语法中寻址的指示符,包括DASM,还有更重要的意义:

代码语言:javascript
复制
LDA #%00001100 loads 12 into the Accumulator
LDA #12 loads 12 into the Accumulator
LDA #$0C loads 12 into the Accumulator
LDA $0C loads the contents of memory location 12 into the Accumulator
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68077785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档