3

レジスタから他のレジスタにメモリアドレスを渡すにはどうすればよいですか? 私の次のルーチンは、スタックから文字列メモリ アドレスを受け取り (はい、必要です)、D1レジスタに入れようとしますが、これを実行しようとすると動作せず、EASy68kエミュレータがクラッシュします (または無限ループに入りますか?)。

コード:

START ORG $1000


    MOVE.L T,D0
    MOVE.L D0,-(SP)
    BSR PRINTS



PRINTS:       
        MOVE.L D0,(SP)+
        MOVE.W D0,A1
        MOVE #14,D0
        TRAP #15
        RTS

T DC.B 'HELLO',0
    END START

更新:引数がスタックからプッシュおよびポップされるときに、方法を更新しました。PEA私がやりたいことを正確に行うように見える指示を使用するように変更されましたが、それでも機能しません。

START ORG $1000
        PEA T(PC)
        *MOVE.L D0,-(SP)
        BSR PRINTS
        ADDQ.L #4,SP

    MOVE #9,D0       
        TRAP #15 

PRINTS:        
        MOVE 4(SP),A1
        MOVE #14,D0
        TRAP #15
        RTS
4

1 に答える 1