Thiết kế Thiết bò thực tập vi xử lí 8085 Trang 34
ADD : Là chương trình con có tác vụ nhận đòa chỉ mới , hiển thò
đòa chỉ và dữ liệu mới đó.
Input : Lấy dữ liệu trong 4 ô quét phím
Output : Hiện thò đòa chỉ và dữ liệu
Add
TT
= 01H
Không điều chỉnh các thanh ghi
PUSH PSW
PUSH D
CALL DEQP
HL DE
CALL DPHLM
Add
TT
(01H)
POP D
POP PSW
ADD
PUSH PSW
PUSH D
CALL DEQP
XCHG
CALL DPHLM
MVI A,01H
STA Add
TT
POP D
POP PSW
RET
DPHLM ( xem phụ lục )
ADD
RET
ADD
Thiết kế Thiết bò thực tập vi xử lí 8085 Trang 35
COPY : Là chương trình con có tác vụ copy dữ liệu từ vùng này
sang vùng khác
Input : Nạp đòa chỉ đầu, đòa chỉ cuối của vùng gốc và đòa chỉ đầu
của vùng đích
Output : Copy , hiển thò đòa chỉ và dữ liệu
Chương trình không làm thay đổi nội dung các thanh ghi
PUSH PSW
PUSH B
PUSH D
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 Đ
Đ
*16 : CALL PHIMSO
S
*3 : CALL DEQP
HL DE
COPY
PHIMSO
ADD
(ADD
TT
)=01H
a
COPY
Thieỏt keỏ Thieỏt bũ thửùc taọp vi xửỷ lớ 8085 Trang 36
Add
tt
(01H)
CALL XADD
A (83 H)
Add
CT79
(A)
A (5 B H)
Add
DT79
(A)
CALL DAUCHAM
*4: CALL KYBRD
S S
ẹ *5 ẹ
ẹ
*17 : CALL PHIMSO
S
*6 : CALL DEQP
BC DE
BC (BC)+1
CALL SUBBCHL
Add
TT
(01H)
CALL XADD
A (83H)
Add
CT79
(A)
A (4FH)
Add
DT79
(A)
CALL DAUCHAM
PHIMSO
ADD
(ADD
TT
)=01H
1
a
a
Thieỏt keỏ Thieỏt bũ thửùc taọp vi xửỷ lớ 8085 Trang 37
* 7 : CALL KYBRD
S S
ẹ *8 ẹ
ẹ
*18 : CALL PHIMSO
S
*9 : CALL ORQP
A (Add
copy+1
)
Add
copy+3
(A) + (E)
A (Add
copy+0
)
Add
copy+2
(A) + (D) + Cy
S
*20 ẹ *10
S S
*11 ẹ
ẹ
1
a
PHIMSO
ADD
(Add
TT
)=01H
D
H
HIMSO
D = H
E
L
E = L
a1
b
2
a
Thieỏt keỏ Thieỏt bũ thửùc taọp vi xửỷ lớ 8085 Trang 38
S S
*12 ẹ *8 ẹ
S S
ẹ ẹ
* 14: CALL COPY C.0
* 13: CALL COPY C.1
*15: POP H
CALL DPHLM
Add
TT
(01H)
POP D
POP B
POP PSW
COPY
D = B
D
B
E = C
E
C
b
2
a
RET
Thieỏt keỏ Thieỏt bũ thửùc taọp vi xửỷ lớ 8085 Trang 39
PUSH PSW JZ *5
PUSH B JMP *4
PUSH D *5 : LDA Add
TT
PUSH H CPI 01H
MVI A, 01H JZ *15
STA Add
TT
*6 : CALL DEMP
CALL XADD MOV B, D
MVI A, 83H MOV C,E
STA Add
CT79
CALL SUBBCHL
MVI A,06H MVI 01H
STA Add
DT79
STA Add
TT
CALL DAUCHAM CALL XADD
*1 : CALL KYBRD MVI A, 83H
CPI 10H STA Add
CT79
JM *16 MVI A, 4 F H
CPI ADD STA Add
DT79
JZ *2 CALL DAUCHAM
JMP *1 *7 : CALL KYBRD
*2 : LDA Add
TT
CPI 10H
CPI 01H JM *18
JZ *15 CPI ADD
*3 : CALL DEMP JZ *8
MOV H, D JMP *7
MOV L, E *8 : LDA Add
TT
MVI A,01H
CPI 01H
STA Add
TT
JZ *15
CALL XADD *9 : CALL DEMP
MVI A, 83H
LDA Add
copy+1
STA Add
CT79
ADD E
MVI A, 5BH
STA Add
copy+3
STA Add
DT79
LDA Add
copy+0
CALL DAUCHAM ADC D
*4 : CALL KYBRD STA Add
copy+2
CPI 10H MOV A,D
JM *17 CMP H
CPI ADD JZ *10
Thiết kế Thiết bò thực tập vi xử lí 8085 Trang 40
JP *11 *13 : CALL COPY C.1
JMP *14 JMP *15
*10 : MOV A,E *14 : CALL COPY C.0
CMP L *15 : POP H
JZ *15 CALL DPHLM
JP *11 MVI A, 01H
JMP *14 STA Add
TT
*11 MOV A,D POP D
CMP B POP B
JZ *12 POP PSW
JP *14 RET
JMP *13 *16 : CALL PHIMSO
*12 MOV A,E JMP *1
CMP C *17 : CALL PHIMSO
JZ *13 JMP *4
JP *14 *18 : CALL PHIMSO
JMP *13 JMP *7
Vùng nhớ Add
copy
dùng để lưu trữ kết quả của các phép cộng trừ cặp thanh ghi
phục vụ cho các chương trình con SUBBCHL và COPY C.1 vùng nhớ Add
copy
nằm trong vùng nhớ Add
REC
.
Add
copy+0
: 9FD2H
Add
copy+1
:
9FD3H
Add
copy+2
: 9FD4H A (B) – (H) - Cy
Add
copy+3
: 9FD5 A (C) – (L)
Các chương trình con được gọi :
SUBBCHL
SUBBCHL: Là chương trình con có tác vụ trừ nội dung thanh ghi
BC cho nội dung trong HL.
(C)
–
(L)
(B)
–
(H)
–
Cy
(A) + (E)
(A) + (D) + Cy
Thiết kế Thiết bò thực tập vi xử lí 8085 Trang 27
ĐÍCH
Input : Nạp số bò trừ vào BC
Nạp số trừ vào HL
Output : Hiệu số được nạp vào 2 ô nhớ Add
copy+0
và Add
copy+1
không làm thay đổi nội dung các thanh ghi.
PUSH PSW
A (C)
A (A) – (L)
Add
COPY + 1
(A)
A (B)
A (A) – (H) – C
y
Add
COPY + 0
(A)
POP PSW
SUBBCHL
PUSH PSW
MOV A,C
SUB L
STA Add
COPY
+ 1
MOV A,B
SBB H
STA Add
COPY + 0
POP PSW
RET
COPY C.O : Đây là chương trình con sao chép dữ liệu từ vùng này
qua vùng khác. Hai vùng gốc và đích không giao nhau
hoặc giao nhau như hình vẽ
SUBBCHL
RET
DE
GỐC
HL
BC
Thiết kế Thiết bò thực tập vi xử lí 8085 Trang 27
Input : Nạp đòa chỉ đầu của vùng gốc vào HL
Nạp đòa chỉ cuối của vùng gốc vào BC
Nạp đòa chỉ đầu của vùng đích vào DE
Output : Không làm thay đổi nội dung các thanh ghi.
PUSH PSW
PUSH B
PUSH D
PUSH H
BC (BC) + 1
*1 : A M
STAX D
HL (HL) + 1
DE (DE) + 1
S
Đ
S
Đ
*3 : POP H
POP D
POP B
POP PSW
COPY C.0
H = B
L = C
RET
Thiết kế Thiết bò thực tập vi xử lí 8085 Trang 28
Input : Nạp số bò trừ vào BC
Nạp số trừ vào HL
Output : Hiệu số được nạp vào 2 ô nhớ Add
copy+0
và Add
copy+1
không làm thay đổi nội dung các thanh ghi.
PUSH PSW
PUSH B
PUSH D
PUSH H
BC (BC) + 1
*1 : A M
STAX D
HL (HL) + 1
DE (DE) + 1
S
Đ
S
Đ
*3 : POP H
POP D
POP B
POP PSW
COPY C.0
H = B
L = C
RET
COPY C.0
Thiết kế Thiết bò thực tập vi xử lí 8085 Trang 29
COPY C.0
PUSH PSW JZ *2
PUSH B JMP *1
PUSH D *2: MOV A, C
PUSH H CMP L
INX B JZ *3
*1 : MOV A, M JMP *1
STAX D *3 : POP H
INX H POP D
INX D POP B
MOV A, B POP PSW
CMP H RET
COPY C.1 Đây là chương trình con chép đoạn dữ liệu trùng nhau
như hình vẽ.
bc
Input : Nạp đòa chỉ đầu của vùng gốc vào HL
Nạp đòa chỉ cuối của vùng vào BC
Thanh ghi D lấy dữ liệu từ Add
copy+2
Thanh ghi E lấy dữ liệu từ Add
copy+3
Output : Không thay đổi nội dung các thanh ghi.
GỐC
ĐÍCH
COPY C.1
DE
BC
HL