首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Easy68K测试两个数字是否相等

使用Easy68K测试两个数字是否相等
EN

Stack Overflow用户
提问于 2017-04-23 15:33:04
回答 2查看 1.5K关注 0票数 0

我试图在Easy68K中创建一个程序,该程序能够测试用户输入的两个数字是否相等。我大致知道如何从用户那里获取输入,并将其加载到数据寄存器中,我认为我需要使用一个while循环来测试这两个数字是否相等。

我不是要别人为我写程序,我只是需要一些建议。

这是我到目前为止掌握的代码:

代码语言:javascript
复制
*-----------------------------------------------------------
* Title      : Number Comparison
* Written by : Robert Dudley
* Date       : 23/04/2017
* Description: Compares two numbers and determines if they are equal
*-----------------------------------------------------------
    ORG    $1000
START:                                      ; first instruction of program

* Put program code here

     LEA        enterFirst,A1             ; load message into adreg A1
     MOVE.B     #14,D0
     TRAP       #15
     MOVE.B     #4,D0                      ; read number from keyboard into D1.L
     TRAP       #15

     LEA        enterSecond,A1
     MOVE.B     #14,D0
     TRAP       #15
     MOVE.B     #4,D0
     TRAP       #15

     SIMHALT                                ; halt simulator

* Put variables and constants here

enterFirst      DC.B    'Enter first number: ',0
enterSecond     DC.B    'Enter second number: ',0

                END    START                ; last line of source

注意:,我如何将输入从D1.L移到另一个寄存器?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-23 17:47:57

键盘输入例程很可能会将输入的数字保留在某个寄存器中,让我们假设它是D1。输入第二个值将破坏第一个值,如果不在其他地方保存的话。(我想这就是为什么你问如何将一个值从一个寄存器移到另一个寄存器)。

在第二个TRAP 15之后插入下面一行

代码语言:javascript
复制
     MOVE.L d1,d7

确保所有陷阱都不会更改此寄存器值,否则您将丢失它。

在第二个键盘输入之后,您将得到d1中的第二个数字,第一个(希望是)仍然在d7中的数字。CoMP是两个寄存器,对您可能编写的任何非等式输出例程都使用条件分支。

票数 0
EN

Stack Overflow用户

发布于 2018-04-27 21:54:03

下面是可以作为引用的代码。它比较一个数字是否大于、小于或等于另一个数字:

代码语言:javascript
复制
    START:                  ; first instruction of program

    LEA SELECCION, A1
    MOVE.B #14, D0
    TRAP #15

    MOVE.B #4, D0 
    TRAP #15

    CMP.L #5, D1 
    BEQ ESCINCO 

    CMP.L #5, D1 
    BGT MAYORQUE  

    CMP.L #5, D1 
    BLT MENORQUE 

MAYORQUE 
    LEA MAYOR, A1 
    MOVE.B #14, D0
    TRAP #15

    MOVE.B #9, D0
    TRAP #15

MAYOR DC.B 'EL VALOR EL MAYO QUE 5',0 
    rts 

MENORQUE 
    LEA MENOR, A1
    MOVE.B #14, D0 
    TRAP #15

    MOVE.B #9, D0 
    TRAP #15

MENOR DC.B 'EL VALOR ES MENOR QUE 5',0 
    rts 

ESCINCO 
    LEA IGUALACION, A1
    MOVE.B #14, D0 
    TRAP #15

    MOVE.B #9, D0 
    TRAP #15 

IGUALACION DC.B 'EL VALOR ES 5',0
    rts

SELECCION DC.B 'INGRESE DIGITOS ENTRE 0 Y 9: ',0
    END START
    END    START        ; last line of source
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43573063

复制
相关文章

相似问题

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