簡體   English   中英

LC3位計數器

[英]LC3 Bit Counter

我試圖弄清楚如何在LC3匯編語言中實現位計數器。 例如:輸入“ 00001100001000001”,輸出“ 000000000000100”,我將計算位字符串中的位數並以二進制形式輸出該數值。 我知道如何一次給定一位,但是我不知道如何一次只能分析16位字符串中的一位。 謝謝。

您可以用幾種不同的方法來計算LC3中存儲的值的位數。

  • 您可以使用位移並計算末端“掉落”的位
  • 您可以使用位掩碼來檢查值中的每個位
  • 我敢肯定還有其他方法,但是它們不是很有效

就個人而言,我將使用位掩碼方法,因為它既快速又有效,並且我不必擔心將代碼陷入困境。

一點掩碼如下所示:

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

現在,您要做的就是創建一個循環,將每個掩碼值與您存儲的值進行“與”運算。 如果對它們進行“與”運算后得到正數,則只需將1加到位計數器,然后對其余的每個掩碼值重復該過程。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM