Xem mẫu
- * Caùc chöông trình ñöôïc goïi :
DPFIND ( xem phuï luïc )
DPHLM ( xem phuï luïc )
KYBRD ( xem chöông 4 )
ORMP ( xem phuï luïc )
PHIMSO ( xem chöông 4 )
STEP
STEP : Ñaây laø moät chöông trình cho pheùp chaïy töøng leänh cuûa chöông
trình ngöôøi söû duïng.
Input : Nhaän ñòa chæ hieän haønh vaøo HL.
Output : Chæ thay ñoåi thanh ghi HL.
Caùc chöông trình con ñöôïc goïi :
LMB : Chöông trình nhaän bieát ñöôïc leänh saép thöïc hieän maáy
byte.
DPHLM : Hieån thò ñòa chæ vaøo döõ lieäu taïi ñòa chæ ñoù.
Chöông trình söû duïng caùc vuøng nhôù sau :
9 D 00H
Vuøng nhôù
vaøo sau
ra tröôùc
9 D FFH ( ngaên xeáp giaû )
AddST0 9FDAH
AddST1 9FDBH Naïp leänh caàn chaïy
AddST2 9FDCH
Trang 41
Thieát keá Thieát bò thöïc taäp vi xöû lí 8085
- AddST3 9FDDH
AddST4 9FDEH Naïp leänh nhaûy
AddST5 9FDFH
AddST6 9FE0H
AddST7 9FE1H
AddST8 9FE2H Naïp noäi dung caùc
AddST9 9FE3H thanh ghi
AddSTA 9FE4H
AddSTB 9FE5H Naïp noäi dung caùc
AddSTC 9FE6H thanh ghi
AddSTD 9FE7H
AddSTE 9FE8H
AddSTF 9FE9H
AddST10 9FEAH
AddST11 9FEBH
AddST12 9FECH Khi chaïy caùc caùc leänh
AddST13 9FEDH nhaûy, leänh goïi vaø leänh
AddST14 9FEEH trôû veà
AddST15 9FEFH
AddST16 9FF0H
AddST7 9FF1H
XEM GIAÛI THUAÄT STEP CUOÁI CHÖÔNG 4
STEP
PUSH B JZ *ST2
MOV A,M CPI 31H
STA AddSTO JZ *ST2
MVI A,OOH CPI 33H
STA AddST17 JZ *ST13
CALL LMB CPI 20H
MOV A,C JZ *ST3
CPI 3OH CPI 10H
JZ *ST1 JZ *ST5
CPI 32H CPI 11H
JZ *ST6
Trang 42
Thieát keá Thieát bò thöïc taäp vi xöû lí 8085
- *ST1: INX H CPI A0H
MOV A,M JZ *ST22
STA AddST10 JMP *ST20
INX H *ST22 : STA AddST2
MOV A,M SHLD AddSTE
STA AddST11 MVI A,C3H
MVI A,_ STA AddCT79
STA AddST1 MVI A,01H
MVI A,_ CALL DELAY 0.1
STA AddST2 MVI A,C3H
SHLD AddST12 STA AddST3
MVI A,C3 MVI A,_
STA AddST3 STA AddST4
MVI A,_ MVI A,_
STA AddST4 STA AddST5
MVI A,_ LDA AddST8
STA AddST5 MOV B,A
JMP *ST21 LDA AddST9
*ST2 : MOV A,M MOV C,A
CPI 32H LHLD AddST6
JZ *ST10 PUSH H
INX H POP PSW
*ST4 : MOV A,M LHLD AddSTA
STA AddST1 XCHG
INX H LHLD AddSTC
*ST20 : MOV A,M JMP AddSTO
STA AddST2 *ST12 : SHLD AddSTC
JMP *ST7 PUSH PSW
*ST10 : INX H POP H
MOV A,M SHLD AddST6
CPI 00H MOV A,B
JZ *ST11 STA AddST8
JMP *ST4 MOV A,C
*ST11: STA AddST1 STA AddST9
INX H XCHG
MOV A,M SHLD AddSTA
Trang 43
Thieát keá Thieát bò thöïc taäp vi xöû lí 8085
- LHLD AddSTE MOV H,B
INX H MOV L,C
MVI A,01H INX H
STA AddTT JMP *ST9
POP B *ST7 : SHLD AddSTE
RET MVI A,C3H
*ST3 : INX H STA AddST3
MOV A,M MVI A,_
STA AddST1 STA AddST4
MVI A,00H MVI A,_
STA AddST2 STA AddST5
JMP *ST7 *ST21: LDA AddST8
*ST5 : MVI A,00H MOV B,A
STA AddST1 LDA AddST9
STA AddST2 MOV C,A
JMP *ST7 LHLD AddST6
*ST6 : SHLD AddST15 PUSH H
MVI A,00H POP PSW
STA AddST1 LHLD AddSTA
STA AddST2 XCHG
MVI A,C3H LHLD AddSTC
STA AddST+3 JMP AddSTO
MVI A,_ *ST8 : SHLD AddSTC
STA AddST+4 PUSH PSW
MVI A,_ POP H
STA AddST+5 SHLD AddST6
CALL *ST19 MOV A,B
LDA AddST14 STA AddST8
MOV L,A MOV A,C
MVI H,9DH STA AddST9
MOV B,M XCHG
INX H SHLD AddSTA
MOV C,M LHLD AddSTE
DCRA INX H
DCRA *ST9 : CALL DPHLM
STA AddST14 MVI A,01H
Trang 44
Thieát keá Thieát bò thöïc taäp vi xöû lí 8085
- STA AddTT INR A
POP B INR A
RET STA AddST14
LHLD AddST12
*ST13 : INX H MOV B,H
MOV A,M MOV C,L
STA AddST10 MOV L,A
INX H MVI H,9DH
MOV A,M MOV M,B
STA AddST11 INX H
MVI A,_ MOV M,C
STA AddST1 MVI A,01H
MVI A,_ STA AddST17
STA AddST2 LHLD AddST10
SHLD AddST12 RET
MVI A,C3
STA AddST3 *17 : LDA AddST17
MVI A,_ CMP 00H
STA AddST4 JZ *ST15
MVI A,_ JMP *ST9
STA AddST5 *18 : LHLD AddST15
JMP *ST21 INX H
*ST14 : LHLD AddST10 JMP *ST9
JMP *ST9
*ST15 : LHLD AddST12 *19 : JMP *ST21
INX H
JMP *ST9
*ST16 : LDA AddST14
Trang 45
Thieát keá Thieát bò thöïc taäp vi xöû lí 8085
- LMB
LMB : Ñaây laø moät chöông trình con coù nhieäm vuï nhaän bieát leänh maáy
byte.
Input : HL laø ñòa chæ chöùa leänh ñoù
Output : C = 32H : Khi leänh ñoù thuoäc nhoùm leänh naïp töùc thôøi caëp
thanh ghi ( 3 byte )
C = 31H : Khi leänh ñoù thuoäc nhoùm leänh löu tröõ tröïc tieáp ( 3
byte )
C = 30H : Khi leänh ñoù thuoäc nhoùm leänh goïi chöông trình
con ( 3 byte )
C = 33H : Khi leänh ñoù thuoäc nhoùm leänh nhaûy ( 3 byte )
C = 20H : Khi leänh ñoù thuoäc nhoùm leänh 2 byte
C = 11H : Khi leänh ñoù thuoäc nhoùm leänh trôû veà töø chöông
trình con
C = 10H : Khi leänh ñoù thuoäc nhoùm leänh 1 byte ( keå caû
nhöõng maõ khoâng thuoäc boä leänh )
Ngoaøi thanh ghi C chöông trình khoâng aûnh höôûng tôùi caùc thanh
ghi khaùc.
Do chöông trình ñôn giaûn neân chæ trình baøy thuaät giaûi. Ñöôïc goïi
töø chöông trình STEP vaø chöông trình SDC.
LMB
PUSH PSW
A (M)
Nhoùm naïp töùc thôøi Ñ
thanh ghi (3 byte)
C (32H)
POP PSW
S
RET
1
Trang 46
Thieát keá Thieát bò thöïc taäp vi xöû lí 8085
- 1
Ñ
Nhoùm leänh löu tröõ
tröïc tieáp (3 byte)
C (31H)
POP PSW
S
RET
Nhoùm leänh goïi Ñ
chöông trình con (3
byte) C (30H)
POP PSW
S
RET
Ñ
Nhoùm leänh nhaûy (3
byte)
C (33H)
POP PSW
S
RET
Ñ
Nhoùm leänh 2 byte
C (20H)
S POP PSW
RET
Ñ
Nhoùm leänh trôû veà töø
chöông trình con
C (11H)
S POP PSW
C (10H)
RET
POP PSW
RET
Trang 47
Thieát keá Thieát bò thöïc taäp vi xöû lí 8085
- INS
INS : Ñaây laø moät chöông trình con cho pheùp cheøn döõ lieäu taïi ñòa chæ
hieän haønh vaø töï söûa ñòa chæ neáu muoán.
Input : Naïp ñòa chæ cuoái vuøng INS , nghóa laø chöông trình chæ coù taùc
duïng trong khoaûng töø ñòa chæ hieän haønh ñeán ñòa chæ cuoái môùi
naïp. Neáu söûa ñòa chæ thì naïp ñòa chæ leänh ñaàu tieân vuøng caàn
söûa, nghóa laø chöông trình söûa ñòa chæ chæ coù taùc duïng töø ñòa chæ
môùi naïp tôùi ñòa chæ cuoái vuøng INS
Output : Ngoaøi AF khoâng thanh ghi naøo bò ñieàu chænh. Vuøng ñòa chæ söû
duïng cho INS :
AddINS + 0 : 9FDD Ñòa chæ trôû veà sau khi
AddINS + 1 : 9FDE INS
AddINS + 2 : 9FDF Ñòa chæ keá cuoái vuøng
AddINS + 3 : 9FE0 INS
AddINS + 4 : 9FE1 Naïp ñòa chæ oâ nhôù
AddINS + 5 : 9FE2 caàn cheøn
INS
PUSH B
PUSH D
PUSH H
BC (0000H)
SHLD AddINS + 0
SHLD AddINS + 4
DE HL
*1 : Addtt (01H)
CALL XADD
A (83H)
AddCT79 (A)
A (79H)
AddDT79 (A) a
Trang 48
Thieát keá Thieát bò thöïc taäp vi xöû lí 8085
- a
CALL DAUCHAM
*4: CALL KYBRD
S S
PHIMSO ADD
Ñ *3
S
(AddTT)=00H
*16 : CALL PHIMSO
*4 Ñ
PUSH DE
CALL DEMP
HL DE
HL (HL) - 1
SHLD AddINS + 2
POP DE
A (H)
S Ñ
A=D A
- 1
AddTT (01H)
LHLD AddINS+ 0
CALL DPHLM
*7 : CASLL KYBRD
S S S
PHIMSO DOWN ADD
*11 Ñ *10 Ñ *9 Ñ
PUSH HL CALL DOWN AddTT (01H)
LHLD AddINS+2 SHLD AddINS+0 CALL SDC
CALL SHM DE HL POP H
BC (BC)+1 CALL DPHLM
POP HL AddTT (01H)
CALL PHIMSO *12 POP D
CALL KYBRD POP B
S *12
PHIMSO RET
*15 Ñ
CALL PHIMSO
*8 S S S
INS UP
*13 Ñ *14
POP H CALL UP
CALL DPHLM SHLD AddINS + 0
AddTT (01H) DE HL
POP D
POP B
RET
Trang 50
Thieát keá Thieát bò thöïc taäp vi xöû lí 8085
- JMP *1
PUSH B JMP *6
PUSH D *5 : MOV A,L
PUSH H CMP E
LXI B,0000H JZ *1
SHLD AddINS + 0 JM *1
SHLD AddINS + 4 *6 : MVI A,01H
MOV D,H STA AddTT
MOV E,L LHLD AddINS + 0
*1 : MVI A,01 CALL DPHLM
STA AddTT *7 : CALL KYBRD
CALL XADD CPI ‘ADD’
MVI A,38H JZ *9
STA AddCT79 CPI ‘DOWN’
MVI A,79H JZ *10
STA AddDT79 CPI 10H
CALL DAUCHAM JM *11
*2 : CALL KYBRD *8 : CPI ‘INS’
CPI 10H JZ *13
JM *16 CPI ‘UP’
CPI ‘ADD’ JZ *14
JZ *3 JMP *7
JMP *2 *9 : MVI A,01H
*3 : LDA AddTT STA AddTT
CPI 00H CALL SDC
JZ *4 POP H
JMP *1 CALL DPHLM
*4 : PUSH D MVI A,01H
CALL DEMP STA AddTT
MOV H,D POP D
MOV L,E POP B
DCX H RET
SHLD AddINS + 2 *10 : CALL DOWN
POP D SHLD AddINS +0
MOV A,H MOV D,H
CMP D MOV E,L
JZ *5 JMP *12
Trang 51
Thieát keá Thieát bò thöïc taäp vi xöû lí 8085
nguon tai.lieu . vn