如何使用LC3输出?

how to use LC3 output?

所以我一直在寻找输出在 lc3 中的工作方式,但其中 none 很清楚。 我所知道的是它与陷阱功能有关。 所以我只想知道如何将数字打印到控制台。

LC-3 的输出陷阱将字符打印到控制台 — 这就是它所能做的。这就是带有控制台的计算机的实际工作方式——仅字符输出。

您可以仅使用字符输出来打印您需要的任何内容:字符串、空格、换行符、制表符、数字等...

如果你想要多位数字输出,由多个字符组成,这些字符是dividual digit characters。如果您想要格式化输出,则需要用于格式化的字符 - 数字和字符串,中间穿插空格,根据需要换行。

因此,对于数字输出,您可以根据需要打印任意数量的字符,以便打印数字的数字。

数字到字符串的转换算法通常称为 itoa — 整数到 ascii。他们将数字转换为从左到右或从右到左的数字字符。

从右到左的方法计算值 mod (%) 10 以便一次增加一位数字,执行 div (/) 10 并循环直到没有任何(零)左边。然而,这些数字是向后输出的,因此必须对其进行缓冲以反转它们,以便它们可以向前输出。

从左到右的方法从 10 的最大幂作为 divisor(例如,16 位数字为 10,000,较小的数字范围较小)开始,并且一次产生一个数字下一个数字的 division 之后的余数重复的方式(使用下一个较小的 10 的幂)。

复杂的是,这两种方法都需要 mod 和 div,这在 LC-3 中不能直接获得,但可以通过重复减法同时获得。

十六进制输出稍微简单一些,因为它不需要 divide 或 mod 10,但确实需要相当多的小心移位(LC-3 可以一次只做一点,向左,通过给自己添加一些东西)。