[英]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.