首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Easy68K中频分支

Easy68K中频分支
EN

Stack Overflow用户
提问于 2014-10-12 23:18:31
回答 2查看 2.6K关注 0票数 1

使用Easy68K为类编写第一个汇编语言程序。

我正在使用if-else分支来复制代码:

代码语言:javascript
复制
IF (P > 12)
    P = P * 8 + 3
ELSE
    P = P - Q

PRINT P

但是我认为我的分支错了,因为如果代码没有第一次停止,程序就会运行在IF分支中,即使CMP发现了一个P< 12的情况。我是在这里遗漏了什么,还是这是一种普遍接受的方法?

这是我的汇编代码:

代码语言:javascript
复制
START:  ORG     $1000       ; Program starts at loc $1000

        MOVE    P, D1       ; [D1] <- P
        MOVE    Q, D2       ; [D2] <- Q

* Program code here

        CMP     #12, D1     ; is P > 12?
        BGT     IF          ;
        SUB     D2, D1      ; P = P - Q

        MOVE    #3, D0      ; assign read command
        TRAP    #15         ;
        SIMHALT             ; halt simulator


IF      ASL     #3, D1      ; P = P * 8 
        ADD     #3, D1      ; P = P + 3
ENDIF

        MOVE    #3, D0      ; assign read command
        TRAP    #15         ;
        SIMHALT             ; halt simulator

* Data and Variables

        ORG     $2000       ; Data starts at loc $2000

P       DC.W    5           ;
Q       DC.W    7           ;

        END    START        ; last line of source
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-12 23:44:54

要执行if..else,您需要两个跳转:一个在开始,一个在第一个块的末尾。

虽然它不影响正确性,但保留源顺序也是传统的做法,这意味着否定该条件。

代码语言:javascript
复制
    MOVE    P, D1       ; [D1] <- P
    MOVE    Q, D2       ; [D2] <- Q

* Program code here

    CMP     #12, D1     ; is P > 12?
    BLE     ELSE        ; P is <= 12

IF
    ASL     #3, D1      ; P = P * 8 
    ADD     #3, D1      ; P = P + 3
    BRA     ENDIF

ELSE
    SUB     D2, D1      ; P = P - Q
ENDIF


    MOVE    #3, D0      ; assign read command
    TRAP    #15         ;
    SIMHALT             ; halt simulator
票数 2
EN

Stack Overflow用户

发布于 2016-07-07 11:46:31

EASy68K支持结构化程序集。

代码语言:javascript
复制
OPT    SEX
IF.L P <GT> #12 THEN

ELSE

ENDI

如果希望查看用于实现结构化代码的比较和分支指令,请添加选项性以在程序集期间展开结构化代码。

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

https://stackoverflow.com/questions/26331000

复制
相关文章

相似问题

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