繁体   English   中英

LC3汇编语言程序

[英]program for LC3 Assembly language

如何将用户输入的任何字符转换为其相应的十进制值? 我只是在开始时遇到了麻烦。

该程序必须实现以下目标:

  1. 该程序接受来自键盘的字符。

  2. 如果字符是数字(“0”到“9”): a) 将字符转换为其相应的十进制值。 换句话说,'0' 变为 0,'1' 变为 1,...'9' 变为 9。让我们将该值称为 R(用于“运行长度”)。 b) 等待另一个字符(使用GETC)。 c) 将该字符的 R 个副本打印到控制台。 ) d) 返回步骤 1。

  3. 否则,如果字符是 Enter/Return (ASCII #10):将换行符 (ASCII #10) 打印到控制台,然后返回到步骤 1。

  4. 否则,如果字符是其他任何东西,则停止程序。

您将十进制数字字符它转换为从中减去“0”(=0x30)的数字。 对于十六进制数字(“A”到“F”):如果字符大于“@”,则从中减去 0x37(“A”-> 0x0a)。 对于十六进制数字('a'到'f'):如果该值仍然大于15,则从中减去0x20 或者您可以使用表格进行映射。 256 字节不是大表。

  • 您将结果(变量、寄存器等)设置为零
  • 您在循环中逐个字符地阅读
  • 您将字符转换为新数字(一位数)
  • 如果它是无效的十六进制数字字符,则返回变量 - 你已经完成了
  • else 变量 = 变量 * 16 + 新数字
  • 乘以 16 可以通过左移 4 位来完成

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM