我有一个有柜台的LC-3程序。我可以使用TRAP x21将计数器打印到屏幕上。但是,如果计数器编号有两位数,我的程序就不起作用。
示例:9将完美打印,但不能打印19.
我猜测在我打印包含计数器的寄存器之前我需要一个循环,它会将数字除以2(与十进制相同,除以10,但二进制为2)。然后我想我会打印digit1,digit0。我有一个问题,我如何划分LC-3?右转?对于这个问题而言,这对我来说似乎太难了。
请帮忙。
0010 000 000000011 ; R0 <= x30 which is for
0001 000 000 0 00 010 ; R0 <= R0 + R2
1111 0000 00100001 ; TRAP x21
1111 0000 00100101 ; TRAP x25
0000000000110000
答案 0 :(得分:1)
由于您的数字 - >数字例程,它只适用于一位数。你正在为字符'0'添加一个数字,显然没有字符'11'等。
你可以通过乘以10(通常是重复加法)找到最大除数,直到除数超过数字(然后退回到前一个值)。这将让你使用上面的Gareth方法。