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

更新於: 2019年7月30日

2K+ 次檢視

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告