以十进制显示寄存器 - 汇编语言EASy68K

时间:2013-10-08 21:50:59

标签: assembly 68000 easy68k

我试图以十进制显示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

1 个答案:

答案 0 :(得分:3)

根据文档,您需要将选择器放在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中传递任务选择器。然后,根据您使用的选择器,还需要将其他参数加载到正确的寄存器中,通常为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)
  ...