簡體   English   中英

垃圾組件Motorola 68K正在記錄輸出

[英]Output is being recorded with garbage assembly Motorola 68K

在記錄我的輸出時,我很難擺脫內存中的尾隨垃圾。

我的D1中有一個數字n,D2中有一個數字。

每當我登錄它們時,都會出現如下所示:

1-20012

但我只想要1-2

我只想知道如何選擇數據寄存器的某些字節並將其放入內存(在ds.b聲明的存儲中,標簽結果的大小為40字節)。

假設,如果我將1存儲在標簽“結果”的起始地址中($ 0000 2450),則'1'僅占1個字節,'-'號也占2個字節。 因此,這些內容將存儲在$ 0000 2450-$ 0000 2452范圍內。問題是,后面的字節地址包含先前操作中的垃圾,我不允許手動清除它們。 我需要開發一種在運行時清除它們的方法。

如何忽略以下所有與“ 1-2”打印一起記錄的垃圾字節?

謝謝您的幫助!

就像@Jester建議的一樣,也許您應該使用NUL字符終止字符串。

move.l #result,a0
move.b d1,(a0)+     ;Or maybe call a subroutine to convert from decimal?
move.b #'-',(a0)+
move.b d2,(a0)+
clr.b (a0)          ;Clear last byte.

或者,如果您要使用寫入的字節數:

move.b #result,a0
move.b d1,(a0)+
move.b #'-',(a0)+
move.b d2,(a0)+
sub.l #result,a0    ;A0 is now the number of bytes to log.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM