我最初(寻求帮助)并在 6502 宠物模拟器中编写了一个 BASIC 程序,它添加了两个 n 字节整数。但是,我的反馈是它只是添加两个 16 位整数(而不是添加 n 字节整数)。
任何人都可以通过查看我的代码来帮助我理解这个反馈并指出正确的方向来制作一个添加两个 n 字节整数的程序吗?
感谢您的合作!
文档:使用绝对索引寻址添加两个 n 字节整数。加数从内存位置 $0600、$0700 开始,答案是 $0800。整数的字节长度为 $0600 (¢ —> 256)
Machine Code:
18 a2 00 ac 00 06 bd 00
07 7d 00 08 9d 00 09 e8
00 88 00 d0
操作码、文档、变量:
A1 = $0600
B1 = $0700
B2 = $0800
Z1 = $0900
[START] = $0500
CLC 18 // loads x with 0
LDX A2 00 // loads length on Y
LDY A1 AC 00 06 // load first operand
loop: LDA B1, x BD 00 07 // adds second operand
ADC B2, x 7D 00 08 // store result
STA Z1, x 9D 00 09 // go to next byte
INX E8 00 // count how many are left
DEY 88 00 // do more if needed
BNE loop D0