首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LC3位计数器

LC3位计数器
EN

Stack Overflow用户
提问于 2015-05-01 12:40:06
回答 1查看 3.2K关注 0票数 1

我试图找出如何在LC3汇编语言中实现位计数器。输入"00001100001000001“输出"000000000000100”--我会计算位串中的数字,并以二进制方式输出这个数字。我知道如何一次只做一次,但我不知道如何一次只能分析一个16位字符串中的一位。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-01 18:18:31

有几种不同的方法可以计算存储在LC3中的值中的位数。

  • 您可以使用位移位并计算末端“脱落”的位数。
  • 可以使用位掩码来检查值中的每个位。
  • 我相信还有其他方法,但效率不高

就我个人而言,我会使用位掩码方法,因为它是快速和高效的,我将不必担心我的代码陷入困境。

比特掩码看起来如下所示:

代码语言:javascript
复制
B_MASK  .FILL   b1000000000000000
        .FILL   b0100000000000000
        .FILL   b0010000000000000
        .FILL   b0001000000000000
        .FILL   b0000100000000000
        .FILL   b0000010000000000
        .FILL   b0000001000000000
        .FILL   b0000000100000000
        .FILL   b0000000010000000
        .FILL   b0000000001000000
        .FILL   b0000000000100000
        .FILL   b0000000000010000
        .FILL   b0000000000001000
        .FILL   b0000000000000100
        .FILL   b0000000000000010
        .FILL   b0000000000000001

现在,您所要做的就是创建一个循环,该循环与存储的值一起创建每个掩码值。如果在ANDing后得到一个正数,那么只需将1添加到位计数器中,然后用其余的掩码值重复这个过程。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29987006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档