我似乎无法打印横幅A,#都在同一条线上。 我不允许通过添加CR和LF来编辑字符串。请帮忙!
START: ; first instruction of program
loop
move.b #5,D0
trap #15
lea str,A1
move.b #0,D0
trap #15
bra loop
SIMHALT ; halt simulator
str
dc.b ' # '
dc.b ' # # '
dc.b ' # # '
dc.b ' # # '
dc.b ' ####### '
dc.b ' # # '
dc.b ' # # '
END START ; last line of source
答案 0 :(得分:0)
我在你的代码中发现了一些东西。
当您将任务编号传递给陷阱15调用时,您应该使用move.w存储它,这将确保陷阱处理程序只接收您想要的值。如果寄存器之前有一个分配给它的$ 12345678这样的数字,那么move.b#0,Dr会留下它包含$ 12345600,陷阱处理程序会将任务编号设为$ 5600而不是0。
在调用任务0以显示A1中保存的字符串时,您没有指定要在D1中显示的字符串长度(根据手册),这也应该是字长。手册确实说它在NULL上停止,但这是指在字符串中读取NULL字符,而不是在D1中。
所以你的代码变成了:
loop
move.w #5,D0
trap #15
lea str,A1
move.w #0,D0 ; Display string action
move.w #70,d1 ; Maximum number of characters to display
trap #15
bra loop