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

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

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

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 [...]... A,H D *5 Thieỏt keỏ Thieỏt bũ thửùc taọp vi xửỷ lớ 80 85 JMP *5 : MOV CMP JZ JM *6 : MVI STA LHLD CALL *7 : CALL CPI JZ CPI JZ CPI JM *8 : CPI JZ CPI JZ JMP *9 : MVI STA CALL POP CALL MVI STA POP POP RET *10 : CALL SHLD MOV MOV JMP *1 *6 A,L E *1 *1 A,01H AddTT AddINS + 0 DPHLM KYBRD ADD *9 DOWN *10 10H *11 INS *13 UP *14 *7 A,01H AddTT SDC H DPHLM A,01H AddTT D B DOWN AddINS +0 D,H E,L *12 Trang 51 . 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. 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. 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

Ngày đăng: 23/07/2014, 18:21

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan