首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >6502存储指令(STA、STX等)和内存地址

6502存储指令(STA、STX等)和内存地址
EN

Stack Overflow用户
提问于 2017-07-31 06:37:36
回答 1查看 1.8K关注 0票数 0

当我写我的6502/NES仿真器时,这真的困扰着我.

6502的商店说明如下:

代码语言:javascript
复制
STA $2A78 - Store the value of the accumulator into memory address $2A78.

然而,该指令使用绝对寻址模式,它应该返回存储在内存$2A78中的8位值。AND指令确实遵循以下规则:

代码语言:javascript
复制
(If $6A is stored in $2A78)
AND $2A78 - Perform a logical AND between the accumulator and the value stored in $2A78 (which is $6A)

因此,在正常情况下,STA绝对指令应该将累加器值存储在存储在$2A78中的8位零页地址中。如果要将值真正存储在$2A78中,寻址模式不应该是立即的吗?例如,STA #2A78

此外,还有其他的指示行为“异常”类似于商店的指示吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-31 07:07:26

我想你可能会对寻址方式的使用感到困惑。绝对寻址模式仅仅意味着要用于操作的内存地址紧跟在操作码之后。

在您提到的两种情况中,STAAND都是这样的。

但是,如何使用该内存地址取决于操作码本身。STA将使用它作为存储累加器的位置。AND将使用它加载一个字节,然后使用该字节来修改累加器。尽管存在这种差异,它们都是绝对的寻址模式。

您似乎要说的是,您希望存储到内存地址的存储直接使用以下内容:

代码语言:javascript
复制
STA #$2A78

我明白为什么你会认为这更符合逻辑,但CPU汇编语言不是这样设计的,现在不太可能有人去修复它了:)

请注意,这对直接使用16位地址值的8位累加器AND没有什么意义。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45408950

复制
相关文章

相似问题

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