LỜI MỞ ĐẦU
 
 Ngày nay, kỹ thuật vi xử lí đã trở nên quen thuộc với hầu hết mọi người, được ứng dụng rộng rãi trong nhiều lĩnh vực, đặc biệt trong lĩnh vực điều khiển tự động. Do đó nhu cầu nghiên cứu để sử dụng vi xử lí là hết sức cần thiết đối với hầu hết các sinh viên ngành điện tử .
 Đề tài :” Thiết Kế Thiết Bị Thực Tập Vi Xử Lí” nhằm giải quyết phần nào nhu cầu nghiên cứu của bản thân, cũng như nhu cầu thực tập, nghiên cứu của sinh viên và những ai yêu thích vi xử lí.
 Thời gian, khả năng và công tác in ấn là những yếu tố chính gây ra những sai sót và khiếm khuyết trong đồ án này. Tôi rất mong và ghi nhận những đóng góp của qúi thầy cô và các bạn sinh viên.
                
              
                                            
                                
            
 
            
                 109 trang
109 trang | 
Chia sẻ: banmai | Lượt xem: 1955 | Lượt tải: 1 
              
            Bạn đang xem trước 20 trang tài liệu Thiết kế thiết bị thực tập vi xử lí, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
 taïo ngoaïi vi 8251
	MVI	A, 5DH	; Baát ñoàng boä, heä soá nhaân toác ñoä baèng 1, cho 
	OUT	23H	; pheùp duøng parity, khoâng kieåm tra parity 
	; chaün, kí töï daøi 18 bit, 1 bit stop
	MVI	A, 10H	; Caám phaùt, caám nhaän, reset taát caû caùc côø loãi,
	OUT	23H	; ngaên chaën reset mode beân trong, 
	; Khôûi taïo 8259
	MVI	A, 12H	; taùc ñoäng söôøn döông, khoaûng caùch
	OUT	20H	; caùc vectô ngaét 8 byte, coù 1 maïch
	; PIC, boû ICW4
	MVI	A, 40 H	; choïn kieåu ngaét 40h ñeán
	OUT	27H	; 47H
	MVI	A, 00H	; Ñaàu vaøo IRi khoâng noái 
	OUT	27H	; maïch thôï
	; Khôûi taïo ngaét
	MVI	A, E5H	; Che RST 7.5, RST 5.5 khoâng
	SIM	; che RST 5.5
	; Khôûi taïo moät soá oâ nhô ù
	MVI	A,10H	STA	AddST 14
	STA	AddTT	CALL	HELLO
	MVI	A, 00H	*A :	PUSH	PSW
	STA	Addqp+0	*B :	CALL	KYBRD
	STA	Addqp+1	CPI	10H
	STA	Addqp+2	JM	*C
	STA	Addqp+3	CPI	‘UP’
	STA	AddHT+4	JZ	*D
	STA	AddHT+5	CPI	‘DOWN’
	STA	AddHT+6	JZ	*E
	STA	AddHT+7
	CPI	‘ADD’	*G :	CALL	COPY
	JZ	*F	POP	PSW
	CPI	COPY	JMP	*A
	JZ	*G	*H :	CALL	DEL
	CPI	‘DEL’	POP	PSW
	JZ	*H	JMP	*A
	CPI	 ‘REG’	*I :	POP	PSW
	JZ	*I	CALL	REG
	CPI	‘SRCH’	JMP	*A
	JZ	*J	*J :	CALL	SRCH
	CPI	‘STEP’	POP	PSW
	JZ	*K	JMP	*A
	CPI	‘INS’	*K :	CALL	STEP
	JZ	*L	POP	PSW
	CPI	‘’PC’	JMP	*A
	JZ	*M	*L :	CALL	INS
	JMP	*B	POP	PSW
*C :	CALL	PHIMSO	JMP	*A
	POP	PSW	*M :	CALL	PC
	JMP	*A	POP	PSW
*D :	CALL	UP	JMP	*A
	POP	PSW
	JMP	*A
*E :	CALL	DOWN
	POP	PSW
	JMP	*A
*F :	CALL	ADD
	POP	PSW
	JMP	*A
KYBRD
· KYBRD :	Laø chöông trình con coù nhieäm vuï laáy maõ cuûa phím aán.
· Input: 	Chôø phím aán
· Output:	Chöông trình seõ duøng laïi cho ñeán khi naøo coù moät phím ñöôïc goõ, khi ñoù (A) = Maõ phím
	Ngoaøi A khoâng thanh ghi naøo bò ñieàu chænh
	Coù goïi KYCODE
 KYBRD
	PUSH	B
	PUSH	D
	PUSH	H
 *1:	CALL	KYCODE
(A) = FFH
	Ñ	
	S
	POP	H 
	POP	D
	POP	B
RET
 KYRBD
	PUSH	B
	PUSH	D
	PUSH	H
 *1:CALL	KYCODE
	CPI	FFH	
	JZ	*1
	POP	H
	POP	D
	POP	B
	RET
KYCODE
· KYCODE :	Ñaây laø chöông trình con .Noù coù taùc vuï laáy maõ cuûa phím aán töø FIFO cuûa 8279 ñaët vaøo thanh ghi A
· Input:	Goõõ phím
· Output:	Neáu khoâng goõ phím 	 : (A) = FFH
	Neáu coù phím ñöôïc goõ	 : (A) = Maõ phím
	Caùc thanh ghi bò ñieàu chænh : A,B
	Goïi DELAY 0.1 (Xem phuï luïc)
KYCODE
	LDA	AddSTATUS
	A	(A) AND (OFH )
 Z=1
	S
	A	(01H)
	*1	CALL	DELAY 0.1
	A	FFH	LDA	AddDT79
	B	(A)
	A	(C2H)
	STA	AddCT79
	A	(B)	
RET
	KYCODE
	LDA	AddSTATUS	
	ANI	OFH	MVI	A,C2H
	JZ	*1	STA	AddCT79
	MVI	A,01H	MOV	A,B
	CALL	DELAY 0.1	RET
	LDA	AddDT79	*1 :	MVI	A,FFH
	MOV	B,A	RET
PHIM SO
· PHIM SO: 	Ñaây laø moät chöông trình con coù taùc vuï hieån thò phím aán vaø löu tröõ maõ phím aán.
· Input :	Maõ phím aán
· Output :	Hieån thò phím aán vaø löu tröõ phím aán
	Khoâng thanh ghi naøo bò ñieàu chænh.
	AddTT = OOH
PHIM SO
AddTT =OOH
Naïp OOH vaøo Ram hieån thò cuûa 8279 vaø vuøng AddHT
CALL CODE 1
PUSH PSW
Dòch döõ lieäu vaø naïp maõ phím môùi aán vaøo vuøng Addqp
Dòch maõ hieån thò trong ram hieån thò cuûa 8279 vaø trong vuøng AddHT
 Xuaát kha S  *2 *1 
1
1
POP PSW
Naïp maõ hieån thò cuûa phím môùi aán vaøo AddHT vaø vaøo Ram hieån thò cuûa 8279
AddTT (OOH)
RET
Hình 4.3 laø löu ñoà chöông trình phím soá
Addqp : laø 4 oâ nhôù löu giöõ maõ phím cuûa 4 laàn aán phím soá sau cuøng.
AddHT: 4 oâ nhôù löu giöõ maõ 7 ñoaïn töông öùng vôùi 4 maõ phím sau cuøng
AddTT : cho bieát phím sau cuøng laø phím chöùc naêng hay phím soá
CODE : laø chöông trình con ñoåi caùc maõ Hexa töø OOH OFH sang moät kí töï maõ 
7 ñoaïn ( xem phuï luïc )
AddTT
Addqp+0
AdHT+4
Addqp+1
AdHT+5
Addqp+2
AdHT+6
Addqp+3
AdHT+7
 Maõ phím môùi aán Maõ 7 ñoaïn cuûa phím môùi aán
UP
· UP:	Chöông trình con coù taùc vuï taêng ñòa chæ hieän haønh vaø naïp döõ lieäu hieån thò vaøo ñòa chæ hieän haønh ñoù.
· Input:	Thanh ghi HL
· Output:	Hieån thò döõ lieäu vaø ñòa chæ cuûa oâ döõ lieäu ñoù chöùa trong HL
	Caùc thanh ghi coøn laïi khoâng bò ñieàu chænh.
	AddTT =01H
	AddTT : ñòa chæ oâ nhôù chöùa cô traïng thaùi
	AddTT =00H: phím aán sau cuøng laø phím soá
	AddTT ¹00H: phím aán sau cuøng laø phím chöùc naêng
UP
AddTT =00H
PUSH PSW
 S
 Ñ *2
*2: CALL 0RMP
M (A)
*1: HL (HL) +1
	CALL	DPHLM
AddTT (01H)
	POP 	PSW
RET
Hình 4.4 Löu ñoà chöông trình phím UP
	ORMP:	laø chöông trình con hôïp hai oâ queùt phím (xem phuï luïc)
	DPHLM:	laø chöông trình con coù taùc vuï hieån thò ñòa chæ vaø döõ lieäu trong oâ nhôù coù ñòa chæ trong HL (xem phuï luïc).
	 UP	
	PUSH	PSW
	CPI	OOH
	JZ	*2
	JMP	*1
	*2:	CALL	ORMP
	MOV	M , A
	*1:	INX	H
	CALL	DPHLM
	MVI	A, 0 1 H
	STA	AdTT
	POP 	PSW
	RET
 DOWN
· DOWN :	Laø chöông trình con coù taùc vuï giaûm ñòa chæ hieän haønh xuoáng 1 ñôn vò
· Input :	Thanh ghi HL
· Output :	Hieån thò ñòa chæ vaø döõ lieäu
	AddTT = 01H
DOWN
	PUSH	PSW
	HL	(HL) – 1
	CALL	DPHLM
	AddTT	(01H)
	POP	PSW
 RET
	DOWN
	PUSH	PSW
	DCX	H
	CALL	DPHLM
	MVI	A,01H
	STA	AddTT
	POP	PSW
	RET
	· DPHLM (Xem phuï luïc)
ADD
· ADD :	Laø chöông trình con coù taùc vuï nhaän ñòa chæ môùi , hieån thò ñòa chæ vaø döõ lieäu môùi ñoù.
· Input :	Laáy döõ lieäu trong 4 oâ queùt phím
· Output :	Hieän thò ñòa chæ vaø döõ lieäu
	AddTT = 01H
	Khoâng ñieàu chænh caùc thanh ghi
 ADD
	PUSH	PSW
	PUSH	D
	CALL	DEQP
	HL	DE
	CALL	DPHLM
	AddTT	(01H)
	POP	D
	POP	PSW
 RET
	ADD
	PUSH	PSW
	PUSH	D
	CALL	DEQP
	XCHG
	CALL	DPHLM
	MVI	A,01H
	STA	AddTT
	POP	D
	POP	PSW
	RET
	· DPHLM ( xem phuï luïc )
 COPY
· COPY :	Laø chöông trình con coù taùc vuï copy döõ lieäu töø vuøng naøy sang vuøng khaùc
· Input :	Naïp ñòa chæ ñaàu, ñòa chæ cuoái cuûa vuøng goác vaø ñòa chæ ñaàu cuûa vuøng ñích
· Output :	Copy , hieån thò ñòa chæ vaø döõ lieäu
	Chöông trình khoâng laøm thay ñoåi noäi dung caùc thanh ghi
 COPY
	PUSH	PSW
	PUSH	B
	PUSH	D
	PUSH	H
	Addtt	(01H)
	CALL	XADD
	A	(83H)
	AddCT79	(A)
	A	(06H)
	AddDT79	(A)
	CALL	DAUCHAM
	*1:	CALL	KYBRD
 ADD
PHIMSO
	S	 S	Ñ	*2	Ñ
(ADDTT)=01H
	Ñ
	*16 : 	CALL	PHIMSO
	S
a
x
*3 : CALL	DEQP
HL	DE
Addtt	(01H)
	CALL	XADD
a
	A	(83 H)
	AddCT79	(A)
	A	(5 B H)
	AddDT79	(A)
	CALL	DAUCHAM
	*4:	CALL	KYBRD
 ADD
PHIMSO
	S	 S	Ñ	*5	Ñ
(ADDTT)=01H
	Ñ
	*17 : 	CALL	PHIMSO
	S
	*6 : CALL	DEQP
BC	DE
	BC	(BC)+1
CALL	SUBBCHL
	AddTT	(01H)
	CALL	XADD
	A	(83H)
	AddCT79	(A)
	A	(4FH)
	AddDT79	(A)	
	CALL	DAUCHAM
a
1
1
a
	* 7 :	CALL	KYBRD
 ADD
PHIMSO
	S	 S	Ñ	*8	Ñ
(AddTT)=01H
	Ñ
	*18 : 	CALL	PHIMSO
	S
	*9 : CALL	ORQP
A	(Addcopy+1)
	Addcopy+3	(A) + (E)
	A	(Addcopy+0)
	Addcopy+2	(A) + (D) + Cy	
D > HHIMSO
 D = H
	S	  *20	Ñ	*10
 E = L
E > L
 S 	S	   *11	Ñ
a
	Ñ
2
b
a1
b
a
2
D > B
D = B
	S	 S *12	Ñ	*8	Ñ
 E > C
E = C
	S	 S	Ñ	Ñ
 	 * 14: CALL COPY C.0
 * 13: CALL COPY C.1
	 *15: POP H
	CALL	DPHLM
	AddTT	(01H)
	POP	D
	POP	B
	POP	PSW
RET
	COPY
	PUSH	PSW	JZ	*5
	PUSH	B	JMP	*4
	PUSH	D	*5 :	LDA	AddTT	
	PUSH	H	CPI	01H
	MVI	A, 01H	JZ	*15
	STA	AddTT	*6 :	CALL	DEMP
	CALL	XADD	MOV	B, D
	MVI	A, 83H	MOV	C,E
	STA	AddCT79	CALL	SUBBCHL
	MVI	A,06H	MVI	01H
	STA	AddDT79	STA	AddTT
	CALL	DAUCHAM 	CALL	XADD
	*1 :	CALL	KYBRD	MVI	A, 83H
	CPI	10H	STA	AddCT79
	JM	*16	MVI	A, 4 F H
	CPI	‘ADD’	STA	AddDT79
	JZ	*2	CALL	DAUCHAM
	JMP	*1	*7 :	CALL	KYBRD
	*2 :	LDA	AddTT	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	AddTT
	MVI	A,01H	CPI	01H
	STA	AddTT	JZ	*15
	CALL	XADD	*9 :	CALL	DEMP
	MVI	A, 83H	LDA	Addcopy+1
	STA	AddCT79	ADD	E
	MVI	A, 5BH	STA	Addcopy+3
	STA	AddDT79	LDA	Addcopy+0
	CALL	DAUCHAM 	ADC	D
	*4 :	CALL	KYBRD	STA	Addcopy+2
	CPI	10H	MOV	A,D
	JM	*17	CMP	H
	CPI	‘ADD’	JZ	*10
	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	AddTT
	*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
Vuøng nhôù Addcopy duøng ñeå löu tröõ keát quaû cuûa caùc pheùp coäng tröø caëp thanh ghi phuïc vuï cho caùc chöông trình con SUBBCHL vaø COPY C.1 vuøng nhôù Addcopy naèm trong vuøng nhôù AddREC.
(C) – (L)
Addcopy+0 : 9FD2H
(B) – (H) – Cy
Addcopy+1 : 9FD3H 
(A) + (E)
Addcopy+2 : 9FD4H A	(B) – (H) - Cy 
(A) + (D) + Cy
Addcopy+3 : 9FD5 A	(C) – (L)	
Caùc chöông trình con ñöôïc goïi :
SUBBCHL	
	SUBBCHL:	Laø chöông trình con coù taùc vuï tröø noäi dung thanh ghi BC cho noäi dung trong HL.
	· Input :	Naïp soá bò tröø vaøo BC	
	Naïp soá tröø vaøo HL
	· Output :	Hieäu soá ñöôïc naïp vaøo 2 oâ nhôù Addcopy+0 vaø Addcopy+1 khoâng laøm thay ñoåi noäi dung caùc thanh ghi.
SUBBCHL
	PUSH	PSW
	A	(C)
	A	(A) – (L)
	AddCOPY + 1	(A)
	A	(B)
	A	(A) – (H) – Cy
	AddCOPY + 0	(A)
	POP	PSW
RET
	SUBBCHL
	PUSH	PSW
	MOV	A,C
	SUB	L
	STA	AddCOPY + 1
	MOV	A,B
	SBB	H
	STA	AddCOPY + 0
	POP	PSW
	RET
ÑÍCH
DE
	· COPY C.O :	Ñaây laø chöông trình con sao cheùp döõ lieäu töø vuøng naøy qua vuøng khaùc. Hai vuøng goác vaø ñích khoâng giao nhau hoaëc giao nhau nhö hình veõ
GOÁC
HL
BC
	· Input :	Naïp ñòa chæ ñaàu cuûa vuøng goác vaøo HL	
	Naïp ñòa chæ cuoái cuûa vuøng goác vaøo BC
	Naïp ñòa chæ ñaàu cuûa vuøng ñích vaøo DE
	· Output :	Khoâng laøm thay ñoåi noäi dung caùc thanh ghi.
COPY C.0
	PUSH	PSW
	PUSH	B
	PUSH	D
	PUSH	H
	BC	(BC) + 1
	 *1 :	A	M
	STAX	D
	HL	(HL) + 1
	DE	(DE) + 1
H = B
	S
L = C
 	Ñ
	S
	Ñ
	*3 :	POP	H
	POP	D
	POP	B
	POP	PSW
RET
COPY C.0
	· Input :	Naïp soá bò tröø vaøo BC	
	Naïp soá tröø vaøo HL
	· Output :	Hieäu soá ñöôïc naïp vaøo 2 oâ nhôù Addcopy+0 vaø Addcopy+1 khoâng laøm thay ñoåi noäi dung caùc thanh ghi.
COPY C.0
	PUSH	PSW
	PUSH	B
	PUSH	D
	PUSH	H
	BC	(BC) + 1
	 *1 :	A	M
	STAX	D
	HL	(HL) + 1
	DE	(DE) + 1
H = B
	S
L = C
 	Ñ
	S
	Ñ
	*3 :	POP	H
	POP	D
	POP	B
	POP	PSW
RET
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
	· COPY C.1	Ñaây laø chöông trình con cheùp ñoaïn döõ lieäu truøng nhau nhö hình veõ.
HL
 GOÁC
DE
ÑÍCH
BC
bc
	Input :	Naïp ñòa chæ ñaàu cuûa vuøng goác vaøo HL
	Naïp ñòa chæ cuoái cuûa vuøng vaøo BC
	Thanh ghi D laáy döõ lieäu töø Addcopy+2
	Thanh ghi E laáy döõ lieäu töø Addcopy+3
	Output :	Khoâng thay ñoåi noäi dung caùc thanh ghi.
COPY C.1
	PUSH	PSW
	PUSH	B
	PUSH	D
	PUSH	H
	DE	HL
	HL	BC
	BC	DE	
	BC	(BC) – 1
	D	(Addcopy + 2)
	E	(Addcopy + 3)
	 *1 :	A	M
	STAX	D
	HL	(HL) - 1
	DE	(DE) - 1
H = B
	S
	Ñ	*2
L = C
	S
	Ñ *3
	*3 :	POP	H
	POP	D
	POP	B
	POP	PSW
RET
	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	Addcopy + 2	*3 :	POP	H
	MOV	D,A	POP	D
	LDA	Addcopy + 3	POP	B
	MOV	E,A	POP	PSW
	DCX	B	RET
	*1 :	MOV	A, M	
	STAX	D	
	DCX	H	
	· Caùc chöông trình con sau ñaây xem phuï luïc
	+ DAUCHAM
	+ DEMP
	+ XADD
 DEL
· DEL :	Laø chöông trình con deã xoaù ( naïp 00H ) moät vuøng döõ lieäu
· Input :	Naïp ñòa chæ ñaàu cuûa vuøng caàn xoaù
	 Naïp ñòa chæ cuoái cuûa vuøng caàn xoaù
· Output :	Chöông trình khoâng laøm thay ñoåi noäi dung caùc thanh ghi
 DEL
	PUSH	PSW
	PUSH	B
	PUSH	D
	PUSH	H
	Addtt	(01H)
	CALL	XADD
	A	(83H)
	AddCT79	(A)
	A	(06H)
	AddDT79	(A)
	CALL	DAUCHAM
	*1:	CALL	KYBRD
 ADD
PHIMSO
	S	 S	Ñ	*2	Ñ
(ADDTT)=01H
	Ñ
	*8 : 	CALL	PHIMSO
	S
CALL	DEMP
HL	DE
Addtt	(01H)
	CALL	XADD
	A	(83H)
	AddCT79	(A)
	A	(5BH)
	AddDT79	(A)
	CALL	DAUCHAM
a
1
1
a
	* 3 :	CALL	KYBRD
 ADD
PHIMSO
	S	 S	Ñ	*4	Ñ
(AddTT)=01H
	Ñ
	*10 : 	CALL	PHIMSO
	S
	CALL	DEMP
BC	DE
	BC	(BC)+1
	*5 :	M	(00H)
	HL	(HL)+1
H = B
	*6
L = C
	*7
	* 7 :	POP	H
	CALL	DPHLM	
	AddTT	(01H)
	POP	D
	POP	B
	POP	PSW
RET
DEL
	PUSH	PSW	STA	AddDT79
	PUSH 	B	CALL	DAUCHAM
	PUSH	D	*3 :	CALL	KYBRD
	PUSH	H	CPI	10H
	MVI	A, 01H	JM	*10
	STA	AddTT	CPI	‘ADD’
	CALL	XADD	JZ	*4
	MVI	A, 83H	JMP	*3
	STA	AddCT79	*4 :	LDA	AddTT
	MVI	A, 06H	CPI	01H
	STA	AddDT79	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	AddTT	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	AddTT	*7 :	POP	H	
	CALL	XADD	CALL	DPHLM
	MVI	A, 83H	MVI	A, 01H
	STA	AddCT79	STA	AddTT
	MVI	A, 5B	POP	D
	POP	B	JMP	*1
	POP	PSW	*9 :	CALL	PHIMSO
	RET	JMP	*3
	*8 :	CALL	PHIMSO
Caùc chöông trình con ñöôïc goïi :
DAUCHAM ( xem phuï luïc )
XADD ( xem phuï luïc )
DEMP (xem phuï luïc )
KYBRD ( xem chöông 4 )
REG
REG :	Ñaây laø chöông trình con coù chöùc naêng hieån thò noäi dung vaø naïp noäi dung caùc thanh ghi.
Input :	Noäi dung caùc thanh ghi.
Output :	Hieån thò noäi dung caùc thanh ghi.
AddTT = 01H
XEM GIAÛI THUAÄT REG CUOÁI CHÖÔNG 4
REG
	PUSH	F 	STA	AddREG+4
	STA	AddREG+0	MOV	A, E
	MOV	A, H	STA	AddREG+5
	STA	AddREG+6	*1 :	MVI	A, 01H
	MOV	A, L	STA	AddTT
	STA	AddREG+7	LXI	H, AddREG+0
	POP	H	MVI	B, 77
	MOV	A, L	CALL	KYTUB
	STA	AddREG+1	CALL	DPM
	MOV	A, B	*2 :	CALL	KYBRD
	STA	AdDREG+2	CPI	10H
	MOV	A, C	JM	*18
	STA	AddREG+3	CPI	‘UP’
	MOV	A, D	JZ	*3
	CPI	“DOWN”	JMP	*16
	JZ	*17	*9 :	MVI	B, 71 H
	CPI	“REG”	CALL	KYTUB
	JZ	*19	JMP	*16
	*3 :	LDA	AddTT	*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	AddTT
	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, AddREG+0
	JZ	*15	MOV	B, M; laáy AF
	JMP	*1	INX	H; thoâng qua 
	*8 :	MVI	B, 77 H	MOV	C, M; ngaên xeáp
	CALL	KYTUB	PUSH	B; vaø BC
	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	AddTT
	PUSH	D	POP	PSW; laáy AF
	INX	H ; laáy HL	thoâng qua BC
	MOV	D, M;thoâng	 	vaø ngaên xeáp
	INX	H; qua DE	RET
DPM : Chöông trình con hieån thò noäi dung oâ nhôù coù ñòa chæ trong HL ( xem phuï luïc ).
PHIMSO : Hieån thò ñòa chæ vaø döõ lieäu ( xem phuï luïc ).
KYBRD : Chöông trình con queùt phím.
KYTUB : Hieån thò kí töï vaø daáu baèng ( xem phuï luïc )
ORMP : Hôïp hai oâ queùt phím ( xem phuï luïc )
Vuøng nhôù AddREG duøng ñeå löu noäi dung cuûa caùc thanh ghi.
AddREG+0 : 9 F D 2H
A
AddREG+1 : 9 F D 3H
F
AddREG+2 : 9 F D 4H
B
AddREG+3 : 9 F D 5H
C
AddREG+4 : 9 F D 6H
D
AddREG+5 : 9 F D 7H
E
AddREG+6 : 9 F D 8H
H
AddREG+7 : 9 F D 9H
L
 SRCH
· SRCH :	Laø chöông trình con coù taùc vuï tìm kieám döõ lieäu trong boä nhôù.
· Input :	Naïp döõ lieäu caàn tìm.
	 Naïp ñòa chæ cuoái cuûa vuøng caàn xoaù
· Output :	Hieån thò ñòa chæ vaø döõ lieäu vöøa tìm ñöôïc. Thay ñoåi noäi dung laëp thanh ghi HL.
	AddTT = 03H
 SRCH
	PUSH	PSW
AddTT = 03H
 *7 
	 S
	AddTT	(01H )	HL	(HL) +1
	CALL	DPFIND	A	(AddSRCH)	
	*1:	CALL	KYBRD
PHIMSO
 UP
	S	 S	Ñ	Ñ *2
(AddTT)=00H
	S
	*6 : 	CALL	PHIMSO
	 *3	Ñ CALL DPHLM
	 POP PSW
 *3 : CALL ORMP
RET
	 AddSRCH (A)
	*4 : CPI M
Z = 1
 HL (HL) + 1
 S
 Ñ
	*5 :	AddTT	03H
	CALL	DPHLM
	POP	PSW
RET
SRCH
	PUSH	PSW	CALL	ORMP
	LDA	AddTT	STA	AddSRCH
	CPI	03H	*4 :	CMP	M
	JZ	*7	JZ	*5
	MVI	A, 01H	INX	H
	STA	AddTT	JMP	*4
	CALL	DPFIND	*5 :	MVI	A, 03H
	*1 :	CALL	KYBRD	STA	AddTT
	CPI	10H	CALL	DPHLM
	JM	*6	POP	PSW
	CPI	‘UP’	RET
	JZ	*2	*6 :	CALL	PHIMSO
	JMP	*1	JMP	*1
	*2 :	LDA	AddTT	*7 :	INX	H
	CPI	00H	LDA	AddSRCH
	JZ	*3	JMP	*4
	CALL 	DPHLM
	POP	PSW
	RET
* 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
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
	*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
	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
	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	
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
RET
S
1
1
Nhoùm leänh löu tröõ tröïc tieáp (3 byte)
 	Ñ
	C	(31H)
	POP	PSW
RET
S
Nhoùm leänh goïi chöông trình con (3 byte)
 	Ñ
	C	(30H)
	POP	PSW
RET
	S
Nhoùm leänh nhaûy (3 byte)
 	Ñ
	C	(33H)
	POP	PSW
RET
S
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
	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
	A	(79H)
	AddDT79	(A)
a
	CALL	DAUCHAM 
	*4:	CALL	KYBRD
 ADD
PHIMSO
	S	 S	Ñ	*3	
(AddTT)=00H
	S
	*16 : 	CALL	PHIMSO
	*4	Ñ
	 	PUSH	DE
	CALL	DEMP
HL	DE
	HL	(HL) - 1
SHLD	AddINS + 2
	POP	DE
	A	(H)
A < D
A = D
	S	 Ñ *5	Ñ	S	
	A	(L)
A = E
 A < E
	 S	S
	Ñ	Ñ	*6	
1
1
	AddTT	(01H)
	LHLD	AddINS+ 0
	CALL	DPHLM
	*7 :	CASLL	KYBRD
DOWN
ADD
PHIMSO
S	S	S	
	*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
RET
PHIMSO
	S	*12	
	*15	Ñ	
	CALL	PHIMSO
UP
INS
	*8	S	S	S
	*13	Ñ	*14
	POP	H	CALL	UP
	CALL	DPHLM	SHLD	AddINS + 0
	AddTT	(01H)	DE	HL
	POP	D
	POP	B
RET
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
	*11 :	PUSH	H	STA	AddTT
	LHLD	AddINS + 2	POP	D
	CALL	SHM	POP	B
	INX	B	RET
	POP	H	*14 :	CALL	UP
	CALL	PHIMSO	SHLD	AddINS + 0
	*12 :	CALL	KYBRD	MOV	D,H
	CPI	10H	MOV	E,L
	JZ	*15H	JMP	*7
	JMP	*8	*15 :	CALL	PHIMSO
	*13 :	POP	H	JMP	*12
	CALL	DPHLM	*16 :	CALL	PHIMSO
	MVI	A,01H	JMP	*2
	* Caùc chöông trình con ñöôïc goïi :
	· DAUCHAM 	: xem phuï luïc
	· DEMP 	: xem phuï luïc
	· DPHLM	: xem phuï luïc
	· DOWN	: xem CHÖÔNG 4
	· KYBRD	: xem CHÖÔNG 4
	· PHIMSO	: xem CHÖÔNG 4
	· SDC	: xem CHÖÔNG 4
	· SHM	: xem CHÖÔNG 4
	· XADD	: xem phuï luïc
SHM
· SHM :	Laø chöông trình con coù nhieäm vuï dòch döõ lieäu xuoáng moät oâ nhôù.
· Input: 	Naïp HL laø ñòa chæ giaùp choùt cuûa vuøng INS. Naïp DE laø ñòa chæ oâ nhôù ñöôïc cheøn vaøo. 
· Output:	Khoâng ñieàu chænh noäi dung caùc thanh ghi
SHM
	PUSH	PSW
	PUSH	B
	PUSH	D
BC	HL
	BC	(BC) + 1
DE	(DE) - 1
	*1
	A	(M)
	STAX	B
	HL	(HL) - 1
BC	(BC) – 1
	SH = D
	*2	Ñ
L = E
	S	
	Ñ	*3
	POP	D 
	POP	B
	POP	PSW
RET
	SHM
	PUSH	PSW
	PUSH	B
	PUSH	D
	MOV	B,H
	MOV	C,L
	INX	B
	DCX	D
	*1 :	MOV	A,M
	STAX	B
	DCX	H
	DCX	B
	MOV	A,H
	CMP	D
	JZ	*2
	JMP	*1
	*2 :	MOV	A,L
	CMP	E
	JZ	*3
	JMP	*1
	*3 :	POP	D
	POP	B
	POP	PSW
	RET
SDC
· SDC :	Laø chöông trình con coù khaû naêng söûa ñòa chæ nhöõng leänh lieân quan ñeán ñòa chæ ( leänh nhaûy, leänh goïi, leänh löu tröõ ).
· Input :	Naïp BC laø khoaûng thay ñoåi ñòa chæ.
	Naïp ñòa chæ oâ nhôù caàn cheøn vaøo AddINS + 4 vaø AddINS + 5
	Naïp ñòa chæ giaùp choùt cuûa vuøng caàn INS vaøo AddINS + 2 vaø AddINS + 3
	Naïp ñòa chæ trôû veà khi thöïc hieän xong chöông trình vaøo AddINS + 0 vaø AddINS + 1
	Naïp ñòa chæ baét ñaàu söûa ñòa chæ
· Output :	Hieån thò ñòa chæ hieän haønh tröôùc luùc INS
	Chöông trình khoâng laøm thay ñoåi noäi dung caùc thanh ghi
SDC
	PUSH	PSW
	PUSH	D
	PUSH	H
	Addtt	(01H)
	CALL	XADD
	A	(83H)
	AddCT79	(A)
	A	(7CH)
	AddDT79	(A)
	*1:	CALL	KYBRD
PHIMSO
 ADD
	S	 S	Ñ	*17	*2	Ñ
(ADDTT)=00H
	S
	CALL	PHIMSO
	Ñ	*3
*3 : CALL	DEMP
HL	DE
	*4 :	LDA	AddINS + 2
	E	(A)
	LDA	AddINS + 3
	D	(A)
	DE	(DE) - 1
a
1
a
1
	*5
L = E
H = D
	Ñ	*15	 	Ñ	*16
	*6	S	S
	LHLD	AddINS + 0
	PUSH	B	CALL	DPHLM
	CALL	LMB	POP	H	
Leänh 1byte (C=10H; C=11H)
	POP	D
	POP	PSW
RET
	*7
	HL	(HL) + 1	
	S	POP	B
Leänh 2byte (C=20H)
	*8
	HL	(HL) + 2	
	S	POP	B
Leänh 3byte khoâng lieân quan ñeán ñòa chæ (C=32H)
	*9
	HL	(HL) + 3	
	POP	B
	S
2
a
a
2
	POP	B
	HL	(HL) + 1
	PUSH	H
	E	(M)
	HL	(HL) + 1
	PUSH	H
	D	(M)
	LDA	AddINS + 5	
A = D
A < D
	S	 	S	*10
	*11	Ñ	Ñ	HL	(HL) + 1
	LDA	AddINS + 4	POP	D
A < E
A = E
	POP	D
	S	S
	*12	Ñ	Ñ
	LDA	AddINS + 3
D = A
	Ñ
	*13
	S	LDA	AddINS + 2
A < D
	Ñ
A = E
	Ñ
	S	
	S
A < E
	Ñ
a
3
	S	*14
a
3
	CALL	ADDBCDE
	POP	H
	M	(D)
	POP	H
	M	(E)
	HL	(HL) + 1
	SDC
	PUSH	PSW
	PUSH	D
	PUSH	H
	MVI	A,01H
	STA	AddTT
	CALL	XADD
	MVI	A,83H
	STA	AddCT79
	MVI	A,7CH
	STA	AddDT79	
	*1 :	CALL	KYBRD
	CPI	10H
	JZ	*17
	CPI	‘ADD’
	JZ	*2
	JMP	*1
	*2 :	LDA	AddTT
	CPI	00H
	JZ	*3
	JMP	*1
	*3 :	CALL	DEMP
	MOV	H,D
	MOV	L,E
	*4 :	LDA	AddINS + 2
	MOV	E,A
	LDA	AddINS + 3
	MOV	D,A
	DCX	D
	*5 :	MOV	A,H
	CMP	D
	JZ	*15
	*6 :	PUSH	B
	CALL	LMB
	CPI	10H
	JZ	*7
	CPI	11H
	JZ	*7
	CPI	20H
	JZ	*8
	CPI	32H
	JZ	*9
	POP	B
	INX	H
	PUSH	H
	MOV	E,M
	INX	H
	PUSH	H
	MOV	D,M
	LDA	AddINS + 5
	CMP	D
	JZ	*11
	JM	*12
	*10 :	INX	H
	POP	D
	POP	D
	JMP	*4
	*11 :	LDA	AddINS + 4
	CMP	E
	JZ	*12
	JM	*12
	JMP	*10
	*12 :	LDA	AddINS + 3
	CMP	D
	JZ	*13
	JM	*10
	JMP	*14
	*13 :	LDA	AddINS + 2
	CMP	E
	JZ	*10
	JM	*10
	*14 :	CALL	ADDBCDE
	POP	H
	MOV	M,D
	POP	H
	MOV	M,E
	INX	H
	JMP	*4
	*15 :	MOV	A,L
	CMP	E
	JZ	*16
	JMP	*6
	*16 :	LHLD	AddINS +0
	CALL	DPHLM
	POP	H
	POP	D
	POP	PSW
	RET
	*17 :	CALL	PHIMSO
	JMP	*1
	*7 :	INX	H
	POP	B
	JMP	*5
	*8 :	INX	H
	INX	H
	POP	B
	JMP	*5
	*9 :	INX	H
	INX	H
	INX	H
	POP	B
	JMP	*5
	* Caùc chöông trình con ñöôïc goïi :
	· DEMP 	: xem phuï luïc
	· DPHLM	: xem phuï luïc
	· PHIMSO	: xem CHÖÔNG 4
	· LMP	: xem CHÖÔNG 4
	· ADDBCDE
ADDBCDE
	· ADDBCDE :	Ñaây laø chöông trình con duøng ñeå coäng hai caëp thanh ghi DE vaø BC
	· Input :	Naïp DE, BC
	· Output :	Keát quaû trong DE
	Chæ thanh ghi D , E bò thay ñoåi.
	ADDBCDE
	PUSH	PSW
	PUSH	B
	MOV	A,E
	ADD	C
	MOV	E,A
	MOV	A,D
	ADC	B
	MOV	D,A
	POP	B
	POP	PSW
	RET
PC
· PC :	Laø chöông trình con duøng ñeå chaïy chöông trình cuûa ngöôøi söû duïng.
· Input :	Naïp ñòa chæ baét ñaàu chaïy
· Output :	Thöïc hieän chöông trình ngöôøi söû duïng tôùi khi naøo gaëp leänh döøng
PC
	PUSH	PSW
	PUSH	D	
	Addtt	(01H)
	CALL	DPPC
	CALL	DAUCHAM
	*1:	CALL	KYBRD
 GO
PHIMSO
	S	 S	*4	Ñ	*2	Ñ
(ADDTT)=00H
	S
	CALL	PHIMSO
	*3	Ñ
	CALL	DPHLM
	POP	D
CALL	DEMP	POP	PSW
HL	DE
RET
	POP	D
	POP	PSW
	PC	HL
	PC
	PUSH	PSW
	PUSH	D
	MVI	A,01H
	STA	AddTT
	CALL	DPPC
	CALL	DAUCHAM
	*1 :	CALL	KYBRD
	CPI	10H
	JM	*4
	CPI	‘GO’
	JZ	*2
	JMP	*1
	*2 :	LDA	AddTT
	CPI	00H
	JZ	*3
	CALL	DPHLM
	POP	D
	POP	PSW
	RET	
	*3 :	CALL	DEMP
	MOV	H,D
	MOV	L,E
	POP	D
	POP	PSW
	PCHL
* Caùc chöông trình con ñöôïc goïi :
	· DEMP 	: xem phuï luïc
	· DPHLM	: xem phuï luïc
	· DAUCHAM	: xem phuï luïc
	· PHIMSO	: xem CHÖÔNG 4
	· KYBRD	: xem CHÖÔNG 4
	· DPPC :	Laø chöông trình con xuaát hieän thoâng baùo naïp PC (xem phuï luïc) 
	Treân ñaây laø moät soá chöông trình con ñaõ ñöôïc thieát keá vaø chaïy thöû nghieäm treân SDK 85 (System Design Kit 8085) cuûa tröôøng ÑHSPKT, phaàn coøn laïi ñöôïc trình baøy trong phaàn phuï luïc. Do thôøi gian coù haïn neân khoâng theå thöïc hieän nhö mong muoán, nhöng ñeå thieát keá, chaïy thöû vaø thi coâng hôn 30 chöông trình quaû laø moät coâng vieäc khoâng ñôn giaûn. CHÖÔNG 5 seõ cung caáp nhöõng thoâng tin höõu ích veà vaán ñeà naøy.
Chöông 5 :
THI COÂNG
CHÖÔNG 5 : THI COÂNG
-------------oOo------------
Thi coâng moät heä thoáng vi xöû lí laø moät quaù trình phöùc taïp. Bao goàm hai giai ñoaïn :
Thi coâng phaàn cöùng
Thi coâng phaàn meàm
Hai giai ñoaïn naøy coù theå tieán haønh ñoäc laäp, khoâng caàn thieát phaûi theo trình töï, nhöng phaûi thoáng nhaát. Sau ñaây laø quaù rình thi coâng phaàn meàm.
SOFTWARE
Xaùc ñònh yeâu caàu chöông trình
Choïn löïa giaûi thuaät
Giaûi thuaät toái öu
Ñieàu chænh choã sai
Kieåm tra löu ñoà toång quaùt
Vieát löu ñoà toång quaùt cho giaûi thuaät
Xaùc ñònh caáu hình phaàn cöùng
	A S   Ñ
 S
1
 Ñ
1
	 Ñ 	
Vieát löu ñoà chi tieát cho giaûi thuaät
Dòch giaûi thuaät chi tieát sang chöông trình
Kieåm tra chöông trình treân giaáy
Bieân dòch chöông trình thaønh maõ maùy
 S  Ñ S     Ñ  S	 	2
Kieåm tra maõ leänh ñaõ dòch
Ñieàu chænh choã sai
Ñieàu chænh choã sai
Ñieàu chænh choã sai
Kieåm tra löu ñoà chi tieát
 Ñ	
2
 Ñ
Nhaäp maõ leänh vaøo RAM cuûa SDK85
?
Taát caû chöông trình ñaõ ñöôïc vieát vaø kieåm tra treân SDK85
Soaïn thaûo caùc chöông trình treân NC, PASCAL
Quan saùt keát quaû
Kieåm tra maõ leänh trong RAM SDK 85
Chaïy chöông trình vöøa nhaäp
 S   Ñ S   	 Ñ  S A  Ñ	 	Ñieàu chænh choã sai
4
3
4
3
Ñieàu chænh choã sai
Kieåm tra chöông trình vöøa soaïn thaûo
 S
6
5
?
Kieåm tra chöông trình vöøa naïp
Tuøy ñieàu kieän thöïc teá seõ cho quyeát ñònh cuï theå
Toaøn boä caùc chöông trình ñaõ ñöôïc naïp vaøo ROM heä thoáng
Toaøn boä caùc chöông trình ñaõ ñöôïc soaïn thaûo
Löu taäp tin vaøo ñóa
Naïp moät hoaëc moät nhoùm chöông trình vaøo ROM heä thoáng baèng thieát bò naïp ROM
 Ñ    S Ñ    S   Ñ S	 	 Ñ	
6
5
Ñieàu chænh choã sai
Quan saùt keát quaû
?
S
Naïp vaø chaïy moät soá chöông trình maãu
 Ñ
Quan saùt keát quaû
?
S
 Ñ
Sau cheùp döï phoøng ROM heä thoáng
Thay theá ROM khaùc
Thöû ROM döï phoøngû
S 
Ñieàu kieän thöïc teá cho pheùp
 Ñ
 S 
 Ñ 
Phaùt trieån phaàn meàm
END
 Hình 5.1 : Löu ñoà caùc böôùc thi coâng phaàn meàm
Baûng 5.1 BAÛNG TRA CÖÙU CAÙC HÖÔNG TRÌNH PHUÏC VUÏ MONITOR
Teân chöông trình( 1)
Ñòa chæ baét ñaàu
( 2 )
Ñòa chæ cuoái
( 3 )
Dung löôïng
( 4)
MNT
DAUCHAM
DELAY 0.1
DEMP
DPFIND
DP HL
DP HLM
DP M
DP PC
DP REG
CODE 1
CODE 2
HELLO
KYTUB
ORMP
XADD
KYBRD
KYCHECK
KYCODE
PHIMSO
UP
DOWN
ADD
SUBBCHL
COPY C.0
COPY C.1
COPY
DEL
REG
SRCH
STEP
LMB
SHM
INS
SDC
ADDBCDE
PC
0000H
0200H
0250H
0290H
02C0H
0320H
0360H
0390H
03C0H
0400H
0430H
0440H
0480H
0500H
0550H
0570H
05A0H
05C0H
05F0H
0620H
06E0H
0700H
0720H
0740H
0760H
0790H
07D0H
08E0H
09A0H
0AD0H
0B50H
0D50H
0E90H
0EC0H
0FC0H
10C0H
10F0H
00FCH
023AH
027AH
02A5H
030EH
0351H
037DH
03B3H
03F5H
0422H
0437H
0467H
04EFH
053EH
055FH
059BH
05AFH
05D9H
060BH
06C3H
06F8H
070CH
072EH
074DH
077EH
07BBH
08CDH
0975H
0AA0H
0B23H
0D23H
0E78H
0EAFH
0F9FH
1088H
10CBH
1123H
252 byte
58 byte
42 byte
21 byte
78 byte
49 byte
29 byte
35 byte
53 byte
34 byte
7 byte
23 byte
111 byte
62 byte 
15 byte
43 byte
15 byte
25 byte
27 byte
163 byte
24 byte
12 byte
14 byte
13 byte
30 byte
43 byte
253 byte 
149 byte
256 byte
83 byte
467 byte
296 byte 
31 byte
223 byte
200 byte
11 byte
51 byte
Chöông 6 :
HÖÔÙNG DAÃN SÖÛ DUÏNG 
CHÖÔNG 6 : HÖÔÙNG DAÃN SÖÛ DUÏNG
6.1 PHÍM ADD
Phím ADD duøng ñeå thay ñoåi ñòa chæ hieän haønh. Muoán thöïc hieän ta thöïc hieän caùc böôùc sau :
* AÁn caùc phím soá sao cho treân maøn hình hieän thò caùc ñòa chæ caàn nhaûy tôùi.
*Aán phím ADD laäp töùc ñòa chæ môùi vaø döõ lieäu taïi ñòa chæ ñoù ñöôïc hieån thò.
 6.2 PHÍM UP ; DOWN
Phím UP duøng ñeå taêng ñòa chæ hieän haønh leân moät vaø ñeå xaùc nhaän döõ lieäu môùi.
Ví duï : Ñeå nhaäp döõ lieäu D3 vaøo oâ nhôù coù ñòa chæ 7000 ta thöïc hieän nhö sau :
Aán caù phím soá, treân maøn hình xuaát hieän 7000
Aán phím ADD, ñòa chæ hieän haønh ñöôïc hieån thò
Aán caùc phím soá, treân maøn hình hieån thò D3
Aán phím UP : Döõ lieäu D3 ñöôïc naïp vaøo oâ nhôù coù ñòa chæ 7000 vaø ñòa chæ hieän haønh ñöôïc taêng leân 1 ñôn vò.
Muoán giaûm ñòa chæ hieän haønh thì nhaán phím DOWN. Phím DOWN khoâng nhaäp döõ lieäu môùi.
6.3 PHÍM PC VAØ GO
Sau khi naïp chöông trình vaøo RAM, ñeå chaïy thöû ta nhaán PC. Treân maøn hình xuaát hieän thoâng baùo “PC = · · · · “ ;
Ta nhaán phím soá ñeå naïp ñòa chæ ñaàu cuûa ñoaïn chöông trình caàn thöû.
Nhaán phím GO : Laäp töùc vi xöû lí thöïc hieän chöông trình ñoù. khi khoâng naïp ñòa chæ môùi maø nhaán GO thì seõ thoaùt chöông trình PC.
6.4 PHÍM REG
Phím REG laø phím chöùc naêng thöïc hieän vieäc xem vaø naïp giaù trò môùi vaøo caùc thanh ghi.
ÖÙng duïng :
Thieát laäp giaù trò cho caùc thanh ghi laøm bieán soá tröôùc khi chaïy moät chöông trình naøo ñoù. Chuù yù : khoâng naïp giaù trò cho caëp thanh ghi HL trong tröôøng hôïp naøy (chöông trình phím PC laøm thay ñoåi HL).
Thieát laäp, xoùa caùc côø tröôùc khi chaïy chöông trình
Löu tröõ keát quaû cuûa chöông trình vaøo caùc thanh ghi, ñeå kieåm tra sau khi chaïy xong chöông trình
Kieåm tra caùc côø sau khi thöïc hieän caùc leänh soá hoïc vaø logic
Vôùi chöông trình Monitor söû duïng phím REG ñeå kieåm tra keát quaû cuûa moät leänh trong thanh ghi, khi duøng phím STEP.
Caùch söû duïng :
Nhaán phím REG : Treân maøn hình hieån thò thanh ghi A vaø noäi dung trong thanh ghi A
VD : 
Nhaán phím UP, DOWN ñeå xem noäi dung cuûa caùc thanh ghi khaùc..
Khi muoán naïp noäi dung môùi vaøo thanh ghi.
VD : naïp vaøo C noäi dung laø A D
Ta thöïc hieän caùc böôùc sau :
+ Nhaán UP, DOWN ñeå treân maøn hình hieån thò thanh ghi vaø noäi dung thanh ghi caàn naïp.
+ Nhaán phím A, D ( phím soá ), treân maøn hình hieån thò A D
+ Nhaán phím UP : töùc thì noäi dung môùi ñöôïc naïp.
Muoán thoaùt chöông trình REG ta nhaán phím REG moät laàn nöõa.
6.5 PHÍM COPY
Khi muoán cheùp moät ñoaïn döõ lieäu töø vuøng naøy qua vuøng khaùc ta nhaán phím COPY. Treân maøn hình hieån thò thoâng baùo naïp ñòa chæ baét ñaàu vuøng goác.
Duøng phím soá ñeå naïp ñòa chæ ñoù.
Nhaán phím ADD xaùc ñònh ñòa chæ ñoù, treân maøn hình xuaát hieän thoâng baùo naïp ñòa chæ cuoái vuøng goác.
Duøng phím soá ñeå naïp ñòa chæ ñoù.
Nhaán phím ADD xaùc ñònh ñòa chæ ñoù, treân maøn hình xuaát hieän thoâng baùo naïp ñòa chæ ñaàu cuûa vuøng ñích.
Duøng phím soá ñeå naïp ñòa chæ ñoù.
Nhaán phím ADD xaùc ñònh ñòa chæ nôùi naïp, chöông trình thöïc hieän vieäc COPY.
Neáu moät trong caùc ñòa chæ treân khoâng ñöôïc naïp maø ta nhaán phím ADD thì töï ñoäng thoaùt khoûi chöông trình COPY.
6.6 PHÍM DEL
Khi muoán xoùa ( cheùp 00H ) moät ñoaïn döõ lieäu ta nhaán phím DEL. Maøn hình thoâng baùo naïp ñòa chæ ñaàu vuøng caàn xoùa.
Duøng phím soá naïp ñòa chæ ñoù.
Nhaán phím ADD xaùc ñònh. Maøn hình xuaát hieän thoâng baùo naïp ñòa chæ keát thuùc.
Duøng phím soá naïp ñòa chæ ñoù.
Nhaán phím ADD xaùc ñònh. Chöông trình thöïc hieän chöùc naêng DEL roài thoaùt khoûi chöông trình phím DEL.
Neáu moät trong caùc ñòa chæ treân khoâng ñöôïc naïp maø nhaán ADD thì seõ thoaùt khoûi chöùc naêng DEL.
6.7 PHÍM SRCH
Khi muoán tìm kieám moät byte döõ lieäu naøo ñoù ta nhaán phím SRCH. Maøn hình hieån thò :
Duøng phím soá naïp giaù trò byte caàn tìm.
Nhaán phím UP chöông trình seõ tìm kieám töø ñòa chæ hieän haønh tôùi khi naøo tìm thaáy byte coù giaù trò ñaõ naïp döøng vaø hieån thò. Neáu muoán tìm tieáp ta nhaán phím SRCH thì chöông trình seõ tìm tieáp (khoâng caàn naïp giaù trò môùi).
6.8 PHÍM STEP
Phím STEP coù chöùc naêng gôõ roái chöông trình khi thöïc hieän coù keát quaû sai maø chöa bieát ñöôïc leänh sai.
Söû duïng STEP coù theå thöïc hieän vaø kieåm tra keát quaû töøng leänh trong 1 chöông trình.
Caùch söû duïng :
Ñaàu tieân, ta phaûi dôøi con troû tôùi ñòa chæ caàn thöïc hieän. Sau ñoù aán phím STEP chöông trình taïi ñoù seõ thöïc hieän töøng leänh.
6.9 PHÍM INS
Phím INS söû duïng ñeå cheøn theâm moät byte hoaëc moät soá byte, coù theå söûa ñòa chæ.
Caùch söû duïng :
Di chuyeån con troû tôùi ñòa chæ caàn cheøn.
Aán phím Ins. Maøn hình hieån thò thoâng baùo naïp ñòa chæ cuoái vuøng INS.
Duøng phím soá naïp ñòa chæ cuoái.
Aán phím ADD xaùc ñònh ñòa chæ ñoù
Söû duïng phím soá, phím UP ñeå cheøn döõ lieäu môùi.
Phím DOWN chæ cho pheùp giaûm ñòa chæ xuoáng 1 vaø khoâng luøi lieân tieáp. Noù coù chöùc naêng chænh laïi döõ lieäu vöøa cheøn vaøo.
Neáu muoán söûa ñòa chæ, aán phím ADD. Maøn hình thoâng baùo naïp ñòa chæ ñaàu.
AÁn phím ADD moät laàn nöõa chöùc naêng söûa ñòa chæ ñöôïc thöïc hieän vaø thoaùt chöông trình.
Neáu muoán thoaùt chöông trình khoâng qua chöùc naêng söûa ñòa chæ, aán phím INS moät laàn nöõa.
Chöông 7 :
TOÙM TAÉT 
 KEÁT LUAÄN 
 ÑEÀ NGHÒ
CHÖÔNG 7 : TOÙM TAÉT – KEÁT LUAÄN – ÑEÀ NGHÒ
7.1 TOÙM TAÉT ÑEÀ TAØI
 Ñeà taøi ñöôïc trình baøy thaønh 7 chöông nhöng quan troïng nhaát laø chöông 4, noù trình baøy töø toång quaùt ñeán cuï theå chöông trình Monitor vaø caùc chöông trinh con phuïc vuï chöông trình Monitor. Chöông trình Monitor quaûn lí toaøn boä heä thoáng vaø cho pheùp ngöôøi söû duïng soaïn thaûo vaø thöû nghieäm caùc chöông trình moät caùch tieän nghi nhaát.
 Chöông 5 trình baøy nhöõng thoâng tin vaø phöông phaùp thi coâng hoaøn chænh moät phaàn meàm.
 Chöông 6 laø phaàn höôùng daãn söû duïng thieát bò vöøa thieát keá. Ñaây laø, phaàn quan troïng nhaèm giuùp ngöôøi söû duïng coù theå khai thaùc heát nhöõng chöùc naêng, öu ñieåm cuûa heä thoáng.
7.2 KEÁT LUAÄN
 Qua 7 tuaàn laøm vieäc khoâng meät moûi, khoâng nhöõng bieát toång hôïp vaø öùng duïng nhöõng kieán thöùc ñaõ hoïc vaøo thöïc teá maø coøn ruùt ra döôïc nhöõng keát luaän sau: 
 \ Coù theå duøng vi xöû lí 8085 ñeå thieát keá thieát bò thöïc taäp vi xöû lí, khaû naêng laøm vieäc cuûa thieát bò phuï thuoäc chuû yeáu vaøo phaàn meàm.
 \ Phaàn meàm vaø phaàn cöùng coù moái lieân quan chaët cheõ, chuùng coù theå thay theá cho nhau ôû moät soá chöùc naêng naøo ñoù . 
 \ Ñoái vôùi chöùc naêng COPY chöông trình phaûi nhaän bieát ñöôïc hai vuøng goác vaø ñích coù truøng nhau khoâng vaø truøng nhau nhö theá naøo ñeå khi thöïc hieän COPY khoâng bò maát döõ lieäu .
 \ Ñeå tieän cho vieäc chaïy thöû chöông trình vaø kieåm tra keát quaû sau khi chaïy thöû chöông trình thì chöùc naêng REG phaûi naïp vaø xem ñöôïc noäi dung thanh ghi.
 \ Neáu chöông trình phím PC söû duïng leänh naïp ñiaï chæ trong caëp thanh ghi HL vaøo caëp thanh ghi PC thì thoâng soá trong caëp thanh ghi HL ñaõ naïp tröôùc ñoù ôû chöùc naêng REG seõ voâ nghóa.
 \ Chöùc naêng STEP, chöông trình ngöôøi söû duïng vaø chöông trình Monitor chaïy chung vôùi nhau, phaûi thieát keá sao cho chöông trinh phím STEP khoâng söû duïng stackpoiter, ñeå ghaønh stackpoiter cho chöông trình ngöôøi söû duïng. Phaûi baûo toaøn caùc thoâng soá cuûa chöông trình ngöôøi sau moãi böôùc ñeå thöïc hieän böôùc keá tieáp, nhaát laø ñoái vôùi caùc leänh nhaûy, goïi, trôû veà coù ñieàu kieän. Ñoái vôùi caùc leänh goïi vaø trôû veà ta phaûi taïo ra moät con troû MNT- STACKPOITER, laø vuøng nhôù theo kieåu LIFO, gioáng stackpoiter, ñeå löu giöõ ñiaï chæ khi gaëp leänh nhaûy vaø laáy laïi ñiaï chæ ñoù khi gaëp leänh trôû veà, ñaëc bieät khi caùc chöông trình con loàng vaøo nhau. Ñoái vôùi caùc leänh nhaûy, leänh goïi, leänh trôû veà ta phaûi khoáng cheá sao cho chöông trình chay töøng böôùc. 
 \ Chöùc naêng INS raát caàn thieát khi chænh söûa chöông trình nhö cheøn theâm caùc leänh thieáu, phaûi söûa ñöôïc diaï chæ cuûa caùc leänh nhaûy, leänh goïi, leänh löu tröõ neáu ñiaï chæ cuûa chuùng chæ ñeán vuøng INS taùc ñoäng.
7.3 ÑEÀ NGHÒ
 Maëc duø ñaõ coá gaéng heát söùc mình, yeáu toá thôøi gian ñaõ baét buoäc ngöôøi thöïc hieän phaûi döøng coâng vieäc nghieân cöùu. Thöïc söï, ngöôøi thöïc hieän chöa haøi loøng laém vôùi nhöõng gì giaûi quyeát ñöôïc, hy voïng sau naøy coù thôøi gian nghieân cöùu theâm vaø nhöõng khoaù sau seõ coá gaéng hoaøn thieän ñeà taøi, ñeå noù trôû thaønh moät saûn phaåm hoaøn chænh.
 Sau ñaây laø moät vaøi ñeà nghò tham khaûo daønh cho nhöõng ai coù yù ñònh phaùt trieån ñeà taøi:
 \ Xaây döïng theâm chöùc naêng chaïy töøng ñoaïn. Caùc ñoaïn ñoù ñöôïc xaùc ñònh baèng caùc ñieåm döøng ñöôïc ngöôøi söû duïng ñaët.
 \ Xaây döïng theâm chöùc naêng söûa ñiaï chæ ñeå söû duïng sau khi thöïc hieän chöùc naêng COPY.
 \ Xaây chöông trình cho pheùp ñoå döõ lieäu töø maùy tính vaøo thieát bò ñeå chaïy thöû.
 \ Xaây döïng caùc baøi thöïc haønh treân thieát bò vöøa thieát keá.
 \ Xaây döïng nhöõng chöông trình tieän ích, thieát keá caùc modul phaàn cöùng ñeå gheùp noái vôùi thieát bò phuïc vuï cho caùc baøi thöïc haønh.
PHAÀN C
TAØI LIEÄU THAM KHAÛO 
PHUÏ LUÏC
TAØI LIEÄU THAM KHAÛO.
---W---
CHAÂU KIM LANG
“Phöông phaùp nghieân cöùu khoa hoïc”
Ban Sö Phaïm Kó Thuaät tröôøng Ñaïi hoïc Sö Phaïm Kó Thuaät Tp. HCM, 1989.
TRAÀN VAÊN TROÏNG
“Kó thuaät vi xöû lí 8085A”
Ñaïi hoïc Sö Phaïm Kó Thuaät Tp. HCM, 1995.
PAUL BATES, PENG
“Truyeàn döõ lieäu söû duïng vi maïch LSI” TOÁNG VAÊN ON ( dòch ). 
Ñaïi hoïc Baùch Khoa Tp. HCM, 1994. Trang 42 – 76.
RONALD J. TOCCI
“Digital Systems : Principles and Application”
 4/e Prentice Hall International Inc, 1998
PHUÏ LUÏC
Phaàn naøy trình baøy nhöõng chöông trình con ñôn giaûn, khoâng trình baøy giaûi thuaät. Caùc chöông trình naøy ñöôïc vieát töø ban ñaàu khi coøn chöa coù kinh nghieäm, vì theá chuùng coøn mang tính “thuû coâng’. Caùc chöông trình ñöôïc saép xeáp theo maãu töï A, B, C… ñeå tieän vieäc tra cöùu.
DAUCHAM
DAUCHAM :	Ñaây laø chöông trình con coù nhieäm vuï xuaát caùc ñieåm saùng lan daàn.
Input :	Khoâng 
Output :	Hieån thò
Coù goïi Delay 0.1
Chöông trình khoâng thay ñoåi noäi dung thanh ghi
DAUCHAM
PUSH	PSW	MVI	A, 86H
MVI	A, 84H	STA	AddCT79
STA	AddCT79	MVI	A, 80H
MVI	A, 80H	STA	AddDT79
STA	AddDT79	MVI	A, 02H
MVI	A, 02H	CALL	DELAY 0.1
CALL	DELAY 0.1	MVI	A, 87H
MVI	A, 85H	STA	AddCT79
STA	AddCT79	MVI	A, 80H
MVI	A, 80H	STA	AddDT79
STA	AddDT79	POP	PSW
MVI	A, 02H	RET
CALL	DELAY 0.1
DELAY 0.1
DELAY 0.1 :	Ñaây laø chöông trình con coù taùc vuï trì hoaõn; 0.1 giaây ( 0….25,5 giaây ).
Input :	Naïp thôøi gian caàn trì hoaõn vaøo thanh ghi A.
Output :	Trì hoaõn chöông trình trong thôøi gian ñaõ ñònh.
DELAY 0.1
	PUSH	D	SUB	A
	LXI	D, 0001H	ORA	D
	PUSH	PSW	ORA	E
	INR	A	MOV	A, B
	JMP	*4	JNZ	3*
*1:	PUSH	D	POP	B
	PUSH	B	POP	D
*3 :	DCX	D	*4 :	DCR	A	
	LXI	B, 5433H	JNZ	*1
*2 :	DCR	C	POP	PSW
	JNZ	*2	POP	D
	DCR	B	RET
	JNZ	*2	
	MOV	B, A	
	DELAY 0.1
	PUSH	D
	DE	( 0001H )
	PUSH	PSW
	A	( A) + 1
	A	( A) – 1
A = 0
	POP	PSW	PUSH	D
	POP	D	PUSH	B
RET
	DE	( DE ) –1
	BC	( 5433H )
1
c
a
b
	C	( C) – 1
1
a
b
c
C = 0
		S
	Ñ
	B	( B ) –1
B = 0
	S
	Ñ
	B	( A)
	A	( A ) – ( A)
	A	( A) OR ( D)
	A	( A) OR ( E )
	A	B
A = 0
	POP	B
	POP	D
DEMP
DEMP :	Ñaây laø chöông trình con coù nhieäm vuï laáy noäi dung trong boán oâ maõ phím.
Input :	Laáy noäi dung trong caùc oâ maõ phím.
	( Addqp+0, Addqp+1, Addqp+2, Addqp+3 )
Output :	Keát quaû ñöôïc löu tröõ vaøo caëp thanh ghi DE
Coù goïi ORMP
Ngoaøi DE chöông trình khoâng thay ñoåi noäi dung caùc thanh ghi.
DEMP
PUSH	PSW	LDA	AddQP+1
PUSH	B	ORA	B
LDA	AddQP+0	MOV	D, A
RLC	CALL	ORMP
RLC	MOV	E, A
RLC	POP	B
RLC	POP	PSW
MOV	B, A	RET
DPFIND
DPFIND :	Ñaây laø chöông trình con coù nhieäm vuï hieån thò “FIND”
Input :	Khoâng
Output :	Hieån thò
Khoâng thay ñoåi noäi dung caùc thanh ghi
Coù goïi DELAY 0.1
DPFIND
PUSH	PSW	MVI	A, 83H
MVI	A, C3	STA	AddCT79
STA	AddCT79	MVI	A, 5EH
MVI	A,01H	STA	AddDT79
CALL	DELAY 0.1	MVI	A, 86H
MVI	A, 80H	STA	AddCT79
STA	AddCT79	MVI	A, 80H
MVI	A, 71	STA	AddDT79
STA	AddDT79	MVI	A, 02H
MVI	A, 81H	CALL	DELAY 0.1
STA	AddCT79	MVI	A, 87H
MVI	A, 10H	STA	AddCT79
STA	AddDT79	MVI	A, 80H
MVI	A, 82H	STA	AddDT79
STA	AddCT79	POP	PSW
MVI	A, 54H	RET
STA	ADDDT79
DPHL
DPHL :	Ñaây laø chöông trình con coù nhieäm vuï hieån thò noäi dung thanh ghi HL ra led 7 ñoaïn.
Input :	Noäi dung thanh ghi HL.
Output :	Hieån thò
Khoâng thay ñoåi noäi dung caùc thanh ghi
Coù goïi CODE2
DPHL
PUSH	PSW	CALL	CODE2
PUSH	D	MVI	A, 82H
MOV	A, H	STA	AddCT79
CALL	CODE2	MOV	A, D
MVI	A, 80H	STA	AddDT79
STA	AddCT79	MVI	A, 83H
MOV	A, D	STA	AddCT79
STA	AddDT79	MOV	A,E
MVI	A, 81H	STA	AddDT79
STA	AddCT79	POP	D
MOV	A, E	POP	PSW
STA	AddDT79	RET
MOV	A,L
DPHLM
DPHLM :	Ñaây laø chöông trình con coù nhieäm vuï hieån thò ñòa chæ vaø döõ lieäu hieän taïi ñòa chæ ñoù.
Input :	HL chöùa ñòa chæ caàn hieån thò.
Ouput :	Hieån thò
Khoâng thay ñoåi noäi dung caùc thanh ghi
Coù goïi DPHL vaø DPM.
DPHLM
PUSH	PSW	STA	AddCT79
CALL	DPHL	MVI	A, 00H
MVI	A, 84H	STA	AddDT79
STA	AddCT79	CALL	DPM
MVI	A, 00H	POP	PSW
STA	AddDT79	RET
MVI	A, 85H
DPM
DPM :	Laø chöông trình con hieån thò thoâng baùo naïp ñòa chæ vaøo thanh ghi PC.
Input :	Khoâng
Output :	Hieån thò
Khoâng aûnh höôûng caùc thanh ghi
Coù goïi DELAY 0.1
DPM
PUSH	PSW	MVI	A, 87H
PUSH	B	STA	AddCT79
PUSH	D	MOV	A, E
MOV	A, M	STA	AddDT79
CALL	CODE2	STA	AddHT+7
MVI	A, 86H	POP	D
STA	AddCT79	POP	B
MOV	A, D	POP	PSW
STA	AddDT79	RET
STA	AddHT+6
DP PC
DP PC :	Laø chöông trình con hieån thò thoâng baùo naïp ñòa chæ vaøo thanh ghi PC.
Input :	Khoâng
Output :	Hieån thò
Khoâng aûnh höôûng tôùi caùc thanh ghi
Coù goïi DELAY 0.1
DP PC
PUSH	PSW	MVI	A, 39H
MVI	A, C3H	STA	AddDT79
STA	AddCT79	MVI	A, 82H
MVI	A, 01H	STA	AddCT79
CALL	DELAY 0.1	MVI	A, 48H
MVI	A, 80H	STA	AddDT79
STA	AddCT79	MVI	A, 83H
MVI	A,63H	STA	AddCT79
STA	AddDT79	MVI	A, 00H
MVI	A, 81H	STA	AddDT79
STA	AddCT79	POP	PSW
	RET
DP REG
DP REG :	Ñaây laø chöông trình con coù nhieäm vuï hieån thò noäi dung thanh ghi A.
Input :	Naïp thanh ghi caàn hieån thò vaøo A.
Output :	Hieån thò
Coù goïi CODE2
DP REG
PUSH	PSW	MVI	A, 87H
PUSH	B	STA	AddCT79
PUSH	D	MOV	A, E
CALL	CODE2	STA	AddDT79
MVI	A, 86H	STA	AddHT+7
STA	AddCT79	POP	D
MOV	A, D	POP	B
STA	AddDT79	POP	PSW
STA	AddHT+6	RET
CODE 1
CODE 1 :	Laø chöông trình con ñoåi caùc soá Hexa töø 00H ® 0FH ra moät kí töï 7 ñoaïn baèng caùch tra baûng maõ.
Input :	Naïp maõ caàn ñoåi vaøo thanh ghi A
Output :	Keát quaû ñöôïc ghi vaøo thanh ghi A.
Khoâng thay ñoåi noäi dung caùc thanh ghi ngoaøi thanh ghi A
	 CODE 1
	PUSH	H
	MOV	L, A
	MVI	H, 	; naïp ñòa chæ cao baûng maõ
	MOV	A, M
	POP	H
	RET
CODE 2
CODE 2: 	Ñaây laø chöông trình con ñoåi maõ hai kí töï Hexa ra hai kí töï led 7 ñoaïn.
Input : 	Naïp maõ caàn chuyeån ñoåi vaøo A.
Output :	Kyù töï hieån thò cho 4 bit cao ñöôïc löu vaøo thanh ghi D
	Kyù töï hieån thò cho 4 bit thaáp löu vaøo thanh ghi E
Coù goïi CODE 1
CODE 2
	PUSH	PSW
	PUSH	B
	MOV	B, A
	RRC
	RRC
	RRC
	RRC
	ANI	0FH
	CALL	CODE 1
	MOV	D, A
	MOV	A, B
	ANI	0FH
	CALL	CODE 1
	MOV	E, A
	POP	B
	POP	PSW
	RET
HELLO
HELLO :	Laø chöông trình con hieån thò chöõ “HELLO”, sau ñoù, hieån thò con troû.
Input :	Khoâng
Output :	Hieån thò
Chöông trình khoâng thay ñoåi noäi dung caùc thanh ghi
HELLO
PUSH	B	MVI	A, 02H
PUSH	PSW	CALL	DELAY 0.1
MVI	B, 00H	MVI	A, 3F
MVI	A, C3H	STA	AddDT79
STA	AddCT79	MVI	A, 02H
MVI	A, 01H	CALL	DELAY 0.1
CALL	DELAY 0.1	MVI	A, 00H
MVI	A,98H	STA	AddDT79
STA	AddCT79	INR	B
MVI	A, 76H	MOV	A, B
STA	AddDT79	CPI	08H
MVI	A, 02H	JZ	*2
CALL	DELAY 0.1	JMP	*1
MVI	A, 79H	MVI	A, 91H
STA	AddDT79	STA	AddCT79
MVI	A. 02H	MVI	A, 3FH
CALL	DELAY 0.1	STA	AddDT79
MVI	A, 38H	STA	AddDT79
STA	AddDT79	STA	AddDT79
MVI	A, 02H	STA	AddDT79
CALL	DELAY 0.1	MVI	A, 80H
MVI	A, 38H	STA	AddCT79
STA	AddDT79	POP	PSW
	POP	B
	RET
KYTUB
KYTUB :	Laø moät chöông trình con hieån thò kí töï vaø daáu baèng.
Input :	Naïp maõ 7 ñoaïn cuûa kí töï caàn hieån thò vaøo thanh ghi B.
Output :	Hieån thò kí töï vaø daáu baèng.
	Khoâng laøm thay ñoåi noäi dung caùc thanh ghi.
KYTUB
	PUSH	PSW
	MVI	A, 80H
	STA	AddCT79
	MOV	A, B
	STA	AddDT79
	MVI	A, 81H
	STA	AddCT79
	MVI	A, 48H
	STA	AddDT79
	MVI	A, 82H
	STA	AddCT79
	MVI	A, 00H
	STA	AddDT79
	MVI	A, 83H
	STA	AddCT79
	MVI	A, 00H
	STA	AddDT79
	MVI	A, 84H
	STA	AddCT79
	MVI	A, 00H
	STA	AddDT79
	MVI	A, 85H
	STA	AddCT79
	MVI	A, 00H
	STA	AddDT79
	POP	PSW
	RET
ORMP
ORMP :	Ñaây laø chöông trình con hôïp hai byte maõ phím thaønh moät byte.
Input :	Laáy döõ lieäu trong Addqp+2 vaø Addqp+3
Output :	Keát quaû ñöôïc tröõ trong thanh ghi A.
	Chöông trình khoâng thay ñoåi caùc thanh ghi khaùc.
ORMP
PUSH	B	MOV	B, A
LDA	Addqp+2	LDA	Addqp+3
RLC	ORA	B
RLC	POP	B
RLC	RET
RLC
XADD
XADD :	Ñaây laø chöông trình con hieån thò “ADD” ra maøn hình.
Input :	Khoâng
Output :	Hieån thò
Chöông trình khoâng thay ñoåi noäi dung caùc thanh ghi.
Coù goïi chöông trình DELAY 0.1
XADD
PUSH	PSW	STA	AddCT79
MVI	A, C3H	MVI	A, 5EH
STA	AddCT79	STA	AddDT79	
MVI	A, 01H	MVI	A, 82H
CALL	DELAY 0.1	STA	AddCT79
MVI	A, 80H	MVI	A, 5EH
STA	AddCT79	STA	AddDT79
MVI	A, 77H	POP	PSW
STA	AddDT79	RET
MVI	A, 81H