【问题标题】:Adding two 16-bit integers to produce a 16-bit answer in 6502?在 6502 中添加两个 16 位整数以产生 16 位答案?
【发布时间】:2014-02-03 02:26:26
【问题描述】:

我需要添加两个 16 位整数以使用绝对模式寻址生成 16 位答案。但是,我弄乱了内存地址,无法弄清楚原因。请建议我更正我的代码:

x1 = $0410
y2 = $0411
s1 = $0412

Start at $0500

CLC             18
LDA     x1      AD  10  04
ADC     y1      6D  11  04
STA     s1      8D  12  04
LDA     x1+1    AD  11  04
ADC     y2+1    6D  12  04
STA     s1+1    8D  13  04
BRK             00

【问题讨论】:

    标签: assembly byte addition 6502


    【解决方案1】:

    由于 16 位整数占用两个字节,因此您的位置会重叠。您需要将它们分开两个字节:

    x1 = $0410
    y2 = $0412
    s1 = $0414
    

    【讨论】:

    • 所以我得把x1+1、y2+1、s1+1的高字节改成12、13、14?
    • 高字节?它们都只有一个字节,所以这没有任何意义。编辑答案以使其更清晰。
    • 哦,我明白了...这会让它看起来像编辑后的版本,对吗?
    • 是的,它现在应该可以工作了。但请不要更正问题中的代码,因为它不再与问题对应。
    猜你喜欢
    • 1970-01-01
    • 2016-03-11
    • 2012-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-24
    相关资源
    最近更新 更多