8085微處理器程式執行及結果檢查


我們將學習如何使用8085在8085套件中編寫程式。我們還將學習如何除錯程式並在成功執行後檢查結果。

讓我們看看8085套件的典型鍵盤結構。(不同製造商的不同套件,其鍵盤樣式可能會有所不同)

下表將顯示不同控制鍵的功能。有16個字母數字鍵(0-9,A-F)提供資料和地址:

按鍵
功能
RESET
重置系統
VCT INT
向量中斷。它透過鍵盤產生硬體中斷RST 7.5
SHIFT
為所有按鍵提供二級命令
GO
執行程式
SI
單步執行模式
EXREG
檢查暫存器。它允許檢視不同暫存器的值。
PRE
指向之前的記憶體地址
DEL
刪除程式的一部分
INS
插入程式的一部分
B.M
塊移動。這有助於將記憶體塊移動到任何RAM區域
FILL
用常數值填充某個RAM區域
REL
重新分配為某個記憶體區域編寫的程式。
INS DATA
將一個或多個數據插入記憶體
STRING
查詢位於特定地址/地址的資料字串
MEMC
比較兩個記憶體塊是否相等

現在我們將看到一個示例程式,其中十六個位元組的資料儲存在8050H到805FH的記憶體位置中。將整個資料塊傳輸到從8070H開始的新記憶體位置。

程式

T狀態
地址
十六進位制程式碼
標籤
助記符
註釋
10
8000
21, 50, 80
START
LXI H, 8050H
將HL設定為源記憶體指標
10
8003
11, 70, 80


LXI D, 8070H
為目標地址設定DE
7
8006
06, 10


MVI B,10H
將B設定為計數16個位元組
4
8008
7E
NEXT
MOV A,M
從源記憶體獲取資料位元組
7
8009
12


STAX D
將資料位元組儲存到目標位置
6
800A
23


INX H
將HL指向下一個源位置
6
800B
13


INX D
將DE指向下一個目標位置
4
800C
05


DCR B
遞減計數器
10
800D
C2, 08, 80


JNZ NEXT
如果計數器不為0,則轉到傳輸下一個位元組
5
8010
76


HLT
停止
 
總共17個位元組








 

總T狀態 = 外迴圈T狀態 + 內迴圈T狀態
  = (10+10+7+5) + ((4+7+6+6+4+10) x 16 - 3)
  = 32 + (37 x 16 – 3)
  = 32 + 589
  = 621

8085套件的除錯選項。

命令
功能/格式
檢查/修改記憶體
顯示/修改記憶體位置的內容
EXAM MEM <address> NEXT [[<data>] NEXT/PREV] EXEC
檢查/修改暫存器
顯示/修改8085暫存器內容。
EXAM REG <reg key> [[<data>] NEXT]* EXEC
單步執行
執行單個使用者程式指令
SINGLE STEP <start address> NEXT [[<start address>] NEXT]* EXEC
Go
將控制權從監視器轉移到使用者程式 GO <address> EXEC
塊移動/塊複製
將資料塊從一部分移動/複製到另一部分
BLK MOVE <start address> NEXT <end address> NEXT <destination address> EXEC
插入
在使用者程式中插入一個或多個指令
INSERT [<low limit>] NEXT [<high limit>] NEXT <low insert address> NEXT
<number of bytes> NEXT [[<data>] NEXT]* EXEC
刪除
刪除使用者程式中的一個或多個指令
DELETE [<low limit>] NEXT [<high limit>] NEXT <low delete address> NEXT
<high delete address> EXEC


 塊移動操作演示

記憶體地址的初始狀態

源地址

目標地址

8000
00H
8100
XXH
8001
11H
8101
XXH
8002
22H
8102
XXH
8003
33H
8103
XXH
8004
44H
8104
XXH
8005
55H
8105
XXH
8006
66H
8106
XXH
8007
77H
8107
XXH
8008
88H
8108
XXH
8009
99H
8109
XXH


 
按鍵:

<塊移動>,8000H <下一步>,8009H <下一步>,8100H <執行>

記憶體地址的最終狀態

源地址

目標地址

8000
00H
8100
00H
8001
11H
8101
11H
8002
22H
8102
22H
8003
33H
8103
33H
8004
44H
8104
44H
8005
55H
8105
55H
8006
66H
8106
66H
8007
77H
8107
77H
8008
88H
8108
88H
8009
99H
8109
99H


 
塊插入和塊刪除操作演示

記憶體地址的初始狀態

源地址

8000
00H
8001
11H
8002
22H
8003
33H
8004
44H
8005
55H
8006
66H
8007
77H
8008
88H
8009
99H


 
按鍵:

<插入> 8000H <下一步>,8009H <下一步>,8005H <下一步>,5 <下一步>,AAH <插入>,BBH <下一步>,CCH <下一步>,DDH <下一步>,EEH <下一步>

<刪除>,8000H <下一步>,800EH <下一步>,8005H <下一步>,8009H <執行>

記憶體地址的最終狀態

源地址

8000
00H
8001
11H
8002
22H
8003
33H
8004
44H
8005
AAH
8006
BBH
8007
CCH
8008
DDH
8009
EEH
800A
55H
800B
66H
800C
77H
800D
88H
800E
99H


這裡我們使用的是帶有8000H到FFFFH地址對映的32K記憶體空間62256(U3)。為了結束程式,我們可以使用RST 5 (EFH)返回到監視器程式,而不是使用HLT (76H)指令。因為它可以幫助我們除錯程式是否導致停止和掛起。

更新於:2019年10月9日

5K+ 瀏覽量

啟動您的職業生涯

透過完成課程獲得認證

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