Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 122 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
122
Dung lượng
0,95 MB
Nội dung
Bay giảng Kỹ thuật Vi xử lý Tài liệu tham khảo [1] Kỹ thuật vi xử lý, Văn Thế Minh, NXB Giáo dục, 1997 [2] Kỹ thuật vi xử lý Lập trình Assembly cho hệ vi xử lý, Đỗ Xuân Tiến, NXB Khoa học & kỹ thuật, 2001 Chương Vi xử lý 8088-Intel 3.1 Kiến trúc hoạt động 8088 - Nguyên lý hoạt động - Sơ đồ khối chức 3.2 Cấu trúc ghi 8088 3.3 Phương pháp quản lý nhớ 3.4 Mô tả tập lệnh Assembly Nguyên lý hoạt động vi xử lý Lấy - Giải mã - Thực lệnh Tìm copy byte lệnh từ nhớ Tạo tín hiệu điều khiển để thực lệnh Giải mã lệnh Chu kỳ lệnh Chu kỳ máy • Chu kỳ lệnh: Tổng thời gian tìm lệnh, giải mã lệnh thực lệnh • Nói chung, Chu kỳ lệnh lệnh khác khác • Chu kỳ lệnh số nguyên lần chu kỳ máy • Chu kỳ máy nghịch đảo tần số hoạt động (tốc độ đồng hồ) vi xử lý 3.1 Kiến trúc Hoạt động 8088 Đơn vị giao tiếp Bus - BIU • Phát tín hiệu địa đến nhớ cổng I/O thông qua A-Bus • Đọc mã lệnh từ nhớ thông qua D-Bus • Đọc liệu từ nhớ thông qua D-Bus • Ghi liệu vào nhớ thông qua D-Bus • Đọc liệu từ cổng I thông qua D-Bus • Ghi liệu cổng O thông qua D-Bus Đơn vị thực - EU • Bao gồm CU ALU • CU : Giải mã lệnh để tạo tín hiệu điều khiển nhằm thực lệnh giải mã • ALU: thực thao tác khác toán hạng lệnh Tổ chức microprocessor CPU Control registers ALU BIU Control Control Address Data General purpose registers Status Registers Xử lý lệnh vi xử lý trước 8086/8088 • Một thủ tục đơn giản gồm bước: – Lấy lệnh từ nhớ – Giải mã lệnh – Thực lệnh • Lấy toán hạng từ nhớ (nếu có) • Lưu trữ kết Fetch Busy Decode Idle Execute Busy Fetch Busy Decode Idle Execute … Busy … Microprocessor Bus Cơ chế Pipelining Pipelining Fetch Fetch Fetch Fetch Store Decode Decode Decode Decode Exec Exec Exec Memory request Fetch Idle Exec Fetch Load Decode Decode Idle Idle Exec Memory request Bus … Fetch Idle Decode Exec Idle … Exec Instruction Unit Execution Unit Ví dụ:Sao chép mảng ; Sao chép 10 byte từ mảng a sang mảng b, giả sử (DS) = (ES) mov mov mov cld rep cx, 10 di, offset b si, offset a ;xoá cờ DF movsb Ví dụ: Tịnh tiến ô nhớ mov mov mov std rep cx, di, offset a+9 si, offset a+6 ;lập cờ DF SI movsb a DI Ví dụ pattern db "!@#*" db 96 dup (?) cx,96 si, offset pattern di, offset pattern+4 mov mov mov cld rep movsb SI a ! @ # * DI Lưu trữ string STOSB, STOSW • Copy AL AX vào mảng byte word – Đích (ES:DI) • Tăng Giảm DI – phụ thuộc DF • Thường sử dụng có tiền tố REP số lần lặp CX Ví dụ: arr dw 200 dup (?) mov ax,50A0h mov di,offset arr mov cx,200 cld AX 50 A0 rep stosw A0 50 A0 50 arr DI Nạp String • LODSB, LODSW – Byte word (DS:SI) copy vào AL AX – SI tăng giảm giá trị phụ thuộc DF • Thường dùng với STOSx vòng lặp để xử lý phần tử mảng Ví dụ: mov di, offset b mov si, offset a mov cx,30 cld lp: lodsb and al,0DFh stosb loop lp Quét String SCASB, SCASW • So sánh AL AX với byte word tạI (ES:DI) tự động tăng giảm DI • Lệnh ảnh hưởng đến cờ trạng thái – Tuỳ theo kết so sánh – Dùng vòng lặp REPs • REPZ, REPE, REPNZ, REPNE Ví dụ arr db 'abcdefghijklmnopqrstuvwxyz' mov di, offset arr mov cx,26 cld mov al,target repne scasb jne nomatch So sánh String CMPSB, CMPSW • So sánh byte word (DS:SI) với byte word tạI (ES:DI), tác động đến cờ tăng giảm SI DI • Thường dùng để so sánh hai mảng với Ví dụ mov si, offset str1 mov di, offset str2 cld mov cx, 12 repe cmpsb jl str1smaller jg str2smaller ;the strings are equal - so far ;if sizes different, shorter string is less Nhóm lệnh hỗn hợp - Các lệnh Lập/Xoá trực tiếp cờ: STC, CLC STD, CLD STI, CLI - Lệnh NOP (No Operation): Không làm gì!!! - Lệnh NOP thường dùng vòng lặp tạo trễ (delay)bằng phần mềm - Các lệnh Nhập/Xuất liệu cổng I/O IN OUT Lệnh IN - Nếu Địa cổng Nhỏ FFh: IN Acc, Địa cổng - Trong đó: Acc AL AX - Nhập liệu từ cổng vào Acc - Nếu Địa cổng Lớn FFh: MOV DX, Địa cổng IN Acc, DX - Trong đó: Acc AL AX - Nhập liệu từ cổng vào Acc Lệnh OUT - Nếu Địa cổng Nhỏ FFh: OUT Địa cổng, Acc - Trong đó: Acc AL AX - Xuất liệu từ Acc cổng - Nếu Địa cổng Lớn FFh: MOV DX, Địa cổng OUT DX, Acc - Trong đó: Acc AL AX - Xuất liệu từ Acc cổng Tóm tắt chương - Tính tương thích Cấu trúc ghi vi xử lý họ x86 - Tính tương thích Tập lệnh vi xử lý họ x86