2011-12-19 6 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)の前に出力文字列に2つの文字を追加します。

+1

Omg、amazing。ありがとう!!!将来の読者にとっては、infoセクションのCRを "CR EQU $ 0D;キャリッジリターン"(LFに加えて)として定義してください。 – kelly

+0

@kelly、良い点があります。私はそれをもっと明確にするために答えを更新しました。 –

+0

キャリッジリターンが必要な特別な理由はありますか?私は運送車が実際に何であるかについて混乱しています。新しい行は文字列を止めて下に移動するのに十分ではないでしょうか? – Callat

関連する問題