8085程式用於統計暫存器B內容中1的個數
在本程式中,我們將瞭解如何統計儲存在暫存器B中的8位數中1的個數。
問題陳述
編寫8085組合語言程式,統計儲存在暫存器B中的8位數中1的個數。
討論
在本程式中,我們使用旋轉操作來統計1的個數。由於8位數中有8個不同的位,因此我們將數字旋轉8次。我們可以使用RRC或RLC。這裡我們使用了RRC指令。此指令將LSb傳送到MSb以及進位標誌。因此,在每次迭代之後,我們可以檢查進位狀態以獲得1的計數。
如果數字是DA(1101 1010),則答案將是5,因為該數字中有五個1。
輸入
| 暫存器 | 資料 |
|---|---|
| B | DA |
流程圖

程式
| 地址 | 十六進位制程式碼 | 標籤 | 助記符 | 註釋 |
|---|---|---|---|---|
| F000 | 06, DA | | MVI B, DA | 取數字1101 1010 |
| F002 | 37 | | STC | 設定進位 |
| F003 | 3F | | CMC | 取反進位 |
| F004 | 78 | | MOV A,B | 將數字從B載入到A |
| F005 | 0E, 08 | | MVI C,08H | 將計數器初始化為08H |
| F007 | 06, 00 | | MVI B,00H | 清零B暫存器 |
| F009 | 0F | LOOP | RRC | 右移 |
| F00A | D2, 0E, F0 | | JNC SKIP | 如果CY=0,則跳過下一步 |
| F00D | 04 | | INR B | 如果CY=1,則增加B |
| F00E | 0D | SKIP | DCR C | 將C減1 |
| F01F | C2, 09, F0 | | JNZ LOOP | 如果Z=0,則跳轉到迴圈 |
| F012 | 78 | | MOV A,B | 將計數載入到A |
| F013 | 32, 50, 80 | | STA 8050H | 將結果儲存在8050H |
| F016 | 76 | | HLT | 終止程式 |
輸出
| 地址 | 資料 |
|---|---|
| 8050 | 05 |
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP