0

我有一个带有计数器的 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
4

1 回答 1

1

由于您的数字->数字例程,它仅适用于一位数字。您正在向字符“0”添加一个数字,显然没有字符“11”等。

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

于 2012-07-10T23:37:27.347 回答