Tải bản đầy đủ (.pdf) (11 trang)

Giáo trình hướng dẫn cách đưa địa chỉ vào dữ liệu trong monitor phần 5 potx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (124.06 KB, 11 trang )


Thiết kế Thiết bò thực tập vi xử lí 8085 Trang 41

* Các chương trình được gọi :
 DPFIND ( xem phụ lục )
 DPHLM ( xem phụ lục )
 KYBRD ( xem chương 4 )
 ORMP ( xem phụ lục )
 PHIMSO ( xem chương 4 )




 STEP : Đây là một chương trình cho phép chạy từng lệnh của chương
trình người sử dụng.
 Input : Nhận đòa chỉ hiện hành vào HL.
 Output : Chỉ thay đổi thanh ghi HL.
Các chương trình con được gọi :
LMB : Chương trình nhận biết được lệnh sắp thực hiện mấy
byte.
DPHLM : Hiển thò đòa chỉ vào dữ liệu tại đòa chỉ đó.
Chương trình sử dụng các vùng nhớ sau :



9 D 00H


Vùng nhớ
vào sau
ra trước


9 D FFH

( ngăn xếp giả )







Add
ST0
9FDAH


Add
ST1
9FDBH

Nạp lệnh cần chạy
Add
ST2
9FDCH


STEP


Thiết kế Thiết bò thực tập vi xử lí 8085 Trang 42
Add

ST3
9FDDH


Add
ST4
9FDEH

Nạp lệnh nhảy
Add
ST5
9FDFH


Add
ST6
9FE0H


Add
ST7
9FE1H


Add
ST8
9FE2H

Nạp nội dung các
Add

ST9
9FE3H

thanh ghi
Add
STA
9FE4H


Add
STB
9FE5H

Nạp nội dung các
Add
STC
9FE6H

thanh ghi
Add
STD
9FE7H


Add
STE
9FE8H




Add
STF
9FE9H



Add
ST10
9FEAH


Add
ST11
9FEBH



Add
ST12
9FECH

Khi chạy các các lệnh
Add
ST13
9FEDH

nhảy, lệnh gọi và lệnh
Add
ST14
9FEEH


trở về
Add
ST15
9FEFH


Add
ST16
9FF0H


Add
ST7
9FF1H




XEM GIẢI THUẬT STEP CUỐI CHƯƠNG 4
STEP
PUSH B JZ *ST2
MOV A,M CPI 31H
STA Add
STO
JZ *ST2
MVI A,OOH CPI 33H
STA Add
ST17
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


Thieỏt keỏ Thieỏt bũ thửùc taọp vi xửỷ lớ 8085 Trang 43
*ST1: INX H CPI A0H
MOV A,M JZ *ST22
STA Add
ST10
JMP *ST20
INX H *ST22 : STA Add
ST2

MOV A,M SHLD Add
STE
STA Add
ST11
MVI A,C3H

MVI A,_ STA Add
CT79

STA Add
ST1
MVI A,01H
MVI A,_ CALL DELAY 0.1

STA Add
ST2
MVI A,C3H
SHLD Add
ST12
STA Add
ST3

MVI A,C3 MVI A,_
STA Add
ST3
STA Add
ST4


MVI A,_ MVI A,_
STA Add
ST4
STA Add
ST5


MVI A,_ LDA Add
ST8


STA Add
ST5
MOV B,A


JMP *ST21 LDA Add
ST9
*ST2 : MOV A,M MOV C,A
CPI 32H LHLD Add
ST6

JZ *ST10 PUSH H
INX H POP PSW
*ST4 : MOV A,M LHLD Add
STA
STA Add
ST1
XCHG

INX H LHLD Add
STC

*ST20 : MOV A,M JMP Add
STO
STA Add
ST2
*ST12 : SHLD Add
STC


JMP *ST7 PUSH PSW
*ST10 : INX H POP H
MOV A,M SHLD Add
ST6


CPI 00H MOV A,B
JZ *ST11 STA Add
ST8
JMP *ST4 MOV A,C
*ST11: STA Add
ST1
STA Add
ST9
INX H XCHG
MOV A,M SHLD Add
STA

Thieỏt keỏ Thieỏt bũ thửùc taọp vi xửỷ lớ 8085 Trang 44
LHLD Add
STE
MOV H,B
INX H MOV L,C
MVI A,01H INX H
STA Add
TT
JMP *ST9

POP B *ST7 : SHLD Add
STE
RET MVI A,C3H
*ST3 : INX H STA Add
ST3

MOV A,M MVI A,_
STA Add

ST1
STA Add
ST4


MVI A,00H MVI A,_
STA Add
ST2
STA Add
ST5

JMP *ST7 *ST21: LDA Add
ST8
*ST5 : MVI A,00H MOV B,A
STA Add
ST1
LDA Add
ST9

STA Add
ST2
MOV C,A

JMP *ST7 LHLD Add
ST6
*ST6 : SHLD Add
ST15
PUSH H

MVI A,00H POP PSW

STA Add
ST1
LHLD Add
STA

STA Add
ST2
XCHG


MVI A,C3H LHLD Add
STC
STA Add
ST+3
JMP Add
STO

MVI A,_ *ST8 : SHLD Add
STC

STA Add
ST+4
PUSH PSW

MVI A,_ POP H
STA Add
ST+5
SHLD Add
ST6



CALL *ST19 MOV A,B
LDA Add
ST14
STA Add
ST8

MOV L,A MOV A,C
MVI H,9DH STA Add
ST9

MOV B,M XCHG
INX H SHLD Add
STA
MOV C,M LHLD Add
STE
DCRA INX H
DCRA *ST9 : CALL DPHLM
STA Add
ST14
MVI A,01H

Thieỏt keỏ Thieỏt bũ thửùc taọp vi xửỷ lớ 8085 Trang 45

STA Add
TT
INR A
POP B INR A
RET STA Add
ST14


LHLD Add
ST12

*ST13 : INX H MOV B,H
MOV A,M MOV C,L

STA Add
ST10
MOV L,A
INX H MVI H,9DH
MOV A,M MOV M,B

STA Add
ST11
INX H
MVI A,_ MOV M,C
STA Add
ST1
MVI A,01H
MVI A,_ STA Add
ST17
STA Add
ST2
LHLD Add
ST10

SHLD Add
ST12
RET

MVI A,C3
STA Add
ST3
*17 : LDA Add
ST17

MVI A,_ CMP 00H
STA Add
ST4
JZ *ST15
MVI A,_ JMP *ST9
STA Add
ST5
*18 : LHLD Add
ST15

JMP *ST21 INX H
*ST14 : LHLD Add
ST10
JMP *ST9
JMP *ST9
*ST15 : LHLD Add
ST12
*19 : JMP *ST21
INX H


JMP *ST9
*ST16 : LDA Add
ST14















Thiết kế Thiết bò thực tập vi xử lí 8085 Trang 46


 LMB : Đây là một chương trình con có nhiệm vụ nhận biết lệnh mấy
byte.
 Input : HL là đòa chỉ chứa lệnh đó
 Output : C = 32H : Khi lệnh đó thuộc nhóm lệnh nạp tức thời cặp
thanh ghi ( 3 byte )
C = 31H : Khi lệnh đó thuộc nhóm lệnh lưu trữ trực tiếp ( 3
byte )
C = 30H : Khi lệnh đó thuộc nhóm lệnh gọi chương trình
con ( 3 byte )
C = 33H : Khi lệnh đó thuộc nhóm lệnh nhảy ( 3 byte )
C = 20H : Khi lệnh đó thuộc nhóm lệnh 2 byte
C = 11H : Khi lệnh đó thuộc nhóm lệnh trở về từ chương
trình con

C = 10H : Khi lệnh đó thuộc nhóm lệnh 1 byte ( kể cả
những mã không thuộc bộ lệnh )
Ngoài thanh ghi C chương trình không ảnh hưởng tới các thanh
ghi khác.
Do chương trình đơn giản nên chỉ trình bày thuật giải. Được gọi
từ chương trình STEP và chương trình SDC.




PUSH PSW
A (M)


Đ

C (32H)
POP PSW
S


LMB

LMB

Nh
óm nạp tức thời
thanh ghi (3 byte)
1


RET


Thiết kế Thiết bò thực tập vi xử lí 8085 Trang 47



Đ

C (31H)
POP PSW
S


Đ

C (30H)
POP PSW
S

Đ

C (33H)
POP PSW
S

Đ

C (20H)
S POP PSW



Đ

C (11H)
S POP PSW
C (10H)
POP PSW


1

Nhóm lệnh lưu trữ
trực tiếp (3 byte)
RET

Nhóm lệnh gọi
chương trình con (3
byte)

RET

Nhóm lệnh nhảy (3
byte)
RET

Nhóm lệnh 2 byte

RET


Nhóm lệnh trở về từ
chương trình con
RET

RE
T


Thiết kế Thiết bò thực tập vi xử lí 8085 Trang 48


 INS : Đây là một chương trình con cho phép chèn dữ liệu tại đòa chỉ
hiện hành và tự sửa đòa chỉ nếu muốn.
 Input : Nạp đòa chỉ cuối vùng INS , nghóa là chương trình chỉ có tác
dụng trong khoảng từ đòa chỉ hiện hành đến đòa chỉ cuối mới
nạp. Nếu sửa đòa chỉ thì nạp đòa chỉ lệnh đầu tiên vùng cần
sửa, nghóa là chương trình sửa đòa chỉ chỉ có tác dụng từ đòa chỉ
mới nạp tới đòa chỉ cuối vùng INS
 Output : Ngoài AF không thanh ghi nào bò điều chỉnh. Vùng đòa chỉ sử
dụng cho INS :

Add
INS + 0
: 9FDD

Đòa chỉ trở về sau khi
Add
INS + 1
: 9FDE


INS
Add
INS + 2
: 9FDF

Đòa chỉ kế cuối vùng
Add
INS + 3
: 9FE0

INS
Add
INS + 4
: 9FE1

Nạp đòa chỉ ô nhớ
Add
INS + 5
: 9FE2

cần chèn




PUSH B
PUSH D
PUSH H
BC (0000H)
SHLD Add

INS + 0

SHLD Add
INS + 4

DE HL
*1 : Add
tt
(01H)
CALL XADD
A (83H)
Add
CT79
(A)
A (79H)
Add
DT79
(A)

INS

INS

a


Thieỏt keỏ Thieỏt bũ thửùc taọp vi xửỷ lớ 8085 Trang 49

CALL DAUCHAM
*4: CALL KYBRD



S S


ẹ *3
S
*16 : CALL PHIMSO

*4 ẹ

PUSH DE
CALL DEMP
HL DE
HL (HL) - 1
SHLD Add
INS + 2
POP DE
A (H)


S ẹ


*5 ẹ S
A (L)

S S

ẹ ẹ *6





PHIMSO


ADD


(Add
TT
)=00H


A = D


A < D


A = E


A < E


1

a



Thieỏt keỏ Thieỏt bũ thửùc taọp vi xửỷ lớ 8085 Trang 50



Add
TT
(01H)
LHLD Add
INS+ 0
CALL DPHLM
*7 : CASLL KYBRD

S S S

*11 ẹ *10 ẹ *9 ẹ
PUSH HL CALL DOWN Add
TT
(01H)
LHLD Add
INS+2
SHLD Add
INS+0
CALL SDC
CALL SHM DE HL POP H
BC (BC)+1 CALL DPHLM
POP HL Add
TT
(01H)

CALL PHIMSO *12 POP D
CALL KYBRD POP B
S *12


*15 ẹ
CALL PHIMSO


*8 S S S

*13 ẹ *14
POP H CALL UP
CALL DPHLM SHLD Add
INS + 0

Add
TT
(01H) DE HL
POP D
POP B



1

ADD

DOWN


PHIMSO

PHIMSO

RET

INS

UP

RET


Thieỏt keỏ Thieỏt bũ thửùc taọp vi xửỷ lớ 8085 Trang 51
PUSH B JMP *6
PUSH D *5 : MOV A,L
PUSH H CMP E
LXI B,0000H JZ *1
SHLD Add
INS + 0
JM *1
SHLD Add
INS + 4
*6 : MVI A,01H
MOV D,H STA Add
TT

MOV E,L LHLD Add
INS + 0


*1 : MVI A,01 CALL DPHLM
STA Add
TT
*7 : CALL KYBRD
CALL XADD CPI ADD
MVI A,38H JZ *9
STA Add
CT79
CPI DOWN
MVI A,79H JZ *10
STA Add
DT79
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 Add
TT
STA Add
TT

CPI 00H CALL SDC
JZ *4 POP H
JMP *1 CALL DPHLM
*4 : PUSH D MVI A,01H
CALL DEMP STA Add

TT

MOV H,D POP D
MOV L,E POP B
DCX H RET
SHLD Add
INS + 2
*10 : CALL DOWN
POP D SHLD Add
INS +0

MOV A,H MOV D,H
CMP D MOV E,L
JZ *5 JMP *12
JMP

*1

×