Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 20 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
20
Dung lượng
307,47 KB
Nội dung
Chương I Cấu trúc bên vi xử lý: Sơ đồ khối cấu trúc bên vi xử lý Chức khối ALU Các ghi bên vi xử lý Thanh ghi Accumulator Thanh ghi đếm chương trình PC Thanh ghi trạng thái Thanh ghi trỏ ngăn xếp Thanh ghi địa nhớ Thanh ghi lệnh 10 Thanh ghi chứa liệu tạm thời 11 Khối điều khiển logic khối giải mã lệnh 12 Bus liệu bên vi xử lý II Giới thiệu lệnh vi xử lý: Giới thiệu tập lệnh vi xử lý Từ gợi nhớ Các nhóm lệnh vi xử lý Các kiểu truy xuất địa vi xử lý III Tóm tắt – câu hỏi ôn tập – tập: Tóm tắt Câu hỏi ôn tập tập Chương 2: Cấu trúc bên lệnh vi xử lý I CẤU TRÚC BÊN TRONG CỦA VI XỬ LÝ: Sơ đồ khối vi xử lý: Cấu trúc tất vi xử lý có khối giống ALU, ghi, khối điều khiển mạch logic Để nắm rõ nguyên lý làm việc vi xử lý cần phải khảo sát nguyên lý kết hợp khối với để xử lý chương trình Sơ đồ khối vi xử lý trình bày cấu trúc vi xử lý Mỗi vi xử lý khác có cấu trúc khác Ví dụ vi xử lý bit có cấu trúc khác với vi xử lý 16 bit Với vi xử lý có sơ đồ cấu trúc bên cho sổ tay nhà chế tạo Sơ đồ cấu trúc dạng khối tiện lợi dễ trình bày nguyên lý hoạt động vi xử lý Hình 2-1 trình bày sơ đồ khối vi xử lý bit: Hình 2-1 Sơ đồ cấu trúc bên vi xử lý Trong sơ đồ khối vi xử lý bao gồm khối sau: khối ALU, ghi khối control logic Ngoài sơ đồ khối trình bày đường truyền tải tín hiệu từ nơi đến nơi khác bên bên hệ thống Chức khối ALU: ALU khối quan trọng vi xử lý, khối ALU chứa mạch điện logic chuyên xử lý liệu Khối ALU có ngõ vào có tên “IN” ngõ vào liệu cho ALU xử lý ngõ có tên “OUT” ngõ kết liệu sau ALU xử lý xong Lý thuyết & thực hành 10 Chương 2: Cấu trúc bên lệnh vi xử lý Dữ liệu trước vào ALU chứa ghi tạm thời (Temporarily Register) có tên TEMP TEMP Bus liệu bên vi xử lý kết nối với ngõ vào “IN” ALU thông qua ghi tạm thời Việc kết nối cho phép ALU lấy liệu bus liệu bên vi xử lý Thường ALU lấy liệu từ ghi đặc biệt có tên accumulator (A) Ngõ OUT ALU cho phép ALU gởi kết liệu sau xử lý xong lên bus liệu bên vi xử lý, thiết bị kết nối với bus bên nhận liệu Thường ALU gởi liệu sau xử lý xong tới ghi Accumulator Ví dụ ALU cộng liệu liệu chứa ghi Accumulator, sau phép cộng thực ALU kết gởi trở lại ghi Accumulator lưu trữ ghi ALU xử lý liệu hay liệu tùy thuộc vào lệnh hay yêu cầu điều khiển, ví dụ cộng liệu ALU xử lý liệu dùng ngõ vào “IN” để nhập liệu, tăng liệu lên đơn vị hay lấy bù một liệu, ALU xử lý liệu cần ngõ vào “IN” Khối ALU thực phép toán xử lý sau: Add Complement OR Subtract Shift right Increment AND Shift left Exclusive OR Decrement Tóm Tắt: Chức khối ALU làm thay đổi liệu hay chuyên xử lý liệu không lưu trữ liệu Để hiểu rõ thêm chức đặc biệt ALU cần phải khảo sát vi xử lý cụ thể Các ghi bên vi xử lý: Các ghi bên có chức lưu trữ tạm thời liệu xử lý Trong số ghi có vài ghi đặc biệt thực lệnh đặc biệt, ghi lại gọi ghi thông dụng Với sơ đồ khối minh họa trên, ghi thông dụng có tên Reg B, Reg C, Reg D, Reg E Caùc ghi thông dụng hữu dụng cho người lập trình dùng để lưu trữ dự liệu phục vụ cho công việc xử lý liệu điều khiển, viết chương trình sử dụng ghi Số lượng ghi thông dụng thay đổi tùy thuộc vào vi xử lý Số lượng cách sử dụng ghi thông dụng tùy thuộc vào cấu trúc vi xử lý, chúng có vài điểm giống Càng nhiều ghi thông dụng vấn đề lập trình đơn giản Các ghi có vi xử lý ghi A (Accumulator register), ghi đếm chương trình PC (Program Counter register), ghi trỏ ngăn xếp SP ( Stack pointer register), ghi trạng thái F (Status register –Flag register), ghi thông dụng, ghi lệnh IR (Instruction register), ghi địa AR (address register) Lý thuyết & thực hành 11 Chương 2: Cấu trúc bên lệnh vi xử lý Hình 2-2 Sơ đồ minh họa ghi bên Microprocessor tô đậm Thanh ghi Accumulator: Thanh ghi A ghi quan trọng vi xử lý có chức lưu trữ liệu tính toán Hầu hết phép toán số học phép toán logic xảy ALU Accumulator Ví dụ thực lệnh cộng liệu A với liệu B, liệu phải chứa ghi Accumulator giả sử A, sau thực lệnh cộng liệu A (chứa Accumulator) với liệu B (có thể chứa ô nhớ ghi thông dụng), kết lệnh cộng liệu C đặt ghi A thay cho liệu A trước Chú ý: Kết sau thực ALU thường gởi vào ghi Accumulator làm cho liệu trước chứa Accumulator Một chức quan trọng khác ghi Accumulator để truyền liệu từ nhớ từ ghi bên vi xử lý thiết bị điều khiển bên liệu phải chứa ghi Accumulator Thanh ghi Accumulator nhiều chức quan trọng khác thấy rõ qua tập lệnh vi xử lý cụ thể, số bit ghi Accumulator đơn vị đo vi xử lý, vi xử lý bit ghi Accumulator có độ dài bit Thanh ghi đếm chương trình PC: Thanh ghi PC ghi có vai trò quan trọng vi xử lý Chương trình chuổi lệnh nối tiếp nhớ vi xử lý, lệnh yêu cầu vi xử lý thực xác công việc để giải vấn đề Lý thuyết & thực hành 12 Chương 2: Cấu trúc bên lệnh vi xử lý Từng lệnh phải đơn giản xác lệnh phải theo trình tự để chương trình thực Chức ghi PC quản lý lệnh thực lệnh thực Thanh ghi PC vi xử lý có chiều dài từ liệu lớn chiều dài từ liệu vi xử lý Ví dụ vi xử lý bit giao tiếp với 65536 ô nhớ ghi PC phải có chiều dài 16 bit để truy xuất ô nhớ ô nhớ thứ đến ô nhớ thứ 65535 Chú ý nội dung chứa ghi PC nội dung chứa ghi địa Trước vi xử lý thực chương trình ghi PC phải nạp số : “Đó địa ô nhớ chứa lệnh chương trình” Địa lệnh gởi đến IC nhớ thông qua bus địa 16 bit Sau nhớ đặt nội dung ô nhớ lên bus liệu, nội dung mã lệnh, trình gọi đón lệnh từ nhớ Tiếp theo vi xử lý tự động tăng nội dung ghi PC để chuẩn bị đón lệnh kế PC tăng vi xử lý bắt đầu thực lệnh đón trước Lệnh thực có chiều dài byte ghi PC tăng lên nhiêu byte Một vài lệnh chương trình nạp vào ghi PC giá trị mới, lệnh làm thay đổi ghi PC sang giá trị thực lệnh kế xảy địa – lệnh nhảy lệnh gọi chương trình Thanh ghi trạng thái (Status Register): Hình 2-3 Cấu trúc ghi trạng thái Thanh ghi trạng thái gọi ghi cờ (Flag register) dùng để lưu trữ kết số lệnh kiểm tra Việc lưu trữ kết kiểm tra cho phép người lập trình thực việc rẽ nhánh chương trình Khi rẽ nhánh, chương trình bắt đầu vị trí Lý thuyết & thực hành 13 Chương 2: Cấu trúc bên lệnh vi xử lý Trong trường hợp rẽ nhánh có điều kiện chương trình rẽ nhánh thực kết kiểm tra điều kiện Thanh ghi trạng thái lưu trữ kết kiểm tra Các bit thường có ghi trạng thái trình bày hình 2-3 Các lệnh xảy khối ALU thường ảnh hưởng đến ghi trạng thái, ví dụ thực lệnh cộng liệu bit, kết lớn 111111112 bit carry mang giá trị Ngược lại kết phép cộng nhỏ 111111112 bit carry Ví dụ lệnh tăng hay giảm giá trị ghi, kết ghi khác bit Z 0, ngược lại kết bit Z Ví dụ rẽ nhánh kiểm tra bit ghi trạng thái: viết chương trình giảm giá trị ghi có giá trị 10 Nạp vào ghi số nhị phân có giá trị 10 Giảm nội dung ghi Kiểm tra bit Zero ghi trạng thái có hay không ? Nếu không nhảy đến thực tiếp lệnh bước Nếu kết thúc chương trình Ý nghóa bit ghi trạng thái: [a] Carry/borrow (cờ tràn/mượn): bit carry thực phép cộng có giá trị tùy thuộc vào kết phép cộng Kết tràn bit carry =1, ngược lại bit carry = Là bit borrow thực phép trừ: số bị trừ lớn số trừ bit borrow = 0, ngược lại bit borrow =1 Bit carry hay bit borrow bit phân biệt thực lệnh cụ thể [b] Zero: bit Z kết phép toán 0, ngược lại bit Z=1 [c] Negative (cờ số âm): bit N = bit MSB ghi có giá trị 1, ngược lại N=0 [d] Intermediate carry (cờ tràn phụ): giống bit Carry có tác dụng phép cộng hay trừ bit thấp [e] Interrupt Flag (cờ báo ngắt): Bit IF có giá trị người lập trình muốn cho phép ngắt, ngược lại không cho phép ngắt [f] Overflow (cờ tràn số có dấu): bit bit tràn phép toán cộng với bit dấu liệu [g] Parity (cờ chẵn lẻ): bit có giá trị kết phép toán số chẵn, ngược lại số lẻ bit P = Số lượng bit có ghi trạng thái tùy thuộc vào vi xử lý Trong số vi xử lý xóa đặt bit ghi trạng thái Thanh ghi trỏ ngăn xếp (Stack pointer SP): Thanh ghi trỏ ngăn xếp ghi quan trọng vi xử lý, độ dài từ liệu ghi SP ghi PC, chức ghi SP gần giống ghi PC dùng để quản lý nhớ ngăn xếp muốn lưu trữ tạm thời liệu vào ngăn xếp Lý thuyết & thực hành 14 Chương 2: Cấu trúc bên lệnh vi xử lý Giống ghi PC, ghi SP tự động đến ô nhớ kế Trong hầu hết vi xử lý, ghi SP giảm (để đến ô nhớ ngăn xếp) sau thực lệnh cất liệu vào ngăn xếp Do thiết lập giá trị cho ghi SP địa cuối nhớ Thanh ghi SP phải đến ô nhớ người lập trình thiết lập, trình gọi khởi tạo trỏ ngăn xếp Nếu không khởi tạo, trỏ ngăn xếp đến ô nhớ ngẫu nhiên Khi liệu cất vào ngăn xếp ghi đè lên liệu quan trọng khác làm chương trình xử lý sai ghi SP đến vùng nhớ nhớ RAM làm chương trình thực không không lưu trữ liệu cần cất tạm vào nhớ ngăn xếp Tổ chức ngăn xếp vào sau trước (LAST IN FIRST OUT : LIFO) Thanh ghi địa nhớ: Mỗi vi xử lý truy xuất nhớ ghi địa phải tạo địa mà vi xử lý muốn Ngõ ghi địa đặt lên bus địa 16 bit Bus địa dùng để lựa chọn ô nhớ hay lựa chọn port Input/Output Nội dung ghi địa ô nhớ nội dung ghi PC giống vi xử lý truy xuất nhớ để đón lệnh, lệnh giải mã ghi PC tăng lên để chuẩn bị đón lệnh tiếp theo, nội dung ghi địa nhớ không tăng, suốt chu lệnh, nội dung ghi địa phụ thuộc vào lệnh thực hiện, lệnh yêu cầu vi xử lý truy xuất nhớ ghi địa nhớ dùng lần thứ thực lệnh Trong tất vi xử lý, ghi địa nhớ có chiều dài với ghi PC Thanh ghi lệnh (Instruction Register): Thanh ghi lệnh dùng để chứa lệnh vi xử lý thực Một chu kỳ lệnh bao gồm đón lệnh từ nhớ thực lệnh Đầu tiên lệnh đón từ nhớ, sau PC đến lệnh kế nhớ Khi lệnh đón có nghóa liệu ô nhớ copy vào vi xử lý thông qua bus liệu đến ghi lệnh Tiếp theo lệnh thực hiện, thực lệnh giải mã lệnh đọc nội dung ghi lệnh Bộ giải mã giải mã lệnh để báo cho vi xử lý thực xác công việc mà lệnh yêu cầu Chiều dài từ liệu ghi lệnh tùy thuộc vào vi xử lý Thanh ghi lệnh vi xử lý sử dụng người lập trình không sử dụng ghi 10 Thanh ghi chứa liệu tạm thời (Temporary data register): Thanh ghi lưu trữ liệu tạm thời dùng để ALU thực phép toán xử lý liệu Do ALU xử lý liệu chức lưu trữ liệu, liệu đưa đến ngõ vào ALU, xuất ngõ Dữ liệu xuất ngõ ALU định lệnh chương trình yêu cầu ALU thực ALU lấy liệu từ bus liệu bên vi xử lý, xử lý liệu, sau đặt liệu vừa xử lý xong trở lại ghi Accumulator, cần phải có ghi lưu trữ Lý thuyết & thực hành 15 Chương 2: Cấu trúc bên lệnh vi xử lý liệu tạm thời để ALU thực Người lập trình không phép xử dụng ghi tạm thời Số lượng ghi tùy thuộc vào vi xử lý cụ thể 11 Khối điều khiển logic (control logic) khối giải mã lệnh (Instruction decoder): Chức khối giải mã lệnh nhận lệnh từ ghi lệnh sau giải mã để gởi tín hiệu điều khiển đến cho khối điều khiển logic Chức khối điều khiển logic (control logic) nhận lệnh hay tín hiệu điều khiển từ giải mã lệnh, sau thực yêu cầu lệnh Khối điều khiển logic xem vi xử lý nhỏ nằm vi xử lý Các tín hiệu điều khiển khối điều khiển logic tín hiệu điều khiển nhớ, điều khiển thiết bị ngoại vi, đường tín hiệu đọc-ghi tín hiệu điều khiển vi xử lý từ thiết bị bên Các đường tín hiệu trình bày cụ thể sơ đồ vi xử lý cụ thể Ngõ tín hiệu vào quan trọng khối điều khiển logic tín hiệu clock cần thiết cho khối điều khiển logic hoạt động Nếu tín hiệu clock vi xử lý không làm việc Mạch tạo xung clock mạch dao động, tín hiệu đưa đến ngõ vào clock vi xử lý Có nhiều vi xử lý có tích hợp mạch tạo dao động bên trong, cần thêm tụ thạch anh bên 12 Bus liệu bên vi xử lý (Internal data bus): Bus liệu dùng để kết nối ghi bên ALU với nhau, tất liệu di chuyển vi xử lý thông qua bus liệu Các ghi bên nhận liệu từ bus hay đặt liệu lên bus nên bus liệu bus liệu chiều Bus liệu bên kết nối bus bên vi xử lý cần truy xuất liệu từ nhớ bên hay thiết bị IO Bus liệu bên bus liệu chiều vi xử lý nhận liệu từ bên hay gởi liệu Để biết trình tự làm việc bus liệu bên vi xử lý hoạt động, cho vi xử lý thực lệnh cộng số nhị phân chứa ghi ghi: ghi Accumulator (gọi tắt A) =1101 11102 ghi D=1101 10102 Trình tự cộng sau: ♦ Trước thực lệnh cộng, nội dung ghi phải chứa liệu ghi kết nối với thiết bị khác Để thực lệnh cộng nội dung ghi A D ghi lệnh phải mang mã lệnh phép cộng giả sử mã lệnh ADD Được trình bày hình 2-4 Lý thuyết & thực hành 16 Chương 2: Cấu trúc bên lệnh vi xử lý Hình 2-4 ♦ Dữ liệu ghi A đặt lên bus liệu bên vi xử lý, ghi lưu trữ liệu tạm thời kết nối với Bus liệu Thanh ghi tạm thời copy liệu chứa ghi A Chỉ có ghi A ghi tạm thời kết nối với bus thời điểm Xem hình 2-5 ♦ Dữ liệu ghi D kết nối với bus liệu ghi tạm thời lại phép kết nối với bus liệu Thanh ghi tạm thời copy nội dung ghi D Chỉ có ghi D ghi tạm thời kết nối với bus thời điểm Xem hình 2-6 ♦ ALU cộng trực tiếp liệu ngõ vào Ngõ ALU kết nối với ghi A, kết phép cộng nạp vào ghi A Xem hình 2-7 ♦ Sau đặt kết vào ghi A cặp nhật thay đổi bit ghi trạng thái kết nối A khối ALU chấm dứt, ghi tạm thời trở lại trạng thái sẳn sàng cho lệnh Xem hình 2-8 Phép cộng số nhị phân: Lý thuyết & thực hành 1101 1110 + 1101 1010 1011 1000 Carry negative 17 Chương 2: Cấu trúc bên lệnh vi xử lý Hình 2-5 Hình 2-6 Lý thuyết & thực hành 18 Chương 2: Cấu trúc bên lệnh vi xử lý Hình 2-7 Hình 2-8 Lý thuyết & thực hành 19 Chương 2: Cấu trúc bên lệnh vi xử lý Hình 2-9 II CÁC LỆNH CỦA VI XỬ LÝ: Tập lệnh vi xử lý: Lệnh vi xử lý liệu số nhị phân, vi xử lý đọc lệnh từ liệu nhị phân yêu cầu vi xử lý làm công việc đơn giản Mỗi từ liệu tương đương với công việc mà vi xử lý phải làm Hầu hết lệnh vi xử lý lệnh chuyển liệu xử lý liệu Khi nói đến tập lệnh vi xử lý tức nói đến tất lệnh mà vi xử lý hiểu thực Nếu tập lệnh vi xử lý giống với tập lệnh vi xử lý khác cấu trúc vi xử lý giống Độ dài lệnh với độ dài từ liệu vi xử lý, vi xử lý bit độ dài lệnh bit, vi xử lý 16 bit độ dài lệnh 16 bit Trong chu kỳ đón lệnh, mã lệnh gởi đến ghi lệnh, giải mã lệnh, điều khiển logic vi xử lý Chức khối xác định lệnh làm gởi tín hiệu điều khiển đến mạch điện logic khác vi xử lý, tín hiệu logic thực chức mà lệnh yêu cầu Hình 2-10 minh họa chu lệnh: Lý thuyết & thực hành 20 Chương 2: Cấu trúc bên lệnh vi xử lý Đón lệnh từ nhớ Giải mã lệnh Thực lệnh Hình 2-10 Chu lệnh vi xử lý Một lệnh thực cần phải hội đủ yếu tố: Yếu tố thứ lệnh yêu cầu vi xử lý thực công việc Ví dụ yêu cầu vi xử lý thực lệnh cộng: ADD, lệnh dịch chuyển liệu MOV lệnh mà vi xử lý có thực Yếu tố thứ hai lệnh phải cho vi xử lý biết thông tin địa tức vị trí liệu mà vi xử lý phải thực Ví dụ thực lệnh cộng nội dung ghi A B, nội dung ghi A liệu chứa ô nhớ Yếu tố thứ trường hợp ghi A B, ghi A địa ô nhớ Yếu tố thứ gọi mã lệnh : op code (operation code) yếu tố thứ gọi địa Mã lệnh báo cho vi xử lý làm địa cho vi xử lý biết vị trí liệu Sơ đồ hình 2-11 minh họa cho cấu trúc lệnh Op code Address Op code Address Address Hình 2-11 Cấu trúc lệnh bao gồm mã lệnh địa Từ liệu mã lệnh, từ liệu địa Đối với lệnh có từ liệu địa hiểu ngầm Do có nhiều cách cho vi xử lý biết địa liệu gọi kiểu truy xuất nhớ Khi sử dụng vi xử lý cần phải biết kiểu truy xuất Từ gợi nhớ (Mnemonics): Một lệnh vi xử lý số nhị phân Đối với lệnh có byte khó nhớ, lệnh dài 2, 3, nhiều nhớ hết Để giảm bớt phức tạp số nhị phân dùng số Hex để thay thế, lệnh dễ viết dễ đọc Lý thuyết & thực hành 21 Chương 2: Cấu trúc bên lệnh vi xử lý nhiều giúp người sử dụng nhớ hết quan trọng viết chương trình lúc gỡ rối chương trình Để giải vấn đề lệnh viết thành từ gợi nhớ gần với chức ý nghóa lệnh Trong hầu hết từ gợi nhớ lệnh, mã lệnh rút gọn khoảng ký tự Ví dụ lệnh di chuyển liệu có từ gợi nhớ MOV, lệnh trừ SUB Khi lệnh có địa sau địa số Ví dụ lệnh nhảy đến ô nhớ viết sau: JMP FA90H Khi sử từ gợi nhớ giúp người lập trình dễ nhớ tất lệnh vi xử lý, viết chương trình người lập trình dùng từ gợi nhớ để viết chương trình, từ gợi nhớ tạo thành ngôn ngữ gọi Assembly – viết chương trình ngôn ngữ Assembly vi xử lý không hiểu – muốn vi xử lý hiểu thực chương trình phải sử dụng chương trình biên dịch Assembler để chuyển lệnh viết dạng ngôn ngữ Assembly thành lệnh dạng số nhị phân địa dạng nhị phân tương ứng nạp vào nhớ vi xử lý thực Các nhóm lệnh vi xử lý: Đối với hầu hết vi xử lý tập lệnh chia làm nhóm lệnh bản: ♦ Nhóm lệnh truyền liệu: Data transfers ♦ Nhóm lệnh trao đổi, truyền khối liệu, lệnh tìm kiếm: Exchanges, Block transfers, Searches ♦ Nhóm lệnh số học logic: arithmetic and logic ♦ Nhóm lệnh xoay dịch: Rotates and shifts ♦ Nhóm lệnh điều khiển CPU ♦ Nhóm lệnh bit: Bit set, bit reset, and bit test ♦ Nhoùm lệnh nhảy: Jumps ♦ Nhóm lệnh gọi, trở nhóm lệnh bắt đầu: Calls, Return, and Restarts ♦ Nhóm lệnh xuất nhập: Input and Output Các mã gợi nhớ mã nhị phân tất lệnh cho sổ tay nhà chế tạo vi xử lý cụ thể Các kiểu truy xuất địa vi xử lý: Như trình bày phần trên, vi xử lý truy xuất nhớ nhiều cách để lấy liệu Vi xử lý có nhiều cách truy xuất chương trình viết ngắn gọi có lợi cho người lập trình làm giảm thời gian thực chương trình Chú Ý: Danh từ truy xuất nhớ có nghóa tạo địa để truy xuất liệu, vi xử lý truy xuất liệu lấy liệu từ ô nhớ lưu trữ liệu vào ô nhớ Có thể gọi kiểu địa hóa nhớ hay kiếu tạo điạ để truy xuất nhớ Để biết vi xử lý có truy xuất nhớ cần phải khảo sát vi xử lý cụ thể Các kiểu truy xuất cho sổ tay chế tạo Lý thuyết & thực hành 22 Chương 2: Cấu trúc bên lệnh vi xử lý Các kiểu truy xuất địa vi xử lý (được gọi tắt kiểu địa chỉ): ♦ Kiểu địa ngầm định (Implied Addressing Mode) ♦ Kiểu địa tức thời (Immediate Addressing Mode) ♦ Kiểu địa trực tiếp (Direct Addressing Mode) ♦ Kiểu địa gián tiếp dùng ghi (Register Indirect Addressing Mode) ♦ Kiểu địa chỉ số (Indexed Addressing Mode) ♦ Kiểu địa tương đối (Relative Addressing Mode) [a] Kiểu địa ngầm định: Để hiểu kiểu truy xuất phải dùng tập lệnh vi xử lý bit Ví dụ lệnh cộng: ADD reg Lệnh hiểu nội dung ghi A cộng với nội dung ghi Reg kết lưu trữ vào ghi A [b] Kiểu địa tức thời: Một lệnh chia làm phần thứ mã lệnh hay gọi mã công tác, phần thứ địa Đối với kiểu địa tức thời phần thứ liệu địa Ví dụ lệnh nạp liệu tức thời vào ghi A viết sau: MVI A, FEH Trong MVI mã gợi nhớ, FE liệu dạng số Hex Vì ghi A có bit nên liệu tức thời có độ dài bit [c] Kiểu địa trực tiếp: Ví dụ lệnh di chuyển nội dung ô nhớ có địa 8000H vào ghi A: LDA 8000H LDA mã gợi nhớ, địa 8000H viết trực tiếp câu lệnh, với vi xử lý bit có 16 đường địa nên phải dùng số Hex để định ô nhớ Đối với lệnh dùng kiểu địa trực tiếp lệnh có độ dài byte: byte mã lệnh, byte lại địa ô nhớ (đối với vi xử lý bit) [d] Kiểu địa gián tiếp dùng ghi: Để minh họa kiểu địa gián tiếp dùng ghi ta dùng lệnh sau: Ví dụ: MOV A,M Lệnh di chuyển nội dung ô nhớ M có địa chứa cặp ghi Đối với vi xử lý 8085 địa thường chứa cặp ghi HL, địa 16 bit nên phải dùng cặp ghi chứa hết 16 bit địa Chú ý dùng lệnh kiểu người lập trình phải quản lý giá trị cặp ghi [e] Kiểu địa chỉ số: Đối với vài vi xử lý có ghi số (Index register) dùng cho kiểu địa chỉ số Kiểu địa thực cách cộng byte thứ lệnh với nội dung ghi số ID Ví dụ: lệnh cộng nội dung ghi A với nội dung ô nhớ có địa Lý thuyết & thực hành 23 Chương 2: Cấu trúc bên lệnh vi xử lý chứa ghi số ID với byte liệu thứ 2: ADD A, (ID +n) n số có chiều dài bit [f] Kiểu địa tương đối: Kiểu địa gần giống kiểu địa chỉ số ghi ID thay ghi PC Địa ô nhớ cần truy xuất tính cách cộng nội dung chứa ghi PC cộng với byte liệu thứ Ví dụ lệnh JP 05H : nhảy đến tới thực lệnh có địa cách đếm chương trình PC byte III TÓM TẮT - CÂU HỎI ÔN TẬP- BÀI TẬP: Tóm tắt: Một vi xử lý có phần chính: khối ALU, ghi, khối control logic Khối ALU có ngõ vào ngõ Một port nhận liệu từ data bus, ngõ vào lại nhận liệu từ ghi A khối ALU xử lý liệu, chức khối ALU thực phép toán số học, phép toán logic kiểm tra liệu Thanh ghi vi xử lý lưu trữ tạm thời liệu, ghi thông dụng, ghi có chức đặc biệt Tất vi xử lý có ghi ♦ Accumulator ♦ Program counter ♦ Stack pointer ♦ General purpose registers ♦ Memory address register and logic ♦ Instruction register ♦ Temporary register Caùc ghi cần thiết cho vi xử lý làm việc Tuy nhiên người lập trình sử dụng hết tất ghi Thanh ghi Accumulator làm việc với khối ALU, Accumulator ghi quan trọng vi xử lý xử lý liệu Chiều dài từ liệu ghi Accumulator với chiều dài từ liệu vi xử lý Thanh ghi Program counter có chức tạo địa để đón lệnh vi xử lý thực chương trình, vi xử lý đón lệnh xong thực lệnh nội dung PC tăng lên để chuẩn bị đón lệnh Thanh ghi PC phải có chiều dài từ liệu hay số bit có khả truy xuất hết nhớ Một chương trình bắt đầu vị trí nhớ kết thúc vị trí nhớ Tuy nhiên lệnh chương trình phải theo trình tự hợp lý Khi vi xử lý bắt đầu thực chương trình: Lý thuyết & thực hành 24 Chương 2: Cấu trúc bên lệnh vi xử lý ♦ Từng lệnh chương trình thực theo trình tự nối tiếp trừ có lệnh đặc biệt làm thay đổi trình tự ♦ Khi PC đến ô nhớ khối control logic đón lệnh từ ô nhớ ♦ Mỗi lệnh đón, vi xử lý tăng nội dung PC để chuẩn bị cho lệnh kế bắt đầu thực lệnh vừa đón ♦ Thanh ghi địa nhớ đến ô nhớ để truy xuất liệu vi xử lý yêu cầu ♦ Dữ liệu ghi địa nhớ gởi bus địa bên để kết nối với nhớ Thanh ghi địa nhớ phải có đủ số bit để truy xuất hết tất ô nhớ mà vi xử lý 10 Thanh ghi trạng thái lưu trữ lại kết số lệnh, ghi trạng thái thường có bit sau: bit zero, bit negative, bit carry, bit haft carry, bit parity, bit overflow, bit interrupt caùc bit trạng thái dùng để xác định trạng thái số lựa chọn chương trình 11 Thanh ghi SP đến ô nhớ dùng để lưu trữ liệu tạm thời Mỗi ngăn xếp dùng để lưu trữ liệu giá trị SP giảm để chuẩn bị cho việc lưu trữ liệu 12 Thanh ghi lệnh lưu trữ lệnh dạng số nhị phân để lệnh cho khối control logic thực mà lệnh yêu cầu 13 Khi lệnh đón từ nhớ có nghóa thực trình copy liệu ô nhớ chương trình vào ghi lệnh 14 Trong trình thực lệnh khối control logic khối giải mã lệnh đọc lệnh ghi lệnh 15 Thanh ghi tạm thời dùng để lưu trữ liệu cho ALU xử lý 16 Khối giải mã lệnh thực công việc giải mã lệnh để xem lệnh yêu cầu thực công việc gì, sau khối control logic thực công việc 17 Các khối vi xử lý kết nối với thông qua bus liệu bên Quá trình kết nối để trao đổi liệu khối control logic định, định tùy thuộc vào lệnh Bus liệu bus chiều 18 Một lệnh vi xử lý từ dạng số nhị phân, dùng để khối giải mã khối control logic thực công việc định 19 Tập lệnh vi xử lý tất lệnh mà vi xử lý hiểu thực 20 Chiều dài lệnh (số lượng bit lệnh) với chiều dài từ liệu 21 Lệnh vi xử lý giải mã thực lệnh nạp ghi lệnh bên vi xử lý chu kỳ đón lệnh Ở chu lệnh khối giải mã khối control logic thực yêu cầu lệnh 22 Một lệnh vi xử lý bao gồm phần hay thông tin Thông tin thứ để báo cho vi xử lý biết làm công việc Thông tin thứ báo cho vi xử lý địa liệu Thông tin thứ thường gọi mã lệnh hay mã công tác Thông tin thứ gọi Lý thuyết & thực hành 25 Chương 2: Cấu trúc bên lệnh vi xử lý địa hay địa công tác (có nghóa lệnh xảy liệu địa đó) 23 Có nhóm lệnh có nhiều mã lệnh cho nhóm lệnh 24 Lệnh vi xử lý số nhị phân gồm thông tin địa gọi mã máy Để dễ nhớ lệnh mã máy chuyển sang mã gợi nhớ, từ gợi nhớ có ý nghóa gần với chức lệnh Tập hợp từ gợi nhớ gọi ngôn ngữ Assembly Khi viết chương trình Assembly, để máy thực chương trình phải có chương trình dịch lệnh viết Assembly sang mã máy để vi xử lý xử lý, chương trình dịch gọi Assembler Câu hỏi ôn tập tập trắc nghiệm: Sơ đồ khối vi xử lý dùng để A Diễn tả chi tiết cổng logic Flip Flop dùng để thiết kế nên vi xử lý B Diễn tả mạch logic vi xử lý kết nối với thiết bị IO nhớ bên C Dùng để trình bày khối logic có chức xử lý liệu để giải vấn đề D Cả câu Trong câu sau câu chức ALU: A Add B Shift C Complement D Lưu trữ liệu ALU có ngõ vào, ngõ vào kết nối với: A Program Counter B Bus liệu bên C Control logic D Thanh ghi địa nhớ Chức khối ALU: A Thực phép cộng B Đóng vài trò xuất liệu giống ghi Accumulator C Thực phép toán logic số học để xử lý liệu D Tất câu Hầu hết phép toán logic số học vi xử lý thực nội dung ô nhớ nội dung ghi với: A Nội dung ghi Accumulator B Noäi dung ghi Program Counter C Noäi dung ghi địa D Thanh ghi lệnh Một vi xử lý 16 bit truy xuất 220 = 1.048.567 ô nhớ cho biết ghi PC Microprocessor có chiều dài từ liệu bit: A B C 16 D 20 E 22 E 32 Thanh ghi Program counter vi xử lý ghi: A Đặc biệt B Thông dụng Lý thuyết & thực hành 26 Chương 2: Cấu trúc bên lệnh vi xử lý C Memory D Tất câu Khi vi xử lý thực lệnh, ghi PC đến: A Lệnh vừa thực B Lệnh thực C Lệnh D Cả câu sai Hãy thực phép cộng số nhị phân bit Sau cộng xong số này, xác định ảnh hưởng phép cộng đến bit Zero (Z), bit Negative (N), bit Carry (C) 0000 1111 + 1111 0000 0011 1011 + 1100 0101 1110 1111 + 1111 1111 + 0000 0001 1111 0001 + 0000 0001 0111 1111 0111 0100 + 1100 1100 10 Khi tăng nội dung ghi lên lần (mỗi lần tăng 1) làm cho bit Zero trạng thái Set mức logic lần tăng thứ Vậy giá trị ban đầu chứa ghi ? 11 Thanh ghi địa nhớ dùng để đến: A Nội dung nhớ B Vị trí ô nhớ C Vị trí CPU D Vị trí ghi 12 Thanh ghi địa nhớ kết nối với bus liệu bên vi xử lý để nạp giá trị từ: A Thanh ghi Program counter B Các ghi thông dụng C Memory D Cả câu 13 Các ngõ ghi địa dùng để kết nối với A Thanh ghi Accumulator vi xử lý B Bus liệu bên Microprocessor C Bus địa nhớ bên vi xử lý D Với ngõ vào giải mã lệnh Lý thuyết & thực hành 27 Chương 2: Cấu trúc bên lệnh vi xử lý Lý thuyết & thực hành 28 ... hành 18 Chương 2: Cấu trúc bên lệnh vi xử lý Hình 2- 7 Hình 2- 8 Lý thuyết & thực hành 19 Chương 2: Cấu trúc bên lệnh vi xử lý Hình 2- 9 II CÁC LỆNH CỦA VI XỬ LÝ: Tập lệnh vi xử lý: Lệnh vi xử lý.. .Chương 2: Cấu trúc bên lệnh vi xử lý I CẤU TRÚC BÊN TRONG CỦA VI XỬ LÝ: Sơ đồ khối vi xử lý: Cấu trúc tất vi xử lý có khối giống ALU, ghi, khối điều khiển mạch logic Để nắm rõ nguyên lý làm vi? ??c... đến tập lệnh vi xử lý tức nói đến tất lệnh mà vi xử lý hiểu thực Nếu tập lệnh vi xử lý giống với tập lệnh vi xử lý khác cấu trúc vi xử lý giống Độ dài lệnh với độ dài từ liệu vi xử lý, vi xử lý