8085程式用於計算給定8位數中1的個數


在這個程式中,我們將看到如何計算8位數中1的個數。

問題陳述

編寫8085組合語言程式,計算儲存在8000H位置的8位數中1的個數。

討論

在這個程式中,我們使用旋轉操作來計算1的個數。由於8位數有8個不同的位,因此我們將數字旋轉8次。我們可以使用RRC或RLC。這裡我們使用了RRC指令。此指令將LSb傳送到MSb以及進位標誌。因此,在每次迭代之後,我們可以檢查進位狀態以獲得1的計數。

如果數字是DA(11011010),則答案將是5,因為數字中有五個1。

輸入

地址
資料
.
.
.
.
.
.
8000
DA
.
.
.
.
.
.


流程圖

程式

地址
十六進位制程式碼
標籤
助記符
註釋
F000
37


STC
設定進位
F001
3F


CMC
補碼進位
F002
3A, 00, 80


LDA 8000H
將數字載入到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
F00F
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日

905 次檢視

開啟您的職業生涯

透過完成課程獲得認證

立即開始
廣告