在记录输出时,我无法摆脱内存中的尾随垃圾。
我的D1中有一个数字n,而D2中有一个数字。
每当我记录它们时,看起来像这样:
1-20012
但我只想要1-2
我只想知道如何选择数据寄存器的某些字节并将它们放入内存中(在ds.b声明的存储中,标签结果大小为40字节)。
比如说,如果我将1存储在我的标签“result”($ 0000 2450)的起始地址中,那么'1'将只占用1个字节,所以' - '符号以及'2' ”。所以这些内容将存储在$ 0000 2450 - $ 0000 2452范围内。问题是以下字节地址包含来自先前操作的垃圾,我不允许手动清除它们。我需要开发一种方法来在运行时清除它们。
如何忽略与我的'1-2'打印一起记录的以下垃圾字节?
感谢您的帮助!
答案 0 :(得分:1)
就像@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.