Cấp vi lập trình
lượt xem 8
download
Nghiên cứu cách thức: -Vi chương trình điều khiển các thành phần phần cứng -Vi chương trình phiên dịch các chỉ thị của cấp máy quy ước Vi hợp ngữ Nguyên tắc: vi chương trình được viết dưới dạng số nhị phân, mỗi vi lệnh dài 32 bit Ví dụ: Để cộng AC với A và chứa kết quả vào AC
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Cấp vi lập trình
- Caáp vi lập trình Mục tieâu Nghieân cöùu caùch thöùc: - Vi chöông trình ñieàu khieån caùc thaønh phaàn phaàn cöùng - Vi chöông trình phieân dòch caùc chæ thò cuûa caáp maùy quy öôùc
- Caáp vi lập trình 16 thanh ghi (16 bits) Caùch thöùc keát noái Bus A Bus B Bus C Bus A,B daãn döõ lieäu PC Ñöôøng döõ lieäu ñeán ALU 16 bits AC SP IR TIR Bus C naïp noäi dung töø ALU vaøo thanh ghi 0 +1 -1 AMASK MAR naïp ñòa chæ töø SMASK choát B nhôø ñöôøng Bus A,B khoâng tröïc A ñieàu khieån M0 tieáp ñöa döõ lieäu ñeán B ALU maø thoâng qua 2 C Ñeà truyeàn vôùi boä maïch choát D nhôù, ñöa MAR vaø E MBR vaøo vi caáu truùc F Keânh Amux xaùc ñònh döõ lieäu vaøo töø choát A L1 To address bus L0 L(A) L(B) M0 Address out hay MBR nhôø A0 M1 naïp döõ MAR lieäu cho Data in To data bus MBR, M2,3 AMUX ALU thöïc hieän 4 chöùc MBR A0 M1 M2 ñieàu khieån naêng: A+B, A ^ B, A, F0 N M3 ñoïc vaø ghi boä Not A nhôø F vaø F vaø ALU Z 2 traïng thaùi 0 Z 1 F1 nhôù N, Data out S0 Shifter S1
- Caáp vi lập trình Caùch thöùc keát noái Bus A Bus B Bus C Maõ hoùa thoâng tin PC baèng 4 bit vaø duøng Khuoân daïng vi leänh maïch giaûi maõ 416 AC ñeå tieát kieäm 32 bits SP IR TIR 0 - 16 tín hieäu ñieàu khieån naïp cho Bus A töø thanh ghi +1 - 16 tín hieäu ñieàu khieån naïp cho Bus B töø thanh ghi -1 - 16 tín hieäu ñieàu khieån naïp cho thanh ghi töø Bus C AMASK SMASK - 2 tín hieäu ñieà khieån choát A,B A - 2 tín hieäu ñieàu khieån chöùc naêng ALU B C - 2 tín hieäu ñieàu khieån maïch dòch bit D - 4 tín hieäu ñieàu khieån MAR vaø MBR E - 2 tín hieäu ñieàu khieån ñoïc, ghi boä nhôù F - 1 tín hieäu ñieàu khieån Amux L1 L0 L(A) L(B) M0 To address bus Address out MAR Data in To data bus AMUX MBR A0 M1 M2 F0 N M3 ALU F1 Z Data out S0 Shifter S1
- Caáp vi lập trình Caùch thöùc keát noái Maõ hoùa thoâng Khuoân daïng vi leänh tin baèng 4 bits coù 32 bits Khuoân daïng vi leänh ñieàu khieån 3 bus A,B,C, duøng ñeå choïn thanh ghi Theâm COND quaûn lyù Bit theâm vaøo ENC trình töï vi leänh keá tieáp (Enable C) Theâm COND quaûn lyù ñòa chæ vi leänh keá tieáp Duøng RS vaø WR ñieàu khieån choát MBR Bits 1 2 2 2 1 1 1 1 1 4 4 4 8 A C A S M M R W E M O L H B A D R N C B A ADDR U N U R R C COND=1, nhaûy ñeán ADDR neáu N=1 X D COND=2, nhaûy ñeán ADDR neáu Z=1 COND=3, nhaûy ñeá ADDR Ñk caát keát quaû ALU vaøo boä nhôù nhaùp (=1) hoaëc khoâng (=0) RD,WR yeâu caàu ñoïc/ghi döõ lieäu (=1) hoaëc khoâng (=0) Naïp ñòa chæ cho MAR töø maïch choát B (=1) hoaëc khoâng (=0) Naïp döõ lieäu cho MBR töø maïch dòch bit (=1) hoaëc khoâng (=0) Maïch dòch bit phaûi (=01), traùi (=10), khoâng dòch (=00) Choïn chöùc naêng ALU: A+B (=00), A and B (01), A (=10), Not A (11) Ñk choïn döõ lieäu töø choát A (=0) hoaëc MBR (=1) ñeán ALU
- Caáp vi lập trình C decode Sô ñoà khoái ñaày ñuû 16 4 cuûa vi caáu truùc B decode 4 16 A decode 4 16 4 3 Clock 2 Subcycles A B 1 C 16 register Mmux LA LB MPC Increment MAR 256 x 32 Control Store MIR A C A S M M R W EN AMUX MBR M O L H B A D R C C B A ADDR U N U R R N X D 2 ALU Z2 2 Shifter RD WR
- Caáp vi lập trình Vi hợp ngữ Nguyeân taéc: vi chöông trình ñöôïc vieát döôùi daïng soá nhò phaân, moãi vi leänh daøi 32 bit Ví duï: Ñeå coäng AC vôùi A vaø chöùa keát quaû vaøo AC 0 00 00 00 0 0 0 0 1 0001 0001 0010 00000000 B=1 A=10 ADDR=0 ENC=1 C=1 MBR,MAR,RD,WR=0 SH=0 Coù theå vieát: ALU=0 (Pheùp coäng) ENC=1,C=1,B=1,A=10 Cond=0 Amux=0
- Caáp vi lập trình Vi hợp ngữ Bus A Bus B Bus C PC Nguyeân taéc: söû duïng kyù hieäu cuûa AC SP ngoân ngöõ caáp cao moâ taû chæ thò maùy. IR TIR 0 A C A +1 M OA D MM E -1 U N L S B A R WN D AMASK X DU HRRDRCC B A R SMASK Mar:=pc;rd 0 0 2 0 0 1 1 0 0 0 0 0 00 A B Ir:=mbr 1 0 2 0 0 0 0 0 1 3 0 0 00 C Pc:=pc+1 0 0 0 0 0 0 0 0 1 0 6 0 0 D Alu:=tir;if n then goto 15 0 1 2 0 0 0 0 0 0 0 0 4 15 E F L1 L0 L(A) L(B) M0 Address out MAR Data in To data bus AMUX MBR A0 M1 M2 F0 N M3 ALU F1 Z Data out S0 Shifter S1
- Caáp vi lập trình Ví duï moät vi chöông trình thöïc hieän leänh coäng (ADD) 1. Vi leänh: PC-MAR: - ALU noái Bus D vaø Bus S 1. mar:=pc;rd; - Bus D noái PC 2. pc:=pc+1;rd; - Bus S noâi MAR 3. ir:=mbr; ..... 2. Vi leänh: |ADDR|MBR 4. mar:=ir;rd ; {LODD} - Ñoïc MEM ra MBR 5. rd; 6. ac:=mar;goto 0; 3. Vi leänh: (MBR)IR ....... - ALU noái Bus M vaø bus S 7. mar:=ir;rd ; {ADDD} - MBR noái Bus M 8. Rd; - Bus S noái IR 9. ac:=mbr+ac;goto 0; ....... 4. Vi leänh: DECODE 10. mar:=ir;rd; {SUBD} Nhaûy ñeán ñòa chæ maõ leänh (ñaõ giaûi 11. ac:=ac+1;rd; {x-y = } maõ) 12. a:=inv(mbr); {x+1+Not y} 5. Vi leänh: (IA)MAR 13. ac:=ac+a;goto 0; - ALU noái Bus D vaø Bus S - Noái IA (cuûa IR) vaø Bus D - Bus S noâi MAR 6. Vi leänh: |DATA|MBR- Ñoïc döõ lieäu töø MEM ra MBR 7. Vi leänh: MBR+A - Coäng noäi dung treân Bus D vaø Mus M vaø ñöa ra Bus S - MBR noái Bus M - Noái Bus S vôùi AC 8. Vi leänh: PC+1 - Noái Bus D vaø Bus S qua ALU, PC coäng 1 - Noái PC vaø Bus D - Noái Bus S vaø PC
- Caáp vi lập trình Ví duï moät vi chöông trình thöïc hieän leänh coäng (ADD) AC A MO D A M M E UN D L B A N S R W XD R U R R C H D R C B A 1. mar:=pc;rd; 0 00 10 0 0 1 1 0 0 0000 0000 0000 00000000 2. pc:=pc+1;rd; 0 00 00 0 0 0 0 0 1 0000 0110 0000 00000000 3. ir:=mbr; 1 00 10 0 0 0 0 0 1 0011 0000 0000 00000000 ..... ..... 4. mar:=ir;rd; {LODD} 0 00 10 0 0 1 1 0 0 0000 0011 0000 00000000 5. rd; 0 00 00 0 0 0 1 0 0 0000 0000 0000 00000000 6. .......... .... Vi chöông trình vieát döôùi Vi chöông trình vieát döôùi daïng vi leänh nhò daïng ngoân ngöõ töôïng tröng, phaân, moãi vi leänh daøi 32 bits söû duïng kyù hieäu cuûa ngoân ngöõ caáp cao
CÓ THỂ BẠN MUỐN DOWNLOAD
-
1|Phong cách lập trình C++ PHONG CÁCH LẬP TRÌNH C++ Bạn đang học lập trình, vậy
14 p | 1121 | 533
-
Giáo trình Cấu trúc, lập trình, ghép nối và ứng dụng vi điều khiển - Tập 1: Cấu trúc và lập trình vi điều khiển 8051/8052 - TS. Nguyễn Mạnh Giang
258 p | 525 | 185
-
Tổng quan về các ngôn ngữ lập trình
6 p | 633 | 180
-
BÁO CÁO MÔN HỌC NGÔN NGỮ LẬP TRÌNH ASSEMBLY
17 p | 398 | 100
-
Bài giảng Lập trình java cơ bản: Chương 8 - Lê Tân
30 p | 219 | 75
-
Tài liệu lập trình C++ tiếng Việt
200 p | 295 | 74
-
Giáo trình Ngôn ngữ lập trình Assembly (dùng trong các trường THCN): Phần 1
74 p | 254 | 65
-
Phong cách lập trình C++
14 p | 205 | 52
-
LẬP TRÌNH C nâng cao -BÀI 15 - AUTO_PTR, MUTABLE, VOLATILE VÀ ĐÁNH GIÁ TỐC ĐỘ CHƯƠNG TRÌNH
9 p | 220 | 51
-
Lập trình Java trung cấp Roy W. MillerIBM
85 p | 176 | 41
-
GIÁO TRÌNH MÔN HỌC LẬP TRÌNH HƯỚNG ĐỐI TƯƠNG
165 p | 123 | 38
-
Lập trình ADO tren Visual 6.0
38 p | 136 | 36
-
Bài giảng Vi xử lý - Chương 4: Tập lệnh và lập trình điều khiển
43 p | 245 | 35
-
NGÔN NGỮ LẬP TRÌNH
34 p | 105 | 18
-
Bài 6 Thêm hành vi trong ngôn ngữ lập trình Java
5 p | 94 | 13
-
Giáo trình Ngôn ngữ lập trình C++: Phần 1 - TS. Vũ Việt Vũ
116 p | 29 | 13
-
Giáo trình mô đun Lập trình cơ bản (Nghề Quản trị mạng - Trình độ trung cấp) – CĐ Kỹ thuật Công nghệ BR–VT
108 p | 36 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn