Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 115 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
115
Dung lượng
1,09 MB
Nội dung
http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN trang1 Luận văn tốt nghiệp Phần GIỚI THIỆU CHUNG CHƯƠNG DẪN NHẬP _ oOo _ KIL OBO OK S CO M Ngày nay, giới khoa học kỹ thuật phát triển nhanh chóng, đặc biệt ngành điện_điện tử Những tiến ngày ứng dụng rộng rãi công nghiệp đời sống sinh hoạt ngày người Hệ thống vi xử lý hay gọi máy tính điện tử ứng dụng đó, thiết bò xử lý thông tin, điều khiển thiết bò bên hay thiết bò công nghiệp cách tự động Trước nhu cầu thực tế, kit vi xử lý công cụ dạy học giúp cho sinh viên nghiên cứu học tập, mà ứng dụng mô hoạt động máy tính điện tử, đưa tiến khoa học kỹ thuật dẫn vào đời sống đại Trong khả kiến thức học, tâm thực đề tài: “THIẾT KẾ – THI CÔNG KIT VI XỬ LÝ 8086” để đáp ứng nhu cầu Vi xử lý hệ thống số dựa sở linh kiện chủ yếu vi xử lý (CPU) Tùy thuộc vào cấu trúc vi xử lý riêng biệt phần điều khiển mà ta bao gồm nhiều loại vi mạch Dưới điều khiển chương trình vi xử lý thực phép tính số học logic, đồng thời tạo tín hiệu điều khiển cho nhớ thiết bò vào Những mệnh lệnh gọi chương trình nguồn chứa nhớ đọc (ROM), điện liệu nhớ không bò mất, Reset máy chương trình 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 lệnh thực chúng Do ta nói vi xử lý cấu trúc phần cứng xử lý phần mềm Đề tài không giúp cho sinh viên hòan thành luận văn tốt nghiệp mà hình thành sinh viên kinh nghiệm, sáng tạo động Sau đề tài kết hợp với ngành chuyên môn khác để phát triển mô hình hoàn thiện GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGÔ VĂN BÌNH http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN trang2 Luận văn tốt nghiệp CHƯƠNG CƠ SỞ LÝ LUẬN KIL OBO OKS CO M _ oOo _ I XÂY DỰNG ĐỀ CƯƠNG LUẬN VĂN: 1) Xác đònh nhiệm vụ nghiên cứu: Việc chọn đề tài xuất phát từ hai lý do: - Khách quan: công nghiệp có nhu cầu đại hóa thiết bò theo xu hướng cải tiến hóa thiết bò khí sang thiết bò điều khiển tự động ứng dụng kỹ thuật điện tử - Chủ quan: nhu cầu học tập, nghiên cứu, rèn luyện kỹ thực hành, ứng dụng vốn kiến thức khoa học kỹ thuật tiên tiến trực tiếp vào lónh vực sản xuất Nhiệm vụ nghiên cứu nhằm đạt mục đích chủ yếu: + Mục đích trước mắt: thỏa mãn yêu cầu đề theo phương châm “Học đôi với hành” + Mục đích sau cùng: Tích lũy kinh nghiệm, rèn luyện nâng cao lực, tạo lónh để sẵn sàng tham gia lao động sản xuất, hòa nhập vào bước tiến hệ 2) Phân tích tài liệu liên hệ: Trong thời gian nghiên cứu đề tài, người nghiên cứu thống tham khảo số tài liệu có liên quan khoảng thời gian cho phép - Phương pháp luận nghiên cứu khoa học: tìm hiểu cấu trúc hình thức đề tài nghiên cứu khoa học phương pháp tư để giải vấn đề - Kỹ thuật vi xử lý Trần Văn Trọng: Tài liệu cung cấp cấu trúc vi xử lý 8086 - Sơ đồ chân linh kiện bán dẫn Dương Minh Trí: cung cấp sơ đồ chân bảng trạng thái họat động IC linh kiện bán dẫn - Cấu trúc máy tính: Lê Anh Việt: Tài liệu cung cấp kiến thức cấu trúc máy tính, tổ chức CPU, hợp ngữ cách lập trình - The 8086/8088 Family Design Programing and Interfacing – John uffnbeck: tài liệu cung cấp kỹ thuật kết nối vi xử lý phần mềm ứng dụng - Kỹ thuật vi xử lý – Văn Thế Minh: tài liệu cung cấp kỹ thuật giao tiếp với thiết bò ngoại vi GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGÔ VĂN BÌNH http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN trang3 Luận văn tốt nghiệp KẾ HOẠCH NGHIÊN CỨU: 1) Dàn ý nghiên cứu: Phần I: Giới thiệu chung Phần II: Thiết kế phần cứng Kit 8086 Phần III: Xây dựng phần mềm hệ thống Phần IV: Thi công Kit 8086 2) Đối tượng nghiên cứu: Vi xử lý trung tâm điều khiển đối tượng, điều khiển hệ thống máy tự động, dây chuyền sản xuất… Để hệ thống xử lý thi hành chức điều khiển mong muốn, phải lập trình ngôn ngữ tương ứng với hệ vi xử lý Vì đối tượng nghiên cứu thiết kế khối điều khiển tương quan phần cứng phần mềm để vận hành chức họat động thực máy KIL OBO OKS CO M II GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGÔ VĂN BÌNH http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN trang4 Luận văn tốt nghiệp CẤU TRÚC BỘ VI XỬ LÝ 8086 Chương I _ oOo _ KIL OBO OKS CO M I CẤU TẠO: Bên gồm hai khối chính: Khối thực EU (Execution Unit) Khối giap tiếp bus (Bus Interface Unit) Bus đòa Bus liệu Điều khiển bus tạo đòa Các bus hệ thống AH BH CH DH AL BL CL DL CS ES SS DS IP BP DI SI SP Các ghi đoạn Hàng đợi lệnh Bus liệu nội Arithmetic logic unit (ALU) Các cờ Bus Interface Unit (BIU) Excution Unit (EU) Hình 1.1: Sơ đồ khối 8086 GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGÔ VĂN BÌNH http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN trang5 Luận văn tốt nghiệp KIL OBO OKS CO M Bộ vi xử lý thực lệnh theo bước sau: Lấy lệnh từ nhớ Đọc toán hạng (nếu lệnh yêu cầu) Thực lệnh Ghi kết 1) Khối thực hiện: Nhiệm vụ khối thực lệnh thực lệnh chương trình Nó gồm có khối số học – logic (ALU) cho phép thực phép tính số học (+ , - , * , /) phép logic (AND, OR, NOT…) Trong khối thực có số ô nhớ gọi ghi dùng để chứa liệu cho phép tính Mỗi ghi giống ô nhớ ngoại trừ chúng đặt tên thay dùng số để đòa EU (Execution Unit) có ghi công dụng chung chia thành hai nhóm: nhóm ghi liệu nhóm ghi số Các ghi liệu (Data Register): AH BH CH DH AL BL CL DL Các ghi số trỏ (Index & Pointer Register): SP BP SI DI Đoạn mã (Code Segment) Đoạn liệu (Data Segment) Đoạn Stack (Stack Segment) Đoạn thêm (Extra Segment) Các ghi trạng thái điều khiển (Status & Control Register): IP Flag Con trỏ Stack (Stack Pointer) Con trỏ (Base Pointer) Chỉ số nguồn (Source Index) Chỉ số đích (Destnation Index) Các ghi đoạn (Segment Register): CS DS SS ES AX (Accumulator) BX (Base) CX (Count) DX (Data) Con trỏ lệnh (Intruction Pointer) Cờ Các ghi liệu: Có bốn ghi liệu ký hiệu là: AX, BX, CX, DX, người lập trình sử dụng cho thao tác với liệu Mặc dù vi xử lý thao tác với liệu nhớ, lệnh thực nhanh ghi (cần chu kỳ đồng hồ hơn) Đó nguyên nhân vi xử lý đại có xu hướng nhiều ghi GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGÔ VĂN BÌNH http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN trang6 Luận văn tốt nghiệp KIL OBO OKS CO M Các byte cao byte thấp ghi truy cập độc lập: Byte cao ghi AX gọi AH byte thấp gọi AL Tương tự cho byte cao byte thấp ghi BX CX DX BH & BL CH & CL, DH & DL Nhờ điều mà ta có nhiều ghi làm việc với số liệu có kích thước byte dài Trong đa số lệnh ghi liệu chọn tùy ý ghi lại có chức riêng cố đònh số lệnh Thanh ghi tích lũy AX (Accumulator): Là ghi sử dụng nhiều lệnh số học – logic truyền liệu việc sử dụng ghi tạo mã máy ngắn Trong thao tác nhân chia số hạn tham gia phải chứa AH AL, thao tác vào/ra sử dụng ghi AH AL Thanh ghi sở BX (Base): Thanh ghi BX dùng cho tính toán đòa phương pháp đònh đòa gián tiếp Thanh ghi đếm CX (Count): Việc thực chương trình lập thực dễ dàng nhờ ghi CX, CX đóng vai trò đếm vòng lập Một thí dụ khác việc sử dụng ghi CX lệnh REP (Repeat) lệnh điều khiển lớp lệnh chuyên thao tác chuỗi CL sử dụng biến đếm lệnh dòch hay quay bit Thanh ghi liệu DX (Data): DX dùng để đònh đòa gián tiếp thao tác vào ra, sử dụng chứa toán hạn, kết phép nhân chia Thanh ghi trỏ số: Các ghi SP, BP, SI, DI thường trỏ tới ô nhớ (tức chức đòa offset ô nhớ đó) Khác với ghi đoạn, ghi trỏ ngăn xếp sử dụng thao tác số học số thao tác khác Thanh ghi trỏ – ngăn xếp SP (Stack Pointer): Di chuyển từ đòa cao đến đòa thấp, dùng để kết hợp với ghi đoạn Stack SS (Stack Segment) để lưu trữ đòa trở liệu vào ngăn xếp Thanh ghi trỏ sở BP (Base Pointer): Thanh ghi dùng để truy cập liệu ngăn xếp mà không làm thay đổi SP Tuy nhiên, khác với SP ghi BP sử dụng đễ truy cập liệu đoạn khác Thanh ghi số nguồn SI (Source Index): Thanh ghi SI sử dụng để trỏ tới ô nhớ đoạn liệu đònh ghi đoạn liệu DS (Data Segment), truy cập dễ dàng ô nhớ liên tiếp cách tăng SI Thanh ghi số đích DI (Destination Index): GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGÔ VĂN BÌNH http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN trang7 Luận văn tốt nghiệp KIL OBO OKS CO M Thanh ghi DI có chức tương tự ghi SI dùng kết hợp với ghi đoạn thêm ES (Extra Segment) Cả hai DI SI thích hợp thao tác chép, di chuyển so sánh khối liệu có dung lượng đến 64KB Thanh ghi trỏ lệnh IP (Intruction Pointer): 8086 không thực lệnh trực tiếp nhớ mà lệnh lấy hàng đợi lệnh có cấu tạo giống ghi dòch (FIFO: First In First Out: vào trước trước) chứa mã lệnh cung cấp khối BIU Thanh ghi IP đến lệnh chưa nhập vào hàng đợi lệnh dùng kết hợp với ghi CS Thanh ghi IP cập nhật có lệnh thực xong, khác với ghi khác, IP không bò tác động trực tiếp lệnh Thanh ghi cờ (Flag Register): Thanh ghi cờ 8086 có độ dài 16bit (2byte) byte thấp chứa bit trạng thái giống 8085 phản ánh trạng thái vi xử lý, byte cao chứa 1bit trạng thái bit 11 bit điều khiển dùng để điều khiển hoạt động vi xử lý Sau cấu tạo ghi cờ 8086: 15 A P C O D I T S Z Thanh ghi cờ 8086: C: carry flag P: parity flag A: auxiliary flag Z: zero flag S: sign flag T: trap flag I: interrupt enable flag D: direction flag O: overflow flag + Cờ nhớ CF: Cờ nhớ CF thiết lập có số nhớ từ bit MSB Trong phép cộng số thiếu phép trừ (MSB lệnh byte bit lệnh word bit 15) cờ CF bò ảnh hưởng lệnh quay dòch + Cờ chẳn lẻ PF: Sau lệnh số học logic lệnh byte số lượng số ‘1’ byte kết chẳn cờ PF thiết lập ‘1’ ngược lại ‘0’nếu lẻ, lệnh word xét byte thấp + Cờ nhớ phụ AF: Cờ nhớ phụ thiết lập có nhớ (cộng) có thiếu (trừ) từ phân nửa đến phân nửa toán hạn (đối với lệnh byte bit lệnh word bit 7) cờ AF sử dụng thao tác với số BCD GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGÔ VĂN BÌNH http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN trang8 Luận văn tốt nghiệp KIL OBO OKS CO M + Cờ zero ZF: Cờ zero thiết lập kết + Cờ dấu SF: Cờ dấu ‘1’ bit MSB kết ‘1’ tức số âm, lệnh byte MSB bit lệnh word bit 15 + Cờ bẫy TF: Tạo khả thực chương trình theo bước, TF ‘1’ 8086 phát sinh ngắt loại (ngắt cứng) Chương trình DEBUG sử dụng thi hành lệnh T (trace) để chạy bước lệnh Đầu tiên DEBUG thiết lập cờ TF chuyển điều khiển cho lệnh Sau lệnh thi hành vi xử lý phát sinh ngắt TF lập DEBUG sử dụng phục vụ ngắt để lấy quyền điều khiển từ vi xử lý + Cờ ngắt IF: Cờ ngắt sử dụng để điều khiển ngắt phần cứng bên ngoài, cờ thiết lập ngắt phần cứng ngắt 8086 Khi xóa IF, ngắt bên không tác dụng (bò che) Thực ngắt cứng không che NMI (Non Maskable Interrupt) Trước vi xử lý trao quyền điều khiển cho phục ngắt xóa IF TF, phục ngắt không bò ngắt Tất nhiên phục vụ ngắt đổi cờ phép ngắt thi hành + Cờ tràn OF: Cờ tràn ‘1’ có tượng tràn ngược lại ‘0’ Hiện tượng tràn cho thấy thật phạm vi biểu diễn số máy tính có giới hạn Phạm vi biểu diễn số có dấu word từ –32768 đến +32767 byte từ –126 đến +127 Đối với số không dấu từ đến 65535 cho word từ đến 255 cho byte Nếu kết phép tính vượt phạm vi tượng tràn xảy kết nhận bò cắt bớt kết + Cờ điều khiển DF: Là ba cờ điều khiển dùng điều khiển thao tác vi xử lý công dụng DF dòch hướng cho thao tác chuỗi, thao tác thực hai ghi số SI & DI, nội dung hai ghi tự động tăng lên DF = giảm xuống DF =1 2) Khối giao tiếp (BIU): Khối giao tiếp làm đơn giản việc liên lạc EU nhớ vi mạch vào Nó có nhiệm vụ gởi đòa chỉ, số liệu tín hiệu điều khiển vào bus, BIU & EU liên hệ với bus nội bộ, EU thi hành lệnh, BIU nạp byte mã lệnh vào đặt chúng vào hàng đợi lệnh, mục đích việc làm tăng tốc độ vi xử lý Nếu EU cần liên lạc với nhớ hay thiết bò ngoại vi, BIU treo lệnh nhận trước thực thực thao GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGÔ VĂN BÌNH http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN trang9 Luận văn tốt nghiệp tác cần thiết BIU cấu tạo gồm ghi đoạn trỏ lệnh dùng để chứa đòa ô nhớ KIL OBO OKS CO M a) Các ghi đoạn: Được dùng để lưu trữ đòa lệnh liệu nhớ, vi xử lý dựa giá trò để truy cập nhớ Bộ nhớ tập hợp byte ô nhớ, byte có đòa xác đònh 8086 gán cho ô nhớ đòa vật lý 20 bit Như vậy, đònh đòa đến 220 byte (tương đương 1MB) ô nhớ, byte nhớ có đòa sau: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 0000 0000 0000 0000 0010 0000 0000 0000 0000 0011 0000 0000 0000 0000 0100 Để đơn giản, đòa thường biểu diễn số thập lục phân sau: 00000H 00001H 00002H ………… H tiếp tục giá trò lớn FFFFFH Do đòa lớn (20 bit) chứa ghi 8086 (16 bit) nên 8086 chia nhớ thành đoạn nhớ (Memory Segment) Một đoạn nhớ khối gồm 216 (64K) ô nhớ liên tiếp nhau, đoạn xác đònh đòa đoạn đòa 0, đòa đoạn số 16 bit nên đòa đoạn lớn FFFF Bên đoạn số ô nhớ xác đònh đòa tương đối (offset), số byte tính từ đầu đoạn, với đoạn 64K offset số 16 bit, byte đoạn có offset byte cuối FFFF Một ô nhớ xác đònh đòa đoạn:đòa tương đối đoạn (segment:offset) gọi đòa logic Thí dụ: ô nhớ A4FB:4872 có đòa đoạn A4FB đòa offset 4872 Để tìm đòa vật lý ô nhớ trước tiên ta dòch đòa đoạn bên trái bit sau cộng với đòa offset, đòa vật lý ô nhớ A4FB:4872 tính sau: A4FB0 4872 A9822 b) Sắp xếp đoạn: Trong nhớ đoạn đòa 0000:0000 = 00000 kết thúc 0000:FFFF = 0FFFF, đoạn đòa 0001:0000 = 00010 kết thúc đòa GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGÔ VĂN BÌNH http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN trang10 Luận văn tốt nghiệp KIL OBO OKS CO M 0001:FFFF = 1000F Như vậy, có nhiều chồng đoạn Các đoạn đòa cách 16byte đòa đầu đoạn kết thúc số 16byte gọi khúc (Paragraph), đòa chia hết cho 16 (các đòa kết thúc 0) biên giới khúc (Paragraph Boundary) c) Các đoạn chương trình: Mỗi đoạn chương trình ngôn ngữ máy bao gồm lệnh liệu, vùng đặc biệt RAM gọi ngăn xếp (stack) Mã lệnh, liệu ngăn xếp chương trình nạp vào đoạn nhớ khác đoạn mã (code segment), đoạn liệu (data segment), đoạn ngăn xếp (stack segment) Để theo dõi đoạn khác chương trình 8086 cung cấp ghi đoạn để chứa đòa đoạn, ghi CS, DS, SS lần lược chứa đòa đoạn mã, đoạn liệu, đoạn ngăn xếp Nếu chương trình muốn truy cập đến liệu thứ hai sử dụng ghi đoạn thêm ES (extra segment) Một chương trình cần chiếm hết đoạn 64KB, đặc điểm chồng đoạn cho phép đoạn chương trình nhỏ 64KB đặt gần lại với Tại thời điểm, có ô nhớ đònh đòa ghi đoạn truy cập, nghóa có đoạn nhớ tác động Tuy nhiên nội dung ghi đoạn thay đổi chương trình để truy cập đến đoạn khác d) Hàng đợi lệnh: Như ta biết, để tăng tốc độ vi xử lý, khối BIU tiếp nhận lệnh đưa vào hàng đợi lệnh (Queue) khối EU thi hành lệnh Hàng đợi lệnh nhận byte mã lệnh, lệnh 8086 có độ dài từ đến byte, lệnh chưa vào đầy đủ hàng đợi lệnh khối EU chờ lệnh nạp hết vào hàng đợi lệnh II CHỨC NĂNG CỦA 8086: 1) Sơ đồ chân 8086: 8086 vi xử lý 16 bit gồm 16 đường liệu 20 đường đòa chỉ, đường liệu từ D0 đến D15 đường đòa từ A0 đến A15 hoạt động theo phương pháp đa lộ thời gian 8086 làm việc hai chế độ: Chế dộ Minimum Chế độ Maximum Trong chế độ minimum, 8086 điều khiển thiết bò tín hiệu điều khiển nó, chế độ hỗ trợ xử lý toán học 8087 Trong chế độ maximum cần thiết phải kết hợp với vi mạch điều khiển bus 8288 để tạo tín hiệu đọc – ghi cho nhớ thiết bò ngoại vi chế độ cho phép làm việc với 8087 GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGÔ VĂN BÌNH http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN trang101 Luận văn tốt nghiệp KIL OBO OKS CO M JNG – Xem JLE JNGE – Xem JL JNL – Xem JGE JNLE – Xem JG JNO – Jump if No Overflow (Nhảy không tràn) Viết lệnh: JNO NHAN Mô tả: IP IP + Dòch chuyển Đây lệnh nhảy (có điều kiện) tới NHAN OF=0, tứ không xảy tràn sau thực phép toán với số có dấu Nhãn NHAN phải nằm cách xa (dòch khoảng) –128…+127 byte so với lệnh sau lệnh JNO Chương trình dòch vào vò trí NHAN để xác đònh giá trò dòch chuyển Lệnh không tác động đến cờ JNZ Xem JNE JO Jump if Overflow (nhảy tràn) Viết lệnh : JO NHAN Mô tả : IP IP + Dòch chuyển Đây lệnh nhảy (có điều kiện) tới NHAN OF =1, tức xảy tràn sau thực phép toán với số có dấu Nhãn NHAN phải nằm cách xa (dòch khoảng (-128…+127 byte so với lệnh sau lệnh JO Chương trình dòch vào vò trí NHAN để xác đònh giá trò dòch chuyển Lệnh không tác động đến cờ JP/JPE Jump if Parity/Jump if Parity Even (Nhảy parity chẵn) Cú pháp: JP NHAN JPE NHAN Mô tả : IP IP + Dòch chuyển Hai lệnh biểu diễn thao tác : Nhảy (có điều kiện) tới NHAN PE=1 Nhãn NHAN phải nằm cách xa (dòch khoảng) 128 byte so với lệnh sau lệnh JP/JPE Chương trình dòch vào vò trí NHAN để xác đònh giá trò dòch chuyển Lệnh không tác động đến cờ JPE Xem JP JPO Xem JNP JS Jump if Signed (Jump if Negative) (Nhảy kết âm) Cú pháp: JS NHAN Mô tả : IP IP + Dòch chuyển Đây lệnh nhảy (có điều kiện) tới NHAN SF=1, tức kết âm sau thực phép toán với số có dấu Nhãn NHAN phải nằm cách xa (dòch khoảng) 128…+127 byte so với lệnh sau lệnh JS Chương trình dòch vào vò trí NHAN để xác đònh giá trò dòch chuyển Lệnh không tác động đến cờ GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGÔ VĂN BÌNH http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN trang102 Luận văn tốt nghiệp KIL OBO OKS CO M JZ Xem JE LAHF Load AH with the low byte of the Flag Register (Nạp byte thấp cờ vào AH) Dùng lệnh phối hợp với lệnh PUSH AX mô lệnh PUSH PSW vi xử lý 8085 8086 (lệnh PUSH PSW vi xử lý 8085 cất ghi cờ Acc vào ngăn xếp) Lệnh không tác động đến cờ DS Load Register and DS with Words from Memory Nạp từ (từ nhớ) vào ghi cho lệnh từ vào DS) Cú pháp: LDS Đích, Gốc Trong : + Đích ghi : AX, BX, CX, DX, SP, BP, SI, DI + Gốc ô nhớ đoạn DS rõ lệnh Mô tả : Đích Gốc, DS Gốc + Đây lệnh để nạp vào ghi chọn vào DS từ ô nhớ liên tiếp Một ứng dụng lệnh làm cho SI DS vào đòa đầu vùng nhớ chứa chuỗi gốc trước dùng đến lệnh thao tác chuỗi Lệnh không tác động đến cờ LEA Load Effective Address (Nạp đòa hiệu dụng vào ghi) Cú pháp: LEA Đích, Gốc Trong đó: + Đích thường ghi: BX, CX, DX, BP, SI, DI + Gốc tên biến đoạn DS rõ lệnh ô nhớ cụ thể Mô tả: Đích Đòa lệnh Gốc, Đích Đòa hiệu dụng gốc Đây lệnh để tìm đòa lệch biến đòa ô nhớ chọn làm gốc nạp vào ghi chọn Lệnh không tác động đến cờ LES – Load Register and ES with Words from Memory Nạp từ từ nhớ) vào ghi cho lệnh từ vào ES) Cú pháp: LES Đích, Gốc Trong : + Đích ghi : AX, BX, CX, DX, SP, BP, SI, DI + Gốc ô nhớ tong đoạn DS rõ lệnh Mô tả : Đích Gốc, ES Gốc + Đây lệnh để nạp vào ghi chọn vào ES từ ô nhớ liên tiếp Một ứng dụng lệnh làm cho DI ES vào đòa dấu vùng nhớ chứa chuỗi đích trước dùng đến lệnh thao tác chuỗi Lệnh không tác động đến cờ Nạp vào DI nội dung ô nhớ BX BX + nạp vào ES nội dung ô nhớ BX + BX + Các ô nhớ nằm đoạn GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGÔ VĂN BÌNH http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN trang103 Luận văn tốt nghiệp KIL OBO OKS CO M liệu DS chứa đòa chuổi đích Do sau ES:DI vào đầu chuổi đích cần thao tác LOCK – Assert Bus Lock Signal (Đưa tín hiệu khóa bus) Lệnh LOCK dùng đặt trước lệnh mà chạy có nguy gây lỗi khả xảy tranh chấp việc sử dụng bus vi xử lý 8086 xử lý khác hệ thống đa xử lý Nếu có lệnh LOCK đặt trước lệnh đó, chạy lệnh này, 8086 đưa tín hiệu khóa bus Tín hiệu nối thiết bò điều khiển bus để cấm xử lý khác hệ thống sử dụng bus Lệnh không tác động đến cờ Lệnh XCHG cần lần thâm nhập bus để hoàn tất việc thực lệnh, cần đặt sau LOCK để tránh nguy tranh chấp bus xảy hệ thống đa xử lý LODS/LODSB/LODSW – Load String Byte/Word into AL/AX (Nạp vào AL/AX phần tử chuỗi byte/từ) Cú pháp: LODS Chuỗi gốc LODSB LODSW Mô tả : AL Phần tử thời, SI SI + tùy theo DF, chuỗi byte AX Phần tử thời, SI SI + tùy theo DF, chuỗi từ (Phần tử thời chuỗi DS : SI thời ra) Lệnh LODS nạp vào AL/AX bytes/ từ (1 phần tử chuỗi đònh nghóa trước chuỗi gồm byte từ SI đoạn DS, sau SI tự động tăng/giảm để vào phần tử tùy theo cờ hướng Khi phải dòch lệnh LODS Chuỗigốc, chương trình dòch dùng tên Chuỗigốc để xác đònh xem lúc khai báo Chuỗigốc có phần tử byte hay từ Muôn rõ cho chương trình dòch hợp ngữ ta làm việc với chuỗi byte từ, ta dùng lệnh LODSB LODSW Lệnh không tác động đến cờ LOOP – Jump to Speciafied Label if CX # O after Autodecrement (lặp lại đoạn chương trình nhãn CX = Cú pháp: LOOP NHAN Mô tả: Lệnh dùng để lập lại đoạn chương trình (gồm lệnh nằm khoảng từ nhãn NHAN đến hết lệnh LOOP NHAN) số lần lặp CX = Điều có nghóa trước vào vòng lặp ta phải đưa số lần lặp mong muốn vào ghi CX sau lần thực lệnh LOOP NHAN đồng thời CX tự động giảm (tức CX CX – 1) Nhãn NHAN phải nằm cách xa dòch khoảng) – 128 byte so với lệnh sau lệnh LOOP GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGÔ VĂN BÌNH http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN trang104 Luận văn tốt nghiệp KIL OBO OKS CO M Lệnh không tác động đến cờ LOOPE/LOOPZ – Loop White CX # O and ZF = (Lặp lại đoạn chương trình nhãn CX=0 ZF = 0) Cú pháp: LOOPE NHAN LOOPZ NHAN Mô tả: Lệnh dùng để lập lại đoạn chương trình (gồm lệnh nằm khoản từ nhãn NHAN đến hết lệnh LOOPE NHAN LOOPZ NHAN) số lần lặp CX = 0, ZF = Điều có nghóa trước vào vòng lặp ta phải đưa số lần lặp mong muốn vào ghi CX sau lần thực lệnh LOOP NHAN đồng thời CX tự động giảm (tức CX CX – 1) Nhãn NHAN phải nằm cách xa (dòch khoảng) –128 byte so với lệnh sau lệnh LOOPE / LOOPZ Lệnh không tác động đến cờ LOOPNE/LOOPNZ – Loop While CX # O and ZF = (Lặp lại đoạn chương trình nhãn CX = ZF = 1) Cú pháp: LOOPE NHAN LOOPZ NHAN Mô tả: Lệnh dùng để lập lại đoạn chương trình (gồm lệnh nằm khoảng từ nhãn NHAN đến hết lệnh LOOPNE NHAN LOOPNZ NHAN) số lần lặp CX = ZF = Điều có nghóa trước vào vòng lặp ta phải đưa số lần lặp mong muốn vào ghi CX sau lần thực lệnh LOOP NHAN đồng thời CX tự động giảm (tức CX CX – 1) Nhãn NHAN phải nằm cách xa (dòch khoảng) – 128 byte so với lệnh sau lệnh LOOPNE/LOOPNZ Lệnh không tác động đến cờ LOOPNZ – Xem LOOPNE LOOPZ – Xem LOOPE MOV – Move a Word or Byte (Chuyển từ hay byte) Cú pháp: MOV Đích, Gốc Mô tả : Đích Gốc Trong toán hạng đích gốc tìm theo chế độ đòa khác nhau, phải có độ dài không phép đồng thời ô nhớ ghi đoạn Lệnh không tác động đến cờ MOVS/MOVSB/MOVSW – Move String Byte or String Word (Chuyển phần tử chuỗi sang chuỗi khác) Cú pháp: MOVS Chuỗiđích, Chuỗigốc MOVSB GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGÔ VĂN BÌNH http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN trang105 Luận văn tốt nghiệp KIL OBO OKS CO M MOVSW Mô tả : Phần tử Chuỗiđích Phần tử Chuỗigốc Lệnh dùng chuyển byte hay từ chuỗi gốc sang chuỗi đích đó: + DS:SI đòa phần tử chuỗi gốc + ES:DI đòa phần tử chuỗi đích + Sau lần chuyển SI SI + DI DI + SI SI + DI DI + cách tự động tùy thuộc cờ hướng DF 0/1 chuỗi chuỗi byte chuỗi từ Có cách để chuỗi byte chuỗi từ Cách ta khai rõ tên chuỗi nguồn chuỗi đích loại từ đầu chương trình Cách thứ hai ta thêm vào lệnh MOVS đuôi “B” cho chuỗi byte đuôi “W” cho chuỗi từ (xem mô tả cách sử dụng lệnh COMPS) Lệnh MOVS/MOVSB/MOVSW dùng kèm với lện REPE REPNE để so sánh tất phần tử chuỗi MUL – Multiply Unsigned Byte or Word (Nhãn số không dấu) Cú pháp: MUL Gốc Trong toán hạng Gốc số nhân tìm theo chế độ đòa khác Mô tả: Tùy theo độ dài toán hạng Gốc ta có trường hợp tổ chức phép nhân, chỗ để ngầm đònh cho số bò nhân kết + Nếu Gốc số bit : AL x Gốc số bò nhân phải số bit để AL sau nhân : AX tích + Nếu Gốc số 16 bit : AX x Gốc số bò nhân phải số 16 bit để AX sau nhân : DXAX tích Nếu byte cao (hoặc 16 bit cao) 16 (hoặc 32) bit kết chứa CF = OF = Như cờ CF OF báo cho ta biết bỏ số kết Cập nhật : CF, OF Không xác đònh : AF, PF, SF, ZP NEG – Negate a Operand (Form its 2’s Complement) (Lấy bù hai toán hạng, đảo dấu toán hạng) Cú pháp: NEG Đích Trong toán hạng đích tìm theo chế độ đòa khác Mô tả : Đích - (Đích) Điều hoàn toàn tương đương với việc lấy (Đích + 1) làm kết Nếu ta lấy bù hai –128 –32768 ta kết không đổi cờ GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGÔ VĂN BÌNH http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN trang106 Luận văn tốt nghiệp KIL OBO OKS CO M OF = để báo kết bò tràn (vì số dương lớn biểu diễn +127 +32767) Cập nhật : AF, CF, OF, PF, SF, ZF NOP – No Operation (CPU không làm gì) Lệnh không thực công việc ngoại trừ việc tăng nội dung IP tiêu tốn chu kỳ đồng hồ Nó thường dùng để tính thời gian vòng trễ để chiếm chỗ cho lệnh cần thêm vào chương trình sau mà không làm ảnh hưởng tối độ dài chương trình Lệnh không tác động đến cờ NOT – Invert Each Bit of an Operand (From its 1’s Complement) (Lấy bù toán hạng, đảo bit toán hạng) Cú pháp: NOT Đích Trong toán hạng đích tìm theo chế độ đòa khác Mô tả: Đích (Đích) Lệnh không tác động đến cờ OR – Logically Or Corresponding Bits of Two Operands (Hoặc toán hạng) Cú pháp: OR Đích, Gốc Mô tả: Đích Đích v Gốc Trong toán hạng đích gốc tìm theo chế độ đòa khác nhau, phải chứa liệu độ dài không phép đồng thời ô nhớ không ghi đoạn Phép OR thường dùng để lập vài bit toán hạng cách cộng logic toán hạng với toán hạng tức thời có bit vò trí tương ứng cần thiết lập Xoá: CF, OF Cập nhật : PF, SF, ZP, PF có nghóa toán hạng bit Không xác đònh : AF OUT – Output a Byte or a Word to a Port (Đưa liệu từ Acc cổng) Cú pháp: OUT Port, Acc Mô tả: Acc {Port} Trong {Port} liệu cổng có đòa Port Port đòa bit cổng, có giá trò khoảng 00H…FFH Như ta có khả sau: + Nếu Acc AL liệu bit đưa cổng Port + Nếu Acc AX liệu 16 bit đưa cổng Port cổng Port + Có cách khác để biểu diễn đòa cổng thông qua ghi DX Khi dùng ghi DX để chứa đòa cổng ta có khả đòa hóa cổng mềm dẻo Lúc đòa cổng nằm dải 0000H…FFFFH ta phải viết lệnh theo dạng: OUT DX, Acc Trong DX phải gán từ trước giá trò ứng với đòa cổng GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGÔ VĂN BÌNH http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN trang107 Luận văn tốt nghiệp KIL OBO OKS CO M Lệnh không tác động đến cờ POP – Pop Word from Top of Stack (Lấy lại từ vào ghi từ đỉnh ngăn xếp) Cú pháp: POP Đích Mô tả : Đích {SP} SP SP + Trong toán hạng đích tìm theo chế độ đòa khác nhau: ghi đa năng, ghi đoạn (nhưng không ghi đoạn mã CS) ô nhớ Dữ liệu để ngăn xếp không thay đổi Giá trò SS không thay đổi Lệnh không tác động đến cờ POPF – Pop Word from Top of Stack to Flag Register (Lấy từ từ đỉnh ngăn xếp đưa vào cờ) Cú pháp: POPF Mô tả : RF {SP} SP SP + Sau lệnh liệu để ngăn xếp không thay đổi, SS không thay đổi Lệnh không tác động đến cờ PUSH – Push Word on the Stack (Cất từ vào ngăn xếp) Cú pháp: Push Gốc Mô tả : SP SP – Gốc {SP} Trong toán hạng gốc tìm theo chế độ đòa khác nhau: ghi đa năng, ghi đoạn ô nhớ Lệnh thường dùng với lệnh POP cặp đối ngẫu để xử lý liệu trạng thái chương trình (CTC) vào/ra chương trình (ctc) Lệnh không tác động đến cờ PUSHF – Push Flag Register to the Stack (cất cờ vào ngăn xếp) Cú pháp: PUSHF Mô tả : SP SP – RF {SP} Dữ liệu để ngăn xếp không thay đổi SS không thay đổi Lệnh không tác động đến cờ RCL – rotate though CF to the Left (Quay trái thông qua cờ nhớ) Cú pháp: RCL Đích, CL Trong toán hạng đích tìm theo chế độ đòa khác Lệnh dùng để quay toán hạng sang trái thông qua cờ CF CL phải chứa sẵn số lần quay mong muốn Trong trường hợp quay lần viết trực tiếp : RCL Đích, GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGÔ VĂN BÌNH http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN trang108 Luận văn tốt nghiệp KIL OBO OKS CO M (Từ vi xử lý hệ sau 80186, 80286 viết trực tiếp kiểu với số lần quay lớn 32) Ta nhận thấy số lần quay kết không thay đổi cặp CF toán hạng quay tròn vòng Tác động vào cờ : Chỉ có CF OF bò ảnh hưởng Sau lệnh RCL cờ CF mang giá trò cũ MSB bò thay đổi so với trước quay Cờ OF không xác đònh nhiều lần quay RCR – Rotate though CF to the Right (Quay phải thông qua cờ nhớ) Cú pháp: RCR Đích, CL Trong toán hạng đích tìm theo chế độ đòa khác Lệnh dùng để quay toán hạng sang phải thông qua cờ CF, CL phải chứa sẵn số lần quay mong muốn Trong trường hợp quay lần viết trực tiếp : RCR Đích, (từ vi xử lý hệ sau 80186, 80286 viết trực tiếp kiểu với số lần quay lớn 32) Ta nhận thấy số lần quay kết không thay đổi cặp CF toán hạng ghi quay tròn vòng Tác động vào cờ : Chỉ có CF OF bò ảnh hưởng Sau lệnh RCR cờ CF mang giá trò cũ LSB, cờ OF sau quay lần mà bit MSB bò thay đổi so với trước quay Cờ OF không xác đònh sau nhiều lần quay REP – Repeat String Instruction until CX = (lặp lại lệnh viết sau CX = 0) Đây tiếp đầu ngữ dùng để viết trước lệnh thao tác với chuỗi liệu mà ta muốn lặp lại số lần Số lần lặp phải để trước CX Khi lệnh lặp lại CX tự động giảm sau lần lặp Quá trình kết thúc CX = REPE/REPZ – Repeat String Instruction until CX = or ZF = (Lặp lại lệnh viết sau CX=0 ZF=0 Đây tiếp đầu ngữ dùng để viết trước lệnh thao tác với chuỗi liệu mà ta muốn lặp lại số lần Số lần lặp phải để trước CX Khi lệnh lặp lại CX tự động giảm sau lần lặp Khi dùng REPE/REPZ với lệnh so sánh chuỗi, trình kết thúc đếm hết (CX = 0) sau phần tử so sánh khác (ZF = 0) REPNE/REPNZ – Repeat String Instruction until CX = or ZF = (lặp lại lệnh viết sau CX = ZF = 1) Đây tiếp đầu ngữ dùng để viết trước lệnh thao tác với chuỗi liệu mà ta muốn lặp lại số lần Số lần lặp phải để trước CX tự động giảm sau lần lặp Khi dùng REPNE/REPNZ với lệnh quét chuỗi, trình kết thúc đếm hết (CX=0) Acc phần tử chuỗi (ZF = 1) RET – Return from Procedure to Calling Program (Trở chương trình từ chương trình con) GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGÔ VĂN BÌNH http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN trang109 Luận văn tốt nghiệp KIL OBO OKS CO M Cú pháp: RET hoạc RET n, n số nguyên dương Mô tả : RET đặt cuối ctc để vi xử lý lấy lại đòa trở (đòa lệnh lệnh gọi chương trìng chính), tự động cất ngăn xếp có lệnh gọi chương trình Tùy theo loại lệnh gọi gần hay xa ta có xử lý khác đòa trở (xem thêm phần mô tả chung với lệnh CALL) Đặc biệt ta dùng RET n sau lấy lại đòa trở (chỉ có IP có CS IP) SP SP + n (dùng để nhảy qua mà không lấy lại thông số khác chương trình lại ngăn xếp) Lệnh không tác động đến cờ ROL – Rotate All Bits to the Left (Quay vòng sang trái) Cú pháp: ROL Đích, CL Trong toán hạng đich tìm theo chế độ đòa khác Lệnh dùng để quay vòng toán hạng sang trái, MSB đưa qua cờ CF LSB, CL phải chứa sẵn số lần quay mong muốn Trong trường hợp quay lần viết trực tiếp : ROL Đích, (từ vi xử lý hệ sau 80186, 80286 viết trực tiếp kiểu với số lần quay lớn 32) Ta nhận thấy CL = toán hạng để quay bit kết không bò thay đổi toán hạng quay tròn vòng, nếu: CL = nibble toán hạng bò đổi chỗ Tác động vào cờ : Chỉ có CF OF bò ảnh hưởng Sau lệnh ROL cờ CF mang giá trò cũ MSB, cờ OF sau quay lần mà bit MSB bò thay đổi so với trước quay Cờ OF không xác đònh sau nhiều lần quay Lệnh thường dùng để tạo cờ CF từ giá trò MSB làm điều kiện cho lệnh nhảy có điều kiện ROR – Rotate All Bits to the Right (Quay vòng sang phải) Cú pháp: ROR Đích, CL Trong toán hạng đích tìm theo chế độ đòa khác Lệnh dùng để quay vòng toán hạng sang phải, LSB đưa qua cờ CF, MSB CL phải chứa sẵn số lần quay mong muốn Trong trường hợp quay lần viết trực tiếp : ROR Đích, (từ vi xử lý hệ sau 801286, 80286 viết trực tiếp kiểu với số lần quay lớn 32) Ta nhận thấy CL = kết không bò thay đổi toán hạng quay tròn vòng, CL = nibble bò đổi chỗ Tác động vào cờ : Chỉ có CF OF bò ảnh hưởng Sau lệnh ROR cờ CF mang giá trò cũ LSB, cờ OF sau quay lần mà bòt MSB bò thay đổi so với trước quay Cờ OF không xác đònh GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGÔ VĂN BÌNH http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN trang110 Luận văn tốt nghiệp KIL OBO OKS CO M nhiều lần quay Lệnh thường dùng để tạo cờ CF từ giá trò LSB làm điều kiện cho lệnh nhảy có điều kiện SAHF – Store AH Register into Low byte of Flag Register (cất ghi AH vào byte thấp cờ) Mô tả : FRL AH Dùng lệnh phối hợp với lệnh POP AX mô lệnh POP PSW vi xử lý 8085 8086 Cập nhật : AF, CF, OF, PF, SF, ZP SAL – Shift Arithmetically Left (Dòch trái số học) / SHL – Shift (Logically) Left (Dòch trái logic) Cú pháp: SAL Đích, CL SHL Đích, CL Trong toán hạng đích tìm theo chế độ đòa khác Hai lệnh có tác dụng dòch trái số học toán hạng (còn gọi dòch trái logic để có lệnh đối với lệnh dòch phải logic nói phần sau) Mỗi lần dòch MSB đưa qua cờ CF đưa vào LSB Thao tác kiểu gọi dòch logic CL phải chứa sẵn số lần dòch mong muốn Trong trường hợp dòch lần viết trực tiếp : SAL Đích, (từ vi xử lý hệ sau 80186, 80286 viết trực tiếp kiểu với số lần dòch lớn 32) Ta nhận thấy lần dòch trái kiểu tương đương với lần làm phép nhân với số không dấu Vì ta làm phép nhân số với số nhân không dấu tương đương với dòch trái số học số bò nhân i lần Chính thao tác gọi dòch trái số học Trong chừng mực đònh lệnh chạy nhanh MUL Tác động vào cờ : Sau lệnh SAL SHL cờ CF mang giá trò cũ MSB (vì lệnh dùng để tạo cờ CF từ giá trò MSB làm điều kiện cho lệnh nhảy có điều kiện), cờ OF sau dòch lần mà bit MSB bò thay đổi so với trước dòch Cờ OF không xác đònh sau nhiều lần dòch Cập nhật : SF, ZF, PF, PF có ý nghóa kết bit Không xác đònh : AF SAR – Shift Arithmetically Right (Dòch phải số học) Cú pháp: SAR Đích, CL Trong toán hạng đích tìm theo chế độ đòa khác Lệnh có tác dụng dòch phải số học toán hạng Sau lần dòch MSB giữ lại (nếu ta hiểu bit dấu số có dấu dấu không đổi sau phép dòch phải số học) LSB đưa vào cờ CF CL phải chứa sẵn số lần dòch mong muốn Trong trường hợp dòch lần viết trực tiếp: SAR Đích, GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGÔ VĂN BÌNH http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN trang111 Luận văn tốt nghiệp KIL OBO OKS CO M (từ vi xử lý hệ sau 80186, 80286 viết trực tiếp kiểu với số lần dòch lớn 32) Ta nhận thấy lần dòch phải kiểu tương đương với lần làm phép chia cho số có dấu Vì làm phép chia số có dấu cho số không dấu tương đương với cách dòch phải số học số bò chia i lần Chính thao tác gọi dòch phải số học Tác động vào cờ: Sau lệnh SAR cờ CF mang giá trò cũ MSB (vì lệnh dùng để tạo cờ CF từ giá trò MSB làm điều kiện cho lệnh nhảy có điều kiện), cờ OF sau dòch lần mà bit MSB bò thay đổi so với trước dòch Cờ OF không xác đònh sau nhiều lần dòch Cập nhật: SF, ZF, PF, PF có ý nghóa kết bit Không xác đònh: AF SBB – Substract with Borrow (Trừ có mượn) Cú pháp: SBB Đích, Gốc Mô tả : Đích Đích – Gốc – CF Trong toán hạng đích gốc tìm theo chế độ đòa khác nhau, phải chứa loại liệu không phép đồng thời ô nhớ không ghi đoạn Cập nhật : AF, CF, OF, PF, SF, ZP (AP PF liên quan đến bit thấp) 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, chuỗi byte AX – Phần tử chuỗi đích, DI DI + tùy theo DF, chuỗi từ (Phần tử chuỗi đích ES:DI thời ra) Lệnh SCAS so sánh AL Ax với byte hay từ xâu đích để tạo cờ, không lưu kết so sánh, toán hạng không bò thay đổi Sau DI tự động tăng/giảm để vào phần tử 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 Chuỗiđích có phần tử byte hay từ Muốn rõ cho chương trình dòch hợp ngữ ta làm việc với chuỗi byte (chức byte) chuỗi từ (chứa từ), ta dùng lệnh SCASB SCASW Các lệnh thường dùng kèm với REPNE/REPNZ để lặp lại việc quét số lần quét tìm mẫu cần tìm Cập nhật : AF, CF, OF, PF, SF, ZP SHL – Xem SAL GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGÔ VĂN BÌNH http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN trang112 Luận văn tốt nghiệp KIL OBO OKS CO M SHR – Shift (Logically) Right (Dòch phải logic) Cú pháp: SHR Đích, CL Trong toán hạng đích tìm theo chế độ đòa khác Lệnh dùng để dòch phải logic toán hạng Sau lần dòch LSB đưa qua cờ CF đưa vào MSB Thao tác kiểu gọi dòch logic CL phải chứa sẵn số lần dòch mong muốn Trong trường hợp dòch lần viết trực tiếp: SHR Đích, (từ vi xử lý hệ sau 80186, 80286 viết trực tiếp kiểu với số lần dòch lớn 32) Ta nhận thấy lần dòch trái kiểu tương đương với lần làm phép chia cho số không dấu Vì làm phép chia số không dấu cho số không dấu tương đương với 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ũ LSB (vì lệnh dùng để tạo cờ CF từ giá trò LSB làm điều kiện cho lệnh nhảy có điều kiện), cờ OF sau dòch lần mà bit MSB bò thay đổi so với trước dòch Cờ OF không xác đònh sau nhiều lần dòch Cập nhật: SF, ZF, PF, PF có ý nghóa kết bit Không xác đònh: AF STC – Set the Carry Flag (Lập cờ nhớ) Mô tả: CF Không tác động đến cờ khác STD – Set the Direction Flag (Lập cờ hướng) Mô tả: DF Lệnh đònh hướng thao tác cho lệnh làmviệc với chuỗi theo chiều lùi () Các ghi SI DI liên quan tự động giảm làm việc xong với phần tử chuỗi Không tác động đến cờ khác STI – Set the Interrupt Flag (Lập cờ cho phép ngắt) Mô tả: IF Lệnh lập cờ cho phép ngắt phép yêu cầu ngắt tác động vào chân INTR CPU nhận biết Khi IF = có tín hiệu INTR = 8086 bò ngắt, tự động cất ghi cờ đòa trở vào ngăn xếp chuyển sang chạy chương trình (con) phục vụ ngắt CTPVN Tại cuối CTPVN có lệnh trở CTC từ CTPVN (IRET) để 8086 lấy lại từ ngăn xếp giá trò ghi cờ đòa trở Không tác động đến cờ khác STOS/STOSB/STOSW – Store AL/AX in String Byte/Word (cất AL/AX vào phần tử chuỗi byte/từ) Cú pháp: STOS Chuỗiđích GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGÔ VĂN BÌNH http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN trang113 Luận văn tốt nghiệp KIL OBO OKS CO M STOSB STOSW Mô tả : AL Phần tử thời, DI DI + tùy theo DF, chuỗi byte AX Phần tử thời, DI DI + tùy theo DF, chuỗi từ (Phần tử chuỗi đích ES:DI thời ra) Lệnh STOS cất AL/AX vào byte/từ (1 phần tử chuỗi đònh nghóa trước chuỗi gồm byte từ) DI đoạn ES, sau DI tự động tăng/giảm để vào phần tử 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 Chuỗiđích có phần tử byte hay từ Muốn rõ cho chương trình dòch hợp ngữ ta làm việc với chuỗi byte từ, ta dùng lệnh STOSB STOSW Lệnh không tác động đến cờ Trong thí dụ chương trình dòch hợp ngữ dùng tên STR1 để xác đònh kiểu STR1 byte từ tự động cất AL hay AX vào chuỗi SUB – Substract (Trừ toán hạng) Cú pháp: SUB Đích, Gốc Mô tả : Đích Đích – Gốc Trong toán hạng đích gốc tìm theo chế độ đòa khác nhau, phải chứa liệu có độ dài không phép đồng thời ô nhớ không ghi đoạn Cập nhật : AF, CFm OFm PFm SF, ZP (AP PF liên quan đế bit thấp) TEST – And Operands to Update Flag (Và 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 gốc tìm theo chế độ đòa khác nhau, phải chứa liệu có độ dài không phép đồng thời ô nhớ không ghi đoạn Sau lệnh toán hạng không bò thay đổi kết không lưu giữ Các cờ tạo dùng làm điều kiện cho cách lệnh nhảy có điều kiện Lệnh nhà có tác dụng che mặt nạ Xóa: CF, OF Cập nhật: PF, SF, ZP, ZP (PF liên quan đến bit thấp) Không xác đònh: AF WAIT – Wait for TEST or INTR Signal (Chờ tín hiệu từ chân TEST INTR) Mô tả: Lệnh đưa vi xử lý vào trạng thái nghỉ trạng thái có tín hiệu mức thấp tác động vào chân TEST có tín hiệu mức cao tác GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGÔ VĂN BÌNH http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN trang114 Luận văn tốt nghiệp KIL OBO OKS CO M động vào chân INTR Nếu có yêu cầu ngắt yêu cầu phép tác động 8086 trạng thái nghỉ sau thực chương trình phục vụ ngắt lại quay trạng thái nghỉ Lệnh dùng để đồng hoạt động 8086 phận bên đồng xử lý toán học 8087 Lệnh không tác động đến cờ XCHG – Exchange Operands (Tráo nội dung toán hạng) Cú pháp: XCHG Đích, Gốc Mô tả: Đích Gốc Trong toán hạng đích gốc tìm theo chế độ đònh đòa nhau, phải chứa liệu độ dài không phép đồng thời ô nhớ không ghi đoạn Sau lệnh XCHG toán hạng chứa nội dung cũ toán hạng ngược lại Lệnh không tác động đến cờ XLAT – Translate a Byte in AL (Nội dung AL theo bảng cho trước) Cú pháp: XLAT Mô tả: AL {AL + BX} Lệnh dùng để đổi bit hợn từ mã (gốc) sang mã khác (đích) theo bảng tra cho sẵn Trước thực lệnh đổi, bảng tra phải chứa mã đích BX phải chứa đòa lệch bảng đoạn liệu, mã gốc (cần đổi) phải chứa AL Khi chạy lệnh XLAT phép cộng AL + BX thực để tạo đòa ô nhớ bảng số mà nội dung cất trở lại vào ghi AL Lệnh không tác động đến cờ XOR – Exclusive Or Corresponding Bits of Two Operands (Hoặc loại trừ toán hạng) Cú pháp: XOR Đích, Gốc Mô tả : Đích Đích Gốc Trong toán hạng đích gốc tìm theo chế độ đòa khác nhau, phải chứa liệu độ dài không phép đồng thời ô nhớ không ghi đoạn Từ tính chất phép loại trừ, ta thấy toán hạng đích trùng với toán hạng gốc kết 0, lệnh dùng để xóa ghi kèm theo cờ CF OF bò xóa Cập nhật: PF, SF, ZP PF có nghóa toán hạng bit Không xác đònh: AF Trên nhóm thực giới thiệu qua tất lệnh có tập lệnh vi xử lý 8086, thực tế lập trình nhiều ta không sử dụng hết tất lệnh có tập lệnh Tập lệnh vi xử lý cao cấp họ 80x86 lệnh bao gồm nhiều lệnh khác GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGÔ VĂN BÌNH http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN trang115 Luận văn tốt nghiệp KIL OBO OKS CO M Ta coi ví dụ tập lệnh vi xử lý dùng để chế tạo máy tính với tập lệnh đầy đủ (Complete Instruction Set Computer, CISC) với đặc trưng có nhiều lệnh với chế độ đòa đa dạng, lệnh có độ dài khác thời gian để thực khác Bộ vi xử lý thường có cấu trúc phức tạp Thế mà thực tế, chương trình hợp ngữ để giải công việc cụ thể, thường có nhiều lệnh dùng với tần suất lớn có lệnh chí không sử dụng Đây lý để nhà sản xuất cho đời 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 hiệu dụng (có số lệnh với chế độ đòa đơn giản, lệnh có độ dài thống có thời gian thực nhau) lại có khả thực lệnh nhanh gấp bội so với loại CISC Đó vi xử lý dùng làm CPU cho máy tính với tập lệnh rút gọn (Reduced Instruction Set Computer, RISC) GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGÔ VĂN BÌNH [...]... văn tốt nghiệp Phần 2 THI T KẾ PHẦN CỨNG KIT 8086 Chương I: KIL OBO OKS CO M CÁC LINH KIỆN BÁN DẪN CÓ LIÊN QUAN oOo Trong thi t kế tôi đã phải tính toán lựa chọn qua các công đọan: - Linh kiện phải có sẵn trên thò trường - Linh kiện phải phù hợp với hệ thống - Hệ thống đơn giản tiết kiệm - Kết nối sao cho phần mềm đơn giản nhất, mà phần cứng không qúa phức tạp, cồng kềnh - IC 8086 đa hợp các đường... và thi t bò ngoại vi chậm có đủ thời gian hoàn tất công việc đọc-ghi dữ liệu + Ở chu kỳ T4: Trong chu kỳ này các tín hiệu trên bus được giải hoạt (đưa về trạng thái không tích cực) để chuẩn bò cho chu kỳ bus mới Tín hiệu WR trong khi chuyển trạng thái từ ‘0’ lên ‘1’ sẽ kích họat trạng thái ghi vào bộ nhớ hay thi t bò ngoại vi b) Nguyên tắc thực hiện chương trình của vi xử lý 8086: Các chỉ thò của 8086. .. liệu ra ổn dònh trên bus dữ liệu Thời gian truy xuất của bộ nhớ phụ thuộc rất nhiều vào công nghệ chế tạo của nó Các bộ nhớ làm bằng công nghệ lưỡng cực có thời gian truy xuất nhỏ (10 30 ns) còn bộ nhớ làm bằng công nghệ MOS có thời gian truy xuất lớn hơn nhiều ( > 150 ns) Bộ nhớ được sử dụng trong việc kết nối kit 8086 là EPROM 2764: KIL OBO OKS CO M - GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGÔ VĂN BÌNH http://kilobooks.com... H L H L L L L H Thông số ngưỡng: Max 5,25 70 -2,6 24 Đơn vò V o C mA mA 74LS373 74LS373 8086 A15 – A0 74LS373 Thông số Min Type Ký hiệu Vcc Nguồn cung cấp 4,75 5 TA Nhiệt độ hoạt động 0 25 IOH Dòng ra cao IOL Dòng ra thấp 3) Sơ đồ mô phỏng kết nối 74LS373 với 8086: Hình II.2: Sơ đồ mô phỏng kết nối 74LS373 với 8086 GVHD: NGUYỄN ĐÌNH PHÚ SVTH: NGÔ VĂN BÌNH http://kilobooks.com THƯ VIỆN ĐIỆN TỬ TRỰC... BL, 50 ADC AL, AH ADD CX, [0800] ADC [0600], DL 8086 có thể thực hiện phép trừ với 8 bit hoặc 16 bit, lệnh SBB có lưu ý số thi u và lệnh SUB không lưu ý số thi u Sau đây là bảng liệt kê lệnh trừ dưới dạng gợi nhớ: Trừ có số thi u SUB (accu), (data) SUB (mem), (data) SUB (reg), (data) SUB (reg1), (reg2) SUB (reg), (mem) SUB (mem), (reg) Trừ không có số thi u SBB (accu), (data) SBB (mem), (data) SBB (reg),... cách kết hợp các phương pháp đònh đòa chỉ khác nhau trong một chỉ thò, có thể tạo ra nhiều khả năng phức tạp để truy xuất toán hạng (operand) các thi t bò vào – ra chỉ được truy cập bằng các phương pháp trực tiếp và gián tiếp Thứ tự mô tả byte của một word được lưu trong bộ nhớ giống như qui đònh của 8085, có nghóa là các byte thấp (LSB) ở đòa chỉ thấp và các byte cao (MSB) được đặt ở đòa chỉ cao hơn kế. .. biết vi xử lý chấp nhận nhường quyền sử dụng bus và nó sẽ tiến vào trạng thái ‘Hold acknowlegde’ sau xung đồng hồ kế tiếp để treo bus của chính nó + Xung bề rộng chu kỳ đồng hồ được gởi đến 8086 cho biết quá trình ‘Hold’ kết thúc và vi xử lý trở lại quản lý bus xau khi chấm dứt chu kỳ đồng hồ kế tiếp Nếu yêu cầu này xảy ra trong khi vi xử lý đang truy xuất bộ nhớ, nó sẽ treo bus trong khoảngT4 nếu thỏa... bus dữ liệu nếu chúng được dùng trong hệ thống Tại cuối chu kỳ T2 CPU lấy mẫu tín hiệu Ready để xử lý trong chu kỳ tiếp theo khi nó phải làm việc với bộ nhớ, thi t bò ngoại vi chậm + Ở chu kỳ T3: Trong chu kỳ này CPU dàng thời gian cho bộ nhớ hay thi t bò ngoại vi truy cập dữ liệu Nếu là chu kỳ đọc dữ liệu thì tại cuối T3 CPU sẽ lấy mẫu tín hiệu của bus dữ liệu Nếu tại cuối chu kỳ T2 mà CPU phát hiện... nhất, mà phần cứng không qúa phức tạp, cồng kềnh - IC 8086 đa hợp các đường đòa chỉ và dữ liệu từ AD0 – AD15 với nhau, nên muốn sử dụng được phải kết hợp với IC giải đa hợp các đường đòa chỉ và dữ liệu riêng biệt I IC chốt 74LS373: 1) Tổng quát: Trong thi t kế tôi chọn IC chốt 74LS373 làm nhiệm vụ tách riêng từng đường đòa chỉ và dữ liệu, đây là IC chốt 8 bit với 8 trạng thái ngõ ra theo Bus, những... khi thao tác với bộ nhớ, trong lúc thao tác với thi t bò vào-ra chân này có gía trò thấp Trong cả hai thao tác cũng như vào – ra các bit này là trạng thái trong các chu kỳ T2, T3, Tw, T4 Trạng thái bit cao cho phép ngắt, S 5 được cập nhật tại mỗi thời điễm bắt đầu của mỗi chu kỳ đồng hồ S3 & S4 cho biết thanh ghi đoạn đang được sử dụng, thông tin này cần thi t cho Coprocessor xác đònh vò trí của toán ... Nhóm lệnh số học - Nhóm lệnh thao tác chuổi - Nhóm lệnh logic - Nhóm lệnh xử lý bit - Nhóm lệnh điều khiển chương trình - Nhóm lệnh ngôn ngữ bậc cao - Nhóm lệnh chế độ bảo vệ - Nhóm lệnh điều... 3) Tên chân: D7 - D0 RESET CS WR RD A0, A1 PA7 – PA0 PB7 – PB0 PC7 – PC0 PA7-PA0 D7-D0 PC7-PC4 RD WR RESE T PC3-PC0 PB7-PB0 A0 A1 Hình IV.3: Sơ đồ Logic 8255A Data bus (Bi-Direction) Reset... đây: - Yêu cầu xảy tr - c T2 - Chu kỳ hành byte thấp word (ở đòa lẻ) - Chu kỳ hành không trạng thái chấp nhận ngắt - Không có thò khóa Nếu bus không bận có yêu cầu có hai trường hợp xảy - Bus