8085程式交換10個位元組


在這個程式中,我們將看到如何使用8085交換10位元組資料塊。

問題陳述

編寫8085組合語言程式以交換資料塊,其中塊大小為10。

討論

資料儲存在8010H到8019H和9010H到9019H的位置。位置8000H儲存要交換的位元組數。在這種情況下,位元組數為10D,因此將為0AH。

邏輯非常簡單,HL和DE暫存器對分別指向第一個和第二個資料塊。透過獲取資料,我們只是交換每個記憶體位置的值。然後重複此過程以完全交換兩個塊。

輸入

地址
資料
.
.
.
.
.
.
8000
0A
.
.
.
.
.
.
8010
00
8011
11
8012
22
8013
33
8014
44
8015
55
8016
66
8017
77
8018
88
8019
99
.
.
.
.
.
.
9010
84
9011
63
9012
12
9013
47
9014
48
9015
AD
9016
BC
9017
2A
9018
8F
9019
99
.
.
.
.
.
.


流程圖

程式

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

LXI H, 8000H  
指向8000H獲取位元組計數
F003
4E

MOV C, M
從記憶體載入計數
F004
21, 10, 80

LXI H,8010H
指向第一個塊地址
F007
11, 10, 90

LXI D,9010H
指向第二個塊地址
F00A
46
LOOP
MOV B, M
將第一個塊的元素取到B
F00B
1A

LDAX D  
將第二個塊的元素取到累加器
F00C
77

MOV M, A
將累加器內容儲存到第二個塊
F00D
78

MOV A, B
將B載入到A
F00E
12

STAX D  
儲存到第二個塊
F00F
23

INX H  
指向第一個塊的下一個地址
F010
13

INX D  
指向第二個塊的下一個地址
F011
0D

DCR C  
減少計數變數
F012
C2, 0A, F0

JNZ LOOP    
當塊未完成時,跳轉到LOOP
F015
76

HLT
終止程式


輸出

地址
資料
.
.
.
.
.
.
8010
84
8011
63
8012
12
8013
47
8014
48
8015
AD
8016
BC
8017
2A
8018
8F
8019
99
.
.
.
.
.
.
9010
00
9011
11
9012
22
9013
33
9014
44
9015
55
9016
66
9017
77
9018
88
9019
99
.
.
.
.
.
.

更新於: 2019-07-30

3K+ 瀏覽量

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告