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狀態地址十六進位制程式碼標籤助記符註釋
10800021, 50, 80STARTLXI H, 8050H將HL設定為源記憶體指標
10800311, 70, 80
LXI D, 8070H將DE設定為目標地址
7800606, 10
MVI B,10H將B設定為計數16個位元組
480087ENEXTMOV A,M從源記憶體獲取資料位元組
7800912
STAX D將資料位元組儲存到目標位置
6800A23
INX H將HL指向下一個源位置
6800B13
INX D將DE指向下一個目標位置
4800C05
DCR B遞減計數器
10800DC2, 08, 80
JNZ NEXT如果計數器不為0,則轉到傳輸下一個位元組
5801076
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 <地址> NEXT [[<資料>] NEXT/PREV] EXEC
檢查/修改暫存器顯示/修改8085暫存器內容。EXAM REG <暫存器鍵> [[<資料>] NEXT]* EXEC
單步執行執行單個使用者程式指令 SINGLE STEP <起始地址> NEXT [[<起始地址>]NEXT]* EXEC
GO將控制權從監視器轉移到使用者程式 GO <地址> EXEC
塊移動/塊複製將資料塊從一個部分移動/複製到另一個部分 BLK MOVE <起始地址> NEXT <結束地址> NEXT <目標地址> EXEC
插入在使用者程式中插入一個或多個指令 INSERT [<下限>] NEXT [<上限>] NEXT <插入起始地址> NEXT <位元組數> NEXT [[<資料>] NEXT]* EXEC
刪除刪除使用者程式中的一個或多個指令 DELETE [<下限>] NEXT [<上限>] NEXT <刪除起始地址> NEXT <刪除結束地址> EXEC

塊移動操作演示

記憶體地址的初始狀態

源地址目標地址
800000H8100XXH
800111H8101XXH
800222H8102XXH
800333H8103XXH
800444H8104XXH
800555H8105XXH
800666H8106XXH
800777H8107XXH
800888H8108XXH
800999H8109XXH

按鍵:

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

記憶體地址的最終狀態

源地址目標地址
800000H810000H
800111H810111H
800222H810222H
800333H810333H
800444H810444H
800555H810555H
800666H810666H
800777H810777H
800888H810888H
800999H810999H

塊插入和塊刪除操作演示

記憶體地址的初始狀態

源地址
800000H
800111H
800222H
800333H
800444H
800555H
800666H
800777H
800888H
800999H

按鍵:

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

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

記憶體地址的最終狀態

源地址
800000H
800111H
800222H
800333H
800444H
8005AAH
8006BBH
8007CCH
8008DDH
8009EEH
800A55H
800B66H
800C77H
800D88H
800E99H


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

更新於:2019年7月30日

6K+ 次瀏覽

啟動你的職業生涯

完成課程獲得認證

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