6502

    0热度

    2回答

    对不起,如果这个问题似乎是'太基本'。我是一个68K ASM编码器,但有一位朋友要求我浏览一下6502代码。 我们有一个指向一串数据: my_ptr ds 2 此指针设置与此代码: ldx sound_channel_busy bne .abc_set_score1 ; at bottom of code sta my_ptr ; fill the pointer 读取数据与 lda

    2热度

    2回答

    有人可以解释LDA,ROL,STA给出结果的每条指令的确切结果吗? C=1 (carry flag is 1) LDA A #$08 0008 | 01 ROL A 0009 | 02 STA A $10 000A | 03 // A result is $11 000B | 04 000C | 05 我想这: LDA A #$08 0008 - Stor

    6热度

    1回答

    我正试图学习如何使用下面的Codebase64 Tutorial中的内核例程来编写磁盘文件。 我已经在下面用Acme Crossassembler编写了我的例程。它无法打开文件,并给出错误信息:“文件未打开” ; Definitions SETNAM = $FFBD SETFLS = $FFBA OPEN = $FFC0 CHKOUT = $FFC9 READST = $FFB7 CL

    0热度

    1回答

    我写完了我的6502模拟器,我准备开始测试它。我发现了带有一些文档的ROM,但我不确定,加载ROM的正确方式是什么。作者说,模拟器应该从0xC000开始,当我加载ROM时,它包含0,所以我必须做错了什么。 所以现在我的加载过程看起来是这样的: clear memory set PC to 0x8000 open the file skip first 16 bytes (iNES heade

    1热度

    1回答

    我正在用C编写我的第一个NES仿真器。目标是让它易于理解并且循环准确(不一定必须是代码效率),以便在正常的“硬件'的速度。在深入挖掘6502的技术参考资料时,看起来指令消耗的CPU周期不止一个 - 并且根据给定的条件(如分支)也有不同的周期。我的计划是创建读写功能,并通过使用switch寻址模式对操作码进行分组。 的问题是:当我有一个多周期指令,如BRK,我需要效仿在每个周期中究竟发生了什么: #

    3热度

    3回答

    我正在通过C64仿真器学习6502微程序集。目前试图将字符串输出到屏幕上。这是我的代码: processor 6502 org $1000 ldx #$00 ;using x register as column counter print: lda message,x;load a with x bit from message sta $0400,x

    0热度

    2回答

    在为我的6502/NES仿真器创建指令函数时,我陷入了理解6502中的带符号字节和2的补码的概念。显然,诸如BMI的分支指令在内存中使用带符号字节来执行向前/向后分支,有些指令允许使用负数进行算术运算。负标志也检测累加器的第7位。 (二的补码) 这是否意味着内存中的所有字节都有符号,我可以将内存初始化为int8_t CPUMEMORY[0x10000];而不是uint8_t CPUMEMORY[0

    0热度

    1回答

    写我的6502/NES模拟器时,这真的让我... 6502的存储指令操作是这样的: STA $2A78 - Store the value of the accumulator into memory address $2A78. 但是,该指令使用绝对寻址模式,它应该返回存储在存储器$2A78中的8位值。该AND指令,不遵循这个规律: (If $6A is stored in $2A78)

    1热度

    2回答

    我一直在试图理解一个老的6502处理器是如何工作的,特别是对于任天堂娱乐系统。有一件事继续令我困惑,系统如何将相关数据从ROM移入RAM中,因为所有汇编指令似乎都处理RAM-RAM命令。例如,如果游戏需要在马里奥加载敌人,那么CPU如何识别要加载的相关区域,然后加载它们?一旦它在RAM中,我有一个很好的理解,但它将数据存入内存,我不明白。谢谢!

    3热度

    2回答

    从我今天写很多6502的理解来看,并行数组比存储数据的结构要好。 想象一下,你想拥有,在C会这样 struct Monster { unsigned char hitPoints; unsigned char damage; unsigned char shieldLevel; char* name; }; 定义什么怪物统计的表格你可以把它保存为结构