LC-3如何打印两位数字

时间:2012-07-02 00:52:47

标签: assembly binary lc3

我有一个有柜台的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

1 个答案:

答案 0 :(得分:1)

由于您的数字 - >数字例程,它只适用于一位数。你正在为字符'0'添加一个数字,显然没有字符'11'等。

你可以通过乘以10(通常是重复加法)找到最大除数,直到除数超过数字(然后退回到前一个值)。这将让你使用上面的Gareth方法。