基於8085微處理器中X的內容對兩個BCD數進行運算的程式


這裡我們將看到一個8085程式。這個程式將根據選擇對BCD數執行不同的操作。

問題陳述

編寫一個8085組合語言程式,根據我們的選擇對兩個8位BCD數執行一些操作。

討論

在這個程式中,我們進行選擇。選擇值儲存在記憶體位置8000H(命名為X)。BCD數儲存在位置8001H和8002H。我們將結果儲存在位置8050H和8051H。

如果選擇是00H,則它將執行加法;對於01H,它將執行減法;對於02H,它將執行乘法運算。

輸入

第一個輸入

地址
資料


8000
00
8001
97
8002
88


第二個輸入

地址
資料


8000
01
8001
97
8002
88



第三個輸入

地址
資料


8000
02
8001
05
8002
04



流程圖


程式

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


LXI H,8000H
指向獲取選擇的位置
F003
7E


MOV A,M
將選擇載入到A中
F004
FE, 00


CPI 00H
比較是否進行加法
F006
CA,14, F0


JZ ADD
跳轉到加法
F009
FE, 01


CPI 01H
比較是否進行減法
F00B
CA,27, F0


JZ SUB
跳轉到減法
F00E
FE, 02


CPI 02H
比較是否進行乘法
F010
CA, 3F, F0


JZ MUL
跳轉到乘法
F013
76


HLT
終止程式
F014
23
ADD
INX H
指向第一個運算元
F015
7E


MOV A,M
將運算元載入到A
F016
23


INX H
指向下一個運算元
F017
86


ADD M
將M與A相加
F018
27


DAA
十進位制調整
F019
6F


MOV L,A
將A儲存到L
F01A
D2, 22, F0


JNC SKP1
如果CY = 0,則跳轉到SKP1
F01D
26, 01


MVI H,01H
將H載入為01H
F01F
C3, 62, F0


JMP STORE
儲存結果
F022
26, 00
SKP1
MVI H,00H
清除HL
F024
C3, 62, F0


JMP STORE
將HL作為結果儲存
F027
23
SUB
INX H
指向第一個運算元
F028
46


MOV B,M
將運算元載入到B
F029
3E, 99


MVI A,99H
將A載入為99H
F02B
23


INX H
指向下一個運算元
F02C
96


SUB M
從A中減去M
F02D
C6, 01


ADI 01H
新增01H以獲取10的補碼
F02F
80


ADD B
將B與A相加
F030
27


DAA
調整十進位制
F031
6F


MOV L,A
將A儲存到L
F032
DA, 3A, F0


JC SKP2
如果CY = 1,則跳轉到SKP2
F035
26, FF


MVI H,FFH
將H載入為FFH
F037
C3, 62, F0


JMP STORE
儲存結果
F03A
26, 00
SKP2
MVI H,00H
清除HL
F03C
C3, 62, F0


JMP STORE
將HL作為結果儲存
F03F
23
MUL
INX H
指向第一個運算元
F040
46


MOV B,M
將運算元載入到B
F041
23


INX H
指向下一個運算元
F042
4E


MOV C,M
載入第二個運算元
F043
26, 00


MVI H,00H
清除H暫存器
F045
AF


XRA A
清除A暫存器
F046
B9


CMP C
將C與A比較
F047
CA, 5E, F0


JZ DONE
如果Z = 1,則跳轉到DONE
F04A
80
LOOP
ADD B
將B與A相加
F04B
27


DAA
調整十進位制
F04C
57


MOV D,A
將A移動到D
F04D
D2, 55, F0


JNC NINC
如果CY = 0,則不遞增H
F050
7C


MOV A,H
將H載入到A
F051
C6, 01


ADI 01H
增加A
F053
27


DAA
調整十進位制
F054
67


MOV H,A
返回H
F055
79
NINC
MOV A,C
將A載入到C
F056
C6, 99


ADI 99H
將A和99H相加
F058
27


DAA
調整十進位制
F059
4F


MOV C,A
再次將A載入到C
F05A
7A


MOV A,D
將資料從D返回到A
F05B
C2, 4A, F0


JNZ LOOP
如果Z = 0,則跳轉到LOOP
F05E
6F
DONE
MOV L,A
將A轉到L
F05F
C3, 62, F0


JMP STORE
將HL作為結果儲存
F062
22, 50, 80
STORE
SHLD 8050H
從HL儲存結果
F065
76


HLT
終止程式

 

輸出

第一個輸出

地址
資料


8050
85
8051
01


第二個輸出

地址
資料


8050
09
8051
00


第三個輸出

地址
資料


8050
20
8051
00


更新於:2019年10月9日

377 次瀏覽

啟動您的職業生涯

完成課程後獲得認證

開始
廣告
© . All rights reserved.