首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EASy68K程序集-第一程序错误

EASy68K程序集-第一程序错误
EN

Stack Overflow用户
提问于 2013-10-07 02:01:36
回答 1查看 1.2K关注 0票数 0

我对汇编语言很陌生,所以我的第一个程序有点麻烦。除了汇编语言之外,我应该基本上重新创建下面的代码。有人能帮我修复错误,让我的程序正常工作吗?我想我已经接近了。

原始非汇编代码:

代码语言:javascript
复制
Q = 7;
P = 15;  // also test on P = 14 and P = 6
if (P > 12)
  P = 8 * P + 4;   // Requirement: use ASL for multiplied by 8
else
  P = P - Q;
print P;

到目前为止,我的情况是这样的,但我正在犯错误。我会把错误贴在底部。

代码语言:javascript
复制
START   ORG     $1000   //Program starts at loc $1000
IF      CMP     #12,P   //Is P > 12?
        BLE     ENDIF   //If P < 12, go to ENDIF
        ASL     #3,P    //Shift left 3 times (Multiply P * 8)
        ADD     #4,P    //P + 4 
ENDIF   SUB     Q,P     //P - Q

* Data section
    ORG $2000    //Data starts at loc 2000
P   DC.W    15  //int P = 15;
Q   DC.W    7   //int Q = 7;
    END START

第4行:错误:无效寻址模式第7行:错误:无效寻址模式

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-07 05:54:09

我建议您保留M68000程序员参考手册以查找正确的使用说明的方法。

ASL没有#<data>,<ea>表单。它确实有一个<ea>表单,所以您可以执行三次ASL P。或者您可以将P移动到寄存器中,将其向左移动3位,并将结果放回P中。

同样,也没有<ea>,<ea>形式的SUB。一种解决方案是将Q移动到D-register中,并从P中减去该注册。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19216077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档