问题标签 [6502]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1346 浏览

assembly - 如何直接使用 DASM 设置字节?

我正在学习 6502 汇编语言,但无法解决问题。我一直在尝试JavaScript 6502 assembler/emulator,并注意到大多数示例都有一个如下所示的部分:

我试过谷歌是什么dcb意思,我得到的最接近的是十进制编码的二进制。从源代码来看,汇编器似乎正在获取这些值并将每个值作为一个单独的字节插入到代码的当前位置。

我在本地使用 DASM 来组装我的代码,它不支持dcb. DASM 中是否有类似的方法可以直接在代码中设置字节值?

0 投票
3 回答
689 浏览

assembly - x86 组装学习平台

最近我一直在摆弄组装,我学到了很多东西。我正在使用6502asm.com6502asm.com是 6502 汇编的 javascript 汇编器和仿真器。这就是我喜欢它的地方: 输入和输出非常简单易懂。它为您提供 32x32 像素的屏幕,地址空间从 0200 美元到 05 美元不等。更改像素的颜色就像在屏幕的一个地址中存储一个颜色值(在 $00 和 $0f 之间)一样简单($0200 是左上角,$05ff 是右下角)。这很有趣乱七八糟,但它是 8 位的,而且 32x32 的屏幕没有太多空间。我想知道是否有像6502asm.com这样的东西用于 32/64 位汇编而不是 8 位。(它不必在浏览器中,只要是类似的就行。)另外,如果它使用 nasm,我会更喜欢,但这不是必需的。提前致谢!

0 投票
1 回答
409 浏览

emulation - 对于 6502 Cpu,当 X 和 Y 为 0 时递减(DEX/DEY 操作码)

我目前正在尝试通过 .NET 编写 NES 模拟器,并且我对执行递减和递增的特定操作码有疑问......

由于 X 和 Y 寄存器都是 8 位,在实现方面,它是无符号字节还是有符号字节?即X和Y寄存器的取值范围是-128到127还是0-255?

我对此感到困惑,因为如果 X 和 Y 寄存器初始化为 0,那么执行 DEX 时会发生什么?还是由程序员来真正担心这一点?

提前感谢大家的帮助。

0 投票
2 回答
547 浏览

assembly - 如何计算表格偏移量

我正在寻找一种经济高效的方式来访问我的 6502 表中的记录。该表长 8 个字节。使用间接 Y,我可以偏移字段,但我想要一种方法来获取下一个第 0 条记录。

我曾想过:

我见过其他人使用 ASL,而累加器的值是 2 的幂:

如果我只有 2 条记录,那就太好了,但如果我再次 ASL,结果将是 x = 32。这将是一个太远的偏移量。

有没有比使用 ADC 更好的方法来做到这一点?

0 投票
2 回答
1527 浏览

assembly - 如何使用布尔运算将位设置为 0?

6502 汇编中的按位运算仍然是新的。我想要一个有 8 个标志的字节。这将存储我的元精灵的状态。

我希望能够在不更改其他标志的情况下设置特定标志。

我知道如何使用 ORA 将它们设置为一个:

我知道如何使用 EOR 来切换它们:

最后,我知道如何检查某位是否属实:

但是如何在不改变任何其他标志的情况下将特定标志设置为 0?即使我使用 AND,我将如何强制它将所需的位设置为 0?

谢谢,我确定我错过了一些简单的东西。

0 投票
7 回答
3172 浏览

assembly - 6502中有哪些使用控制流的方法?

我正在尝试了解 6502 程序集中的控制流程。

假设我有以下代码:

就个人而言,我喜欢 switch 语句或其他一些控制流结构。上面的 JMP 也与我有关。似乎有一种更好的方法可以在没有这种意大利面条代码的情况下处理多种情况。

0 投票
2 回答
854 浏览

assembly - 如何将半字节转换为 6502 程序集中的值?

我正在研究一种二进制格式的解压缩算法,它为我的 NES 项目存储屏幕文件。NES 屏幕分辨率为 260x240。我正在创建 2x2 像素格式的元图块。压缩格式将指定哪些 2x2 文件应写入屏幕。

我选择的格式将写为

在上面的示例中,11110001将告诉导入例程写入 tile 1,16 次。

我还没有弄清楚的部分是如何取左半字节并将其转换为十六进制。我遇到的同样问题是取正确的半字节并将其也用作值。

我不确定是否有办法使用按位运算来做到这一点。我需要一种有效的方法来做到这一点。

0 投票
3 回答
273 浏览

forth - 如何定义 VALUE 和 TO

我想在 RPC/8( Minecraft mod中的模拟计算机)VALUE上实现 Forth 单词。只要我在编译时不使用它们,我的最佳尝试就会让我得到一组可以正常工作的单词。更具体地工作,但没有。TO VALUETO

我已经尝试了我能想到的一切来让它工作,我最好的尝试让我做到了:

请注意,处理器不是纯 6502,而是65EL02,65816的自定义变

编辑#1:不知何故,我忘记了对 CREATE 的调用。它应该一直在那里。编辑#2:我也得到3+切换到...哎呀。它应该一直是相反的方式。

0 投票
3 回答
1245 浏览

assembly - 6502 相对地址模式换行

阅读 6502 上的文档,我无法在任何地方找到答案。使用相对寻址时可以换行。但是有可能环绕两端吗?我猜这是可能的,但不太可能。

当我的意思是两端时,我的意思是我知道你可以从高 PC 换到低 PC。但是您也可以从低 PC 包装到高 PC 吗?

0 投票
1 回答
1151 浏览

assembly - CBM Program Studio 汇编器语法

我正在尝试学习 CBM Program Studio。但我无法让宏为我工作。没有宏,代码就可以了。但是当我添加宏部分时,它会在第 7 行给出“No Matching End Definition”。

任何的想法?