所以我在寻找输出在lc3中是如何工作的,但是没有一个是清晰的。我只知道这和陷阱函数有关。所以我只想知道如何打印一个数字到控制台。
发布于 2020-10-15 14:46:10
LC-3的输出陷阱将字符打印到控制台--这就是它所能做的所有事情。这就是带有控制台的计算机实际上是如何工作的--字符输出。
您可以使用字符输出打印任何您需要的:字符串,空格,换行符,制表符,数字等.
如果需要多个数字数字输出,则由多个单独的数字字符组成。如果要格式化输出,则需要格式化字符--数字和字符串,加上空格,按需要换行符。
因此,对于数字输出,要打印数字的数字,就需要打印多少个字符。
数字到字符串的转换算法通常称为itoa --表示整数到ascii。它们将数字转换为从左到右或从右到左的数字字符。
从右到左的方法计算值mod (%) 10,以便一次额外增加一个数字,div (/) 10并循环,直到没有(零)离开。然而,数字出现向后,所以他们必须缓冲,以扭转他们,以便他们可以向前。
从左到右的方法以10作为除数的最大幂开始(例如,对于16位数来说,10,000,对于较小的数字范围来说更小),并以这种方式一次产生一个数字,在下一个数字除法后与馀数重复(使用下一个较小的10次方)。
更复杂的是,这两种方法都需要mod和div,这在LC-3中是无法直接使用的,但这两种方法都可以通过重复减法同时获得。
十六进制输出稍微简单一些,因为它不需要除法或模10,而是需要相当多的小心移动( LC-3一次只能做一点,而左边,通过向自己添加一些东西)。
https://stackoverflow.com/questions/64372009
复制相似问题