Thiết kế – Thi công kit vi xử lý 8086

Ngày nay, trên thế giới khoa học kỹ thuật phát triển nhanh chóng, đặc biệt là ngành điện_điện tử. Những tiến bộ này ngày càng được ứng dụng rộng rãi trong công nghiệp cũng như trong đời sống sinh hoạt hằng ngày của con người. Hệ thống vi xử lý hay còn gọi là máy tính điện tử là một trong những ứng dụng đó, nó là thiết bị xử lý thông tin, điều khiển các thiết bị bên ngoài hay các thiết bị công nghiệp một cách tự động.

Trước nhu cầu thực tế, kit vi xử lý là một công cụ dạy và học không những giúp cho sinh viên nghiên cứu học tập, mà còn có thể ứng dụng mô phỏng hoạt động của một máy tính điện tử, đưa những tiến bộ của khoa học kỹ thuật dẫn vào đời sống hiện đại. Trong khả năng và kiến thức đã học, tôi quyết tâm thực hiện đề tài: “THIẾT KẾ – THI CÔNG KIT VI XỬ LÝ 8086” để đáp ứng nhu cầu trên.

Vi xử lý là một hệ thống số dựa trên cơ sở linh kiện chủ yếu là bộ vi xử lý (CPU). Tùy thuộc vào cấu trúc của bộ vi xử lý riêng biệt và phần điều khiển mà ta có thể bao gồm nhiều loại vi mạch. Dưới sự điều khiển bằng chương trình một bộ vi xử lý thực hiện các phép tính số học và logic, đồng thời tạo ra những tín hiệu điều khiển cho bộ nhớ và thiết bị vào ra. Những mệnh lệnh này gọi là chương trình nguồn và được chứa trong bộ nhớ chỉ đọc (ROM), khi mất điện dữ liệu trong bộ nhớ này không bị mất, khi Reset máy chương trình này sẽ thi hành trước tiên khởi tạo cho máy làm việc. Khi làm việc CPU đọc những lệnh đó ra rồi thực hiện chúng. Do đó ta có thể nói bộ vi xử lý là cấu trúc phần cứng được xử lý bằng phần mềm

doc115 trang | Chia sẻ: baoan21 | Lượt xem: 1308 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Thiết kế – Thi công kit vi xử lý 8086, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
c theo các chế độ địa chỉ khác nhau, nhưng phải chứa cùng một loại dữ liệu và không được phép đồng thời là 2 ô nhớ và cũng không được là thanh ghi đoạn. Cập nhật : AF, CF, OF, PF, SF, ZP (AP và PF chỉ liên quan đến 8 bit thấp) v SCAS/SCASB/SCASW – Scan a String Byte or a String Word (Quét chuỗi byte hay chuỗi từ) Cú pháp: SCAS chuỗi đích SCASB SCASW Mô tả: AL – Phần tử chuỗi đích, DI ¬ DI + tùy theo DF, nếu là chuỗi byte AX – Phần tử chuỗi đích, DI ¬ DI + 2 tùy theo DF, nếu là chuỗi từ (Phần tử chuỗi đích là do ES:DI hiện thời chỉ ra) Lệnh SCAS so sánh AL hoặc Ax với từng byte hay từng từ của xâu đích chỉ để tạo các cờ, không lưu kết quả so sánh, các toán hạng không bị thay đổi. Sau đó DI tự động tăng/giảm để chỉ vào phần tử tiếp theo tùy theo cờ hướng. Khi dịch lệnh SCAS Chuỗiđích, chương trình dịch dùng tên Chuỗiđích để xác định xem lúc khai báo thì Chuỗiđích có các phần tử là byte hay từ. Muốn chỉ rõ cho chương trình dịch hợp ngữ rằng ta làm việc với chuỗi byte (chức các byte) hoặc chuỗi từ (chứa các từ), ta cũng có thể dùng lệnh SCASB hoặc SCASW. Các lệnh này còn thường dùng kèm với REPNE/REPNZ để lặp lại việc quét một số lần hoặc quét cho tới khi tìm được mẫu cần tìm. Cập nhật : AF, CF, OF, PF, SF, ZP v SHL – Xem SAL v SHR – Shift (Logically) Right (Dịch phải logic) Cú pháp: SHR Đích, CL Trong đó toán hạng đích có thể tìm được theo các chế độ địa chỉ khác nhau. Lệnh này dùng để dịch phải logic toán hạng. Sau mỗi lần dịch LSB sẽ được đưa qua cờ CF và 0 đưa vào MSB. Thao tác kiểu này được gọi là dịch logic. CL phải được chứa sẵn số lần dịch mong muốn. Trong trường hợp dịch một lần có thể viết trực tiếp: SHR Đích, 1 (từ các bộ vi xử lý thế hệ sau như 80186, 80286 ... thì có thể viết trực tiếp kiểu này với số lần dịch lớn nhất là 32). Ta nhận thấy một lần dịch trái kiểu này tương đương với một lần làm phép chia cho 2 của số không dấu. Vì vậy có thể làm phép chia số không dấu cho một số không dấu tương đương với 2 bằng cách dịch phải logic số bị chia i lần. Tác động vào cờ : Sau lệnh SHR cờ CF mang giá trị cũ của LSB (vì vậy lệnh này còn dùng để tạo cờ CF từ giá trị của LSB làm điều kiện cho các lệnh nhảy có điều kiện), còn cờ OF ¬ 1 nếu sau khi dịch 1 lần mà bit MSB bị thay đổi so với trước khi dịch. Cờ OF sẽ không được xác định sau nhiều lần dịch Cập nhật: SF, ZF, PF, PF chỉ có ý nghĩa khi kết quả là 8 bit. Không xác định: AF. v STC – Set the Carry Flag (Lập cờ nhớ) Mô tả: CF ¬ 1 Không tác động đến các cờ khác v STD – Set the Direction Flag (Lập cờ hướng) Mô tả: DF ¬ 1 Lệnh này định hướng thao tác cho các lệnh làmviệc với chuỗi theo chiều lùi (¬). Các thanh ghi SI và DI liên quan sẽ được tự động giảm khi làm việc xong với một phần tử của chuỗi. Không tác động đến các cờ khác v STI – Set the Interrupt Flag (Lập cờ cho phép ngắt) Mô tả: IF ¬ 1 Lệnh này lập cờ cho phép ngắt để cho phép các yêu cầu ngắt tác động vào chân INTR được CPU nhận biết. Khi IF = 1 nếu có tín hiệu INTR = 1 thì 8086 sẽ bị ngắt, nó sẽ tự động cất thanh ghi cờ và địa chỉ trở về vào ngăn xếp rồi chuyển sang chạy chương trình (con) phục vụ ngắt CTPVN. Tại cuối CTPVN sẽ có lệnh trở về CTC từ CTPVN (IRET) để 8086 lấy lại từ ngăn xếp giá trị của thanh ghi cờ và địa chỉ trở về. Không tác động đến các cờ khác. v STOS/STOSB/STOSW – Store AL/AX in String Byte/Word (cất AL/AX vào 1 phần tử của chuỗi byte/từ) Cú pháp: STOS Chuỗiđích STOSB STOSW Mô tả : AL ® Phần tử hiện thời, DI ¬ DI + tùy theo DF, nếu là chuỗi byte AX ® Phần tử hiện thời, DI ¬ DI + 2 tùy theo DF, nếu là chuỗi từ (Phần tử chuỗi đích là do ES:DI hiện thời chỉ ra) Lệnh STOS cất AL/AX vào 1 byte/từ (1 phần tử của chuỗi đã được định nghĩa trước là chuỗi gồm các byte hoặc từ) do DI chỉ ra trong đoạn ES, sau đó DI tự động tăng/giảm để chỉ vào phần tử tiếp theo tùy theo cờ hướng. Khi dịch lệnh STOS Chuỗiđính, chương trình dịch dùng tên Chuỗiđích để xác định xem lúc khai báo thì Chuỗiđích có các phần tử là byte hay từ. Muốn chỉ rõ cho chương trình dịch hợp ngữ rằng ta làm việc với chuỗi các byte hoặc các từ, ta cũng có thể dùng lệnh STOSB hoặc STOSW. Lệnh này không tác động đến các cờ Trong thí dụ trên chương trình dịch hợp ngữ sẽ dùng tên STR1 để xác định kiểu STR1 là byte hay là từ rồi tự động cất AL hay AX vào chuỗi. v SUB – Substract (Trừ 2 toán hạng) Cú pháp: SUB Đích, Gốc Mô tả : Đích ¬ Đích – Gốc. Trong đó toán hạng đích và gốc có thể tìm được theo các chế độ địa chỉ khác nhau, nhưng phải chứa dữ liệu có cùng độ dài và không được phép đồng thời là 2 ô nhớ và cũng không được thanh ghi đoạn. Cập nhật : AF, CFm OFm PFm SF, ZP (AP và PF chỉ liên quan đế 8 bit thấp) v TEST – And Operands to Update Flag (Và 2 toán hạng để tạo cờ) Cú pháp: TEST Đích, Gốc. Mô tả : Đích ^ Gốc Trong đó toán hạng đích và gốc có thể tìm được theo các chế độ địa chỉ khác nhau, nhưng phải chứa dữ liệu có cùng độ dài và không được phép đồng thời là 2 ô nhớ và cũng không được là thanh ghi đoạn. Sau lệnh này các toán hạng không bị thay đổi và kết quả không được lưu giữ. Các cờ được tạo ra sẽ được dùng làm điều kiện cho cách lệnh nhảy có điều kiện. Lệnh nhà cũng có tác dụng che như một mặt nạ. Xóa: CF, OF Cập nhật: PF, SF, ZP, ZP (PF chỉ liên quan đến 8 bit thấp) Không xác định: AF v WAIT – Wait for TEST or INTR Signal (Chờ tín hiệu từ chân TEST hoặc INTR) Mô tả: Lệnh này đưa vi xử lý vào trạng thái nghỉ nó sẽ ở trạng thái này cho tới khi có tín hiệu ở mức thấp tác động vào chân TEST hoặc khi có tín hiệu ở mức cao tác động vào chân INTR. Nếu có yêu cầu ngắt và yêu cầu này được phép tác động trong khi 8086 đang ở trạng thái nghỉ thì sau khi thực hiện chương trình phục vụ ngắt nó lại quay về trạng thái nghỉ. Lệnh này dùng để đồng bộ hoạt động của 8086 và các bộ phận bên ngoài như bộ đồng xử lý toán học 8087. Lệnh này không tác động đến các cờ. XCHG – Exchange 2 Operands (Tráo nội dung 2 toán hạng) Cú pháp: XCHG Đích, Gốc. Mô tả: Đích « Gốc Trong đó toán hạng đích và gốc có thể tìm được theo các chế độ định địa chỉ nhau, nhưng phải chứa dữ liệu và cùng độ dài và không được phép đồng thời là 2 ô nhớ và cũng không được là thanh ghi đoạn. Sau lệnh XCHG toán hạng này chứa nội dung cũ của toán hạng kia và ngược lại. Lệnh này không tác động đến các cờ. v XLAT – Translate a Byte in AL (Nội dung của AL theo bảng cho trước) Cú pháp: XLAT Mô tả: AL ¬ {AL + BX} Lệnh này dùng để đổi 8 bit hoặc ít hợn từ mã này (gốc) sang mã khác (đích) theo 1 bảng tra cho sẵn. Trước khi thực hiện lệnh đổi, bảng tra phải chứa các mã đích và BX phải chứa địa chỉ lệch của bảng này trong đoạn dữ liệu, còn mã gốc (cần đổi) phải được chứa trong AL. Khi chạy lệnh XLAT thì phép cộng AL + BX được thực hiện để tạo ra địa chỉ ô nhớ trong bảng số mà nội dung của nó sẽ được cất trở lại vào thanh ghi AL. Lệnh này không tác động đến các cờ v XOR – Exclusive Or Corresponding Bits of Two Operands (Hoặc loại trừ 2 toán hạng) Cú pháp: XOR Đích, Gốc. Mô tả : Đích ¬ Đích Å Gốc Trong đó toán hạng đích và gốc có thể tìm được theo các chế độ địa chỉ khác nhau, nhưng phải chứa dữ liệu cùng độ dài và không được phép đồng thời là 2 ô nhớ và cũng không được là thanh ghi đoạn. Từ tính chất của phép hoặc loại trừ, ta thấy nếu toán hạng đích trùng với toán hạng gốc thì kết quả bằng 0, do đó lệnh này còn được dùng để xóa về 0 một thanh ghi nào đó và kèm theo các cờ CF và OF cũng bị xóa. Cập nhật: PF, SF, ZP. PF chỉ có nghĩa khi toán hạng là 8 bit. Không xác định: AF Trên đây nhóm thực hiện đã giới thiệu qua tất cả các lệnh có trong tập lệnh của bộ vi xử lý 8086, mặc dù trong thực tế lập trình nhiều khi ta không sử dụng hết được tất cả các lệnh có trong tập lệnh này. Tập lệnh của các bộ vi xử lý cao cấp hơn trong họ 80x86 ngoài những lệnh này còn bao gồm nhiều lệnh khác nữa. Ta có thể coi đây là một ví dụ về tập lệnh của một bộ vi xử lý dùng để chế tạo ra máy tính với tập lệnh đầy đủ (Complete Instruction Set Computer, CISC) với đặc trưng là có rất nhiều lệnh với các chế độ địa chỉ rất đa dạng, các lệnh có độ dài khác nhau và thời gian để thực hiện cũng khác nhau. Bộ vi xử lý vì thế thường có cấu trúc rất phức tạp. Thế mà trên thực tế, trong các chương trình hợp ngữ để giải quyết các công việc cụ thể, thường có nhiều lệnh được dùng với tần suất lớn nhưng cũng có những lệnh rất ít khi hoặc thậm chí không hề sử dụng. Đây cũng chính là lý do để các nhà sản xuất cho ra đời các bộ vi xử lý có cấu trúc cải tiến theo hướng đơn giản hóa với tập lệnh rất hiệu dụng (có số lệnh ít hơn với chế độ địa chỉ đơn giản, các lệnh có độ dài thống nhất và có thời gian thực hiện như nhau) nhưng lại có khả năng thực hiện lệnh nhanh hơn gấp bội so với loại CISC. Đó là các bộ vi xử lý dùng làm CPU cho các máy tính với tập lệnh rút gọn (Reduced Instruction Set Computer, RISC).

File đính kèm:

  • docLuan van tot nghiep Dien Tu Vien Thong.doc
Giáo án liên quan