2011-12-19 46 views
2

我对装配非常新,我正在尝试构建一个小程序。我无法弄清楚如何使用Easy68k在程序集中插入换行符。例如,我开始写基本的黑色插孔模拟器,我需要在问候第一个播放器之后做一个换行符。我尝试在变量声明中加入“\ n”,但它只是打印出来,就好像它是文本的一部分。将换行符插入汇编代码Easy 68k(68000)

根据Easy 68K帮助I/O部分,我可以使用 “LF EQU $ 0A新行(换行)”,但我不知道如何实现这一点。

START ORG  $400    ; Start of program area 
    CLR.L  D0    ; Clear D0 
    CLR.L  D1    ; Clear D1 
    CLR.L  D2    ; Clear D2 
    CLR.L  D3    ; Clear D3 
    CLR.L  D4    ; Clear D4 
    CLR.L  D5    ; Clear D5 
    CLR.L  D6    ; Clear D6 
    MOVE.L  playerTotal, D2 ; Store Player total in D1 
    MOVE.L  card, D3   ; Store current card in D2 
    MOVE.B  playerAce, D4 ; Store number of aces player has in D3 
    MOVE  #14, D0  
    LEA  playerGreeting, A1 ; Load Player Greeting in A1 
    TRAP  #15    ; Display Player Greeting 
* insert line break  
    STOP  #$2700 ; Stop execution 

     ORG   $1000 ;Start of data area 
playerTotal DS.L  1  ; Save 1 byte of memory for playerTotal 
dealerTotal DS.L  1  ; Save 1 byte of memory for dealerTotal 
card  DC.L  5  ; Save 1 byte of memory for card dealt 
keepPlaying DS.B  1  ; Save 1 byte of memory for Play again value 
playerAce DS.B  1  ; Save 1 byte of memory to track player Aces 
playerGreeting DC.B  'Hello Player 1!', 0 ; Message 

       LF  EQU  $0A 
       END  START     ; End of program and entry point 

回答

6

试试这个:

CR EQU $0D 
LF EQU $0A 
playerGreeting DC.B  'Hello Player 1!',CR,LF,0 ; Message 

这将插入你的消息后回车(CR)和换行(LF)。基本上,它会在空终止符(0)之前将两个附加字符添加到输出字符串中。

+1

Omg,太棒了。谢谢!!!对于任何未来的读者,请确保在信息部分中将CR定义为“CR EQU $ 0D;回车”(除了LF)。 – kelly 2011-12-19 19:41:04

+0

@kelly,好点。我更新了答案,使其更清晰。 – 2011-12-19 19:49:09

+0

你有什么特别的理由需要回车吗?我很困惑,究竟是什么马车。新线是否足以阻止绳子向下移动? – Callat 2016-11-03 17:09:49