8085程式反序傳輸資料塊


在這裡,我們將學習如何使用8085反序傳輸資料塊。

問題陳述

編寫8085程式,以反序傳輸N位元組的資料塊。該資料塊儲存在地址8001及其後續地址中,資料塊大小儲存在8000地址中。資料塊將移動到地址9000及其後續地址中。

討論

為了解決這個問題,我們首先獲取資料塊的大小。DE暫存器對設定為指向目標地址9000H。HL暫存器對設定為指向資料塊的最後一個元素。如果資料塊大小為0A,則最後一個塊將位於800A。首先,HL指向8000,從中獲取塊大小並存儲到C中。現在將C與L暫存器相加以獲取最後一個塊的地址。現在從HL指向的記憶體中獲取每個元素,並將其儲存回DE指向的記憶體中。然後增加DE,並減少HL。因此,整個塊將反向移動。

輸入

地址
資料


8000
0A
8001
11
8002
22
8003
33
8004
44
8005
55
8006
66
8007
77
8008
88
8009
99
800A
AA


 

流程圖

 

程式

地址
十六進位制程式碼
標籤
助記符
註釋
F000
21, 00, 80
 
LXI H,8000
指向8000以獲取塊大小
F003
4E
 
MOV C,M
將塊大小存入C
F004
11, 00 90
 
LXI D,9000
指向目標地址
F007
7D
 
MOV A,L
將L載入到A
F008
81
 
ADD C
將C相加以指向塊的最後一個地址
F009
6F
 
MOV L,A
將A再次儲存到L
F00A
7E
LOOP
MOV A,M
將記憶體載入到A
F00B
12
 
STAX D
將A儲存到DE指向的目標位置
F00C
13
 
INX D
將目標指向下一個地址
F00D
2B
 
DCX H
將源指向之前的地址
F00E
0D
 
DCR C
將C減1
F00F
C2, 0A, F0
 
JNZ LOOP
如果Z標誌未設定,則跳轉到LOOP
F012
76
 
HLT
終止程式

 

輸出

地址
資料


9000
AA
9001
99
9002
88
9003
77
9004
66
9005
55
9006
44
9007
33
9008
22
9009
11


 

 

 

更新於:2019年7月30日

7K+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告