Я сначала (попросил о помощи) и написал программу BASIC в эмуляторе домашних животных 6502, которая добавила два 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