【问题标题】:Display Register in decimal - assembly language EASy68K十进制显示寄存器 - 汇编语言EASy68K
【发布时间】:2013-10-08 21:50:59
【问题描述】:

我试图以十进制显示 D0,但是当我运行程序时,什么都没有显示。我没有收到任何错误,当我查看寄存器 D0 时,我看到了十六进制的预期数字,但没有显示十进制等效数字。我正在尝试使用 TRAP 来做到这一点,我们在课堂上展示了这一点。我究竟做错了什么?有问题的代码行是代码开始处的第 17 行。它说“TRAP #15 以十进制显示 D0”。感谢您的帮助。

*-----------------------------------------------------------
* Program Number: 0
* Written by    : Bryan Kriss
* Date Created  : 10/06/2013
* Description   : This program performs If-then-else statement.
*
*-----------------------------------------------------------
START   ORG $1000   Program starts at loc $1000
IF  CMP     #12,P   Is P > 12? 
    BLE     ENDIF   If P < 12, go to ENDIF
    ASL     P       Shift left
    ASL     P       Shift left
    ASL     P       Shift left
    ADD     #4,P    P + 4
    MOVE    P,D0    Move P into D0
    EXT.L   D0
    TRAP    #15     Display D0 in decimal
    STOP    #$2700   Stop execution

ENDIF   MOVE    Q,D1     Move the value of Q into D1
        SUB     D1,D0    P - D1 (P-Q)
        MOVE    D0,D1    Move P into D1

        STOP    #$2700    Stop execution
* 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

【问题讨论】:

    标签: assembly 68000 easy68k


    【解决方案1】:

    根据文档,您需要将选择器放在D0中,将实际值放在D1中。

    变化:

    MOVE    P,D0    Move P into D0
    EXT.L   D0
    TRAP    #15     Display D0 in decimal
    

    到:

    MOVE    P,D1    Move P into D1
    EXT.L   D1
    MOVE.B  #3,D0   Put required TRAP #15 selector (3) in D0
    TRAP    #15     Display D0 in decimal
    

    进一步澄清:TRAP #15 是一种通用机制,用于执行 easy68k 环境支持的各种任务。为了指定要执行的任务,您在 D0 中传递任务 selector。然后,根据您使用的选择器,还需要将其他参数加载到正确的寄存器中,通常是D1A1

    有一个comprehensive list of selectors on the easy68k web site - 前几个选择器是:

    TRAP #15 is used for I/O.  Put the task number in D0.
    
     Task
      0  Display string at (A1), D1.W bytes long (max 255) with carriage return and line feed (CR, LF). (see task 13)
      1  Display string at (A1), D1.W bytes long (max 255) without CR, LF. (see task 14)
      2  Read string from keyboard and store at (A1), NULL terminated, length retuned in D1.W (max 80)
      3  Display signed number in D1.L in decimal in smallest field. (see task 15 & 20)
      ...
    

    【讨论】:

    • 谢谢!它起作用了,但只是为了让我更好地理解,选择器是什么,你怎么知道要放什么数字?
    • 当然 - 请参阅上面的最新编辑以及相关 easy68k 文档的链接。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-16
    • 1970-01-01
    相关资源
    最近更新 更多