繁体   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