8085程式:查詢10個數中的最大值和最小值


在這個程式中,我們將學習如何在一段資料中找到最大值和最小值。

問題陳述

編寫一個8085組合語言程式,在一個包含十個8位數的資料塊中查詢最大值和最小值。

討論

在這個程式中,我們將資料塊的第一個數字載入到暫存器D和E中。D將儲存最小值,E將儲存最大值。在每次迭代中,我們將檢查數字是否小於D,如果是,則用新數字更新D,然後再次將其與E比較以檢查數字是否大於E。如果是,則用新數字更新E。

輸入

地址
資料
.
.
.
.
.
.
8000
55
8001
22
8002
88
8003
77
8004
11
8005
99
8006
44
8007
AA
8008
33
8009
66
.
.
.
.
.
.


流程圖

程式

地址
十六進位制程式碼
標籤
助記符
註釋
F000
21, 00, 80


LXI H,8000H
載入初始地址
F003
0E, 0A


MVI C,0AH
載入數字個數
F005
56


MOV D,M
從記憶體中載入第一個數字
F006
5A


MOV E,D
也把第一個數字載入到E
F007
23


INX H
指向下一個位置
F008
0D


DCR C
遞減計數
F009
7E
LOOP
MOV A,M
將記憶體中的數字載入到A
F00A
BA


CMP D
將D與A比較
F00B
D2, 0F, F0


JNC SKIP
如果CY = 0,則A不大於D
F00E
57


MOV D,A
用A更新D
F00F
BB
SKIP
CMP E
將E與A比較
F010
DA, 14, F0


JC DO
如果CY = 1,則A不大於E
F013
5F


MOV E,A
用A更新E
F014
23
DO
INX H
指向下一個位置
F015
0D


DCR C
C遞減1
F016
C2, 09, F0


JNZ LOOP
跳轉到迴圈
F019
21, 50, 80


LXI H,8050H
指向目標地址
F01C
72


MOV M,D
儲存最小值
F01D
23


INX H
指向下一個位置
F01E
73


MOV M,E
儲存最大值
F01F
76


HLT
結束程式


輸出

地址
資料
.
.
.
.
.
.
8050
11
8051
AA
.
.
.
.
.
.

更新於:2019年7月30日

瀏覽量:1K+

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.