Thieỏt keỏ Thieỏt bũ thửùc taọp vi xửỷ lớ 8085 Trang 30
PUSH PSW
PUSH B
PUSH D
PUSH H
DE HL
HL BC
BC DE
BC (BC) 1
D (Add
copy + 2
)
E (Add
copy + 3
)
*1 : A M
STAX D
HL (HL) - 1
DE (DE) - 1
S
ẹ *2
S
ẹ *3
*3 : POP H
POP D
POP B
POP PSW
COPY C.
1
H = B
L = C
RET
Thiết kế Thiết bò thực tập vi xử lí 8085 Trang 31
PUSH PSW DCX D
PUSH B MOV A, B
PUSH D CMP H
PUSH H JZ *2
XCHG JMP *1
MOV H,B *2: MOV A, C
MOV L,C CMP L
MOV B,D JZ *3
MOV C,E JMP *1
LDA Add
copy + 2
*3 : POP H
MOV D,A POP D
LDA Add
copy + 3
POP B
MOV E,A POP PSW
DCX B RET
*1 : MOV A, M
STAX D
DCX H
Các chương trình con sau đây xem phụ lục
+ DAUCHAM
+ DEMP
+ XADD
DEL : Là chương trình con dễ xoá ( nạp 00H ) một vùng dữ liệu
Input : Nạp đòa chỉ đầu của vùng cần xoá
Nạp đòa chỉ cuối của vùng cần xoá
Output : Chương trình không làm thay đổi nội dung các thanh ghi
PUSH PSW
PUSH B
PUSH D
DEL
DEL
Thieỏt keỏ Thieỏt bũ thửùc taọp vi xửỷ lớ 8085 Trang 32
PUSH H
Add
tt
(01H)
CALL XADD
A (83H)
Add
CT79
(A)
A (06H)
Add
DT79
(A)
CALL DAUCHAM
*1: CALL KYBRD
S S
ẹ *2 ẹ
ẹ
*8 : CALL PHIMSO
S
CALL DEMP
HL DE
Add
tt
(01H)
CALL XADD
A (83H)
Add
CT79
(A)
A (5BH)
Add
DT79
(A)
CALL DAUCHAM
PHIMSO
ADD
(ADD
TT
)=01H
1
a
Thieỏt keỏ Thieỏt bũ thửùc taọp vi xửỷ lớ 8085 Trang 33
* 3 : CALL KYBRD
S S
ẹ *4 ẹ
ẹ
*10 : CALL PHIMSO
S
CALL DEMP
BC DE
BC (BC)+1
*5 : M (00H)
HL (HL)+1
*6
*7
* 7 : POP H
CALL DPHLM
Add
TT
(01H)
POP D
POP B
1
a
PHIMSO
ADD
(Add
TT
)=01H
H = B
L = C
Thieỏt keỏ Thieỏt bũ thửùc taọp vi xửỷ lớ 8085 Trang 34
POP PSW
DEL
PUSH PSW STA Add
DT79
PUSH B CALL DAUCHAM
PUSH D *3 : CALL KYBRD
PUSH H CPI 10H
MVI A, 01H JM *10
STA Add
TT
CPI ADD
CALL XADD JZ *4
MVI A, 83H JMP *3
STA Add
CT79
*4 :
LDA
Add
TT
MVI A, 06H CPI 01H
STA Add
DT79
JZ
*7
CALL DAUCHAM CALL DEMP
*1 : CALL KYBRD MOV B, D
CPI 10H MOV C, E
JM *8 INX B
CPI ADD *5 : MOV M, 00H
JZ *2 INX H
JMP *1 MOV A, H
*2 : LDA Add
TT
CMP B
CPI 01H JZ *6
IZ *7 JMP *5
CALL DEMP *6 : MOV A, L
MOV H, D CMP C
MOV L, E JZ *7
MVI A, 01H JMP *5
STA Add
TT
*7 : POP H
CALL XADD CALL DPHLM
MVI A, 83H MVI A, 01H
STA Add
CT79
STA Add
TT
MVI A, 5B POP D
RET
Thiết kế Thiết bò thực tập vi xử lí 8085 Trang 35
POP B JMP *1
POP PSW *9 : CALL PHIMSO
RET JMP *3
*8 : CALL PHIMSO
Các chương trình con được gọi :
DAUCHAM ( xem phụ lục )
XADD ( xem phụ lục )
DEMP (xem phụ lục )
KYBRD ( xem chương 4 )
Thiết kế Thiết bò thực tập vi xử lí 8085 Trang 36
REG : Đây là chương trình con có chức năng hiển thò nội dung và nạp
nội dung các thanh ghi.
Input : Nội dung các thanh ghi.
Output : Hiển thò nội dung các thanh ghi.
Add
TT
= 01H
XEM GIẢI THUẬT REG CUỐI CHƯƠNG 4
REG
PUSH F STA Add
REG+4
STA Add
REG+0
MOV A, E
MOV A, H STA Add
REG+5
STA Add
REG+6
*1 : MVI A, 01H
MOV A, L STA Add
TT
STA Add
REG+7
LXI H, Add
REG+0
POP H MVI B, 77
MOV A, L CALL KYTUB
STA Add
REG+1
CALL DPM
MOV A, B *2 : CALL KYBRD
STA AdD
REG+2
CPI
10H
MOV A, C JM *18
STA Add
REG+3
CPI ‘UP’
MOV A, D JZ *3
REG
Thiết kế Thiết bò thực tập vi xử lí 8085 Trang 37
CPI “DOWN” JMP *16
JZ *17 *9 : MVI B, 71 H
CPI “REG” CALL KYTUB
JZ *19 JMP *16
*3 : LDA Add
TT
*10 : MVI B, 7 C H
CPI 00H CALL KYTUB
JZ *4 JMP *16
JMP *5 *11 : MVI B, 39 H
*4 : CALL ORQP CALL KYTUB
MOV M, A JMP *16
*5 : INX H *12 : MVI B, 5 E H
*6 : MOV A, H CALL KYTUB
CPI 9 F H JMP *16
JZ *7 *13 : MVI B, 79 H
JMP *1 CALL KYTUB
*7 : MOV A, L JMP *16
CPI D 2 H *14 : MVI B, 76 H
JZ *8 CALL KYTUB
CPI D3 JMP *16
JZ *9 *15 : MVI B, 38 H
CPI D 4 CALL KYTUB
JZ *10 JMP *16
CPI D 5 *16 : CALL DPM
JZ *11 MVI A, 01 H
CPI D 6 STA Add
TT
JZ *12 JMP *2
CPI D 7 *17 : DCX H
JZ *13 JMP *6
CPI D 8 *18 : CALL PHIMSO
JZ *14 JMP *2
CPI D 9 * 19 : LXI H, Add
REG+0
JZ *15 MOV B, M; lấy AF
JMP *1 INX H; thông qua
*8 : MVI B, 77 H MOV C, M; ngăn xếp
CALL KYTUB PUSH B; và BC
Thiết kế Thiết bò thực tập vi xử lí 8085 Trang 38
INX H MOV E, M
MOV B, M XCHG
INX H POP D
MOV D, M CALL DPHLM
INX H MVI A, 01 H
MOV E, M STA Add
TT
PUSH D POP PSW; lấy AF
INX H ; lấy HL thông qua BC
MOV D, M;thông và ngăn xếp
INX H; qua DE RET
DPM : Chương trình con hiển thò nội dung ô nhớ có đòa chỉ trong HL ( xem
phụ lục ).
PHIMSO : Hiển thò đòa chỉ và dữ liệu ( xem phụ lục ).
KYBRD : Chương trình con quét phím.
KYTUB : Hiển thò kí tự và dấu bằng ( xem phụ lục )
ORMP : Hợp hai ô quét phím ( xem phụ lục )
Vùng nhớ Add
REG
dùng để lưu nội dung của các thanh ghi.
Add
REG+0
: 9 F D 2H A
Add
REG+1
: 9 F D 3H F
Add
REG+2
: 9 F D 4H B
Add
REG+3
: 9 F D 5H C
Add
REG+4
: 9 F D 6H D
Add
REG+5
: 9 F D 7H E
Add
REG+6
: 9 F D 8H H
Add
REG+7
: 9 F D 9H L
Thiết kế Thiết bò thực tập vi xử lí 8085 Trang 39
SRCH : Là chương trình con có tác vụ tìm kiếm dữ liệu trong bộ
nhớ.
Input : Nạp dữ liệu cần tìm.
Nạp đòa chỉ cuối của vùng cần xoá
Output : Hiển thò đòa chỉ và dữ liệu vừa tìm được. Thay đổi nội
dung lặp thanh ghi HL.
Add
TT
= 03H
PUSH PSW
*7
S
Add
TT
(01H ) HL (HL) +1
CALL DPFIND A (Add
SRCH
)
*1: CALL KYBRD
S S
Đ Đ *2
S
*6 : CALL PHIMSO
*3 Đ CALL DPHLM
POP PSW
*3 : CALL ORMP
Add
SRCH
(A)
*4 : CPI M
PHIMSO
UP
(Add
TT
)=00H
SRCH
SRCH
Add
TT
= 03H
RET
Thieỏt keỏ Thieỏt bũ thửùc taọp vi xửỷ lớ 8085 Trang 40
HL (HL) + 1
S
ẹ
*5 : Add
TT
03H
CALL DPHLM
POP PSW
SRCH
PUSH PSW CALL ORMP
LDA Add
TT
STA Add
SRCH
CPI 03H *4 : CMP M
JZ *7 JZ *5
MVI A, 01H INX H
STA Add
TT
JMP *4
CALL DPFIND *5 : MVI A, 03H
*1 : CALL KYBRD STA Add
TT
CPI 10H CALL DPHLM
JM *6 POP PSW
CPI UP RET
JZ *2 *6 : CALL PHIMSO
JMP *1 JMP *1
*2 : LDA Add
TT
*7 : INX H
CPI 00H LDA Add
SRCH
JZ *3 JMP *4
CALL DPHLM
POP PSW
RET
Z = 1
RET