1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Bài giảng Kỹ thuật Vi xử lý: Chương 3 - Nguyễn Thị Quỳnh Hoa

131 9 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Chương 3
Tác giả Nguyễn Thị Quỳnh Hoa
Định dạng
Số trang 131
Dung lượng 1,34 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài giảng Kỹ thuật Vi xử lý: Chương 3 Họ vi xử lý 8088 và 80x86, cung cấp cho người học những kiến thức như: Nguyên lý hoạt động của một bộ vi xử lý; Cấu trúc của bộ vi xử lý; Kiến trúc và hoạt động của 8088;... Mời các bạn cùng tham khảo!

Trang 1

quynhhoa4484@gmail.com

Trang 2

Chương 3 :

Trang 4

1.1.Nguyên lý hoạt động của một bộ

VXL

Trang 5

Cấu trúc của bộ VXL

Trang 6

Bộ nhớ

• Gồm : Bộ nhớ trong và bộ nhớ ngoài

• Nhiệm vụ:

– Lưu trữ lệnh

– Lưu trữ dữ liệu

Trang 7

Bộ nhớ trong

• Gồm : ROM và RAM

mạch điện để thể hiện các trạng thái "1" hay "0" Ðặc điểm của ROM là thông tin vẫn tồn tại thường xuyên ngay cả khi

mất điện hoặc tắt máy

liệu để CPU có thể truy cập nhanh chóng

Trang 8

Hệ thống BUS

• Bus địa chỉ

• Bus dữ liệu

• Bus điều khiển

Trang 9

Bus địa chỉ

• Là công cụ để CPU có thể xác định và nhận ra vị trí của các thiết bị trong hệ thống

• Có 20 đường dây từ A0 đế n A19

Trang 10

Bus dữ liệu

• Dùng để chuyển thông tin giữa bộ VXL với các thiết bị khác trong hệ thống

• 8088 có 8 bit.8086 có 16 bit

• Sử dụng kỹ thuật Multiplex các đường dây của Bus dữ liệu và Bus địa chỉ

Trang 11

Bus điều khiển

• Là tập hợp các đường dây điều khiển dù ng để điều khiển các tác vụ của hệ thống

• Các tín hiệu điều khiển điển hình :

MEMR,MEMW,IOR,IOW

• Ví dụ về quá trình đọc 1 byte từ bộ nhớ

Trang 12

Xử lý lệnh của các VXL trước 8086/8088

• Lấy lệnh từ bộ nhớ

• Giả i mã lệnh

• Thực hiện lệnh

– Lấy các toán hạng từ bộ nhớ (nếu có)– Lưu trữ kết quả

Trang 13

1.2.Kiến trúc và hoạt động của 8088

• CPU 8088 có 2 khối chính:

– Khối phối gh é p bus (Bus interface unit, BIU): BIU chịu tr á ch nhiệm đưa địa chỉ ra bus v à trao đổi dữ liệu với bus.

– Khối thực hiện lệnh (Execution unit, EU): EU

cung cấp thông tin về địa chỉ cho BIU để khối

n à y đọc lệnh v à dữ liệu, còn EU sẽ giải mã lệnh v à

thực hiện lệnh.

• Hai thành phần BIU và EU làm việc đồng

thời và liên hệ với nhau qua đệm lệnh

Trang 14

Cơ chế Pipelining

Trang 16

BIU (Bus Interface Unit)

• Phá t ra các tín hiệu địa chỉ đến bộ nhớ và các cổng I/O thông qua A-Bus

• Đọc mã lệnh từ bộ nhớ qua D-Bus

• Đọc dữ liệu từ bộ nhớ qua D-Bus

• Ghi dữ liệu vào bộ nhớ qua D-Bus

• Đọc dữ liệu từ các cổng I qua D-Bus

• Ghi dữ liệu ra các cổng O qua D-Bus

Trang 17

EU (Execution unit)

• Bao gồm 2 khối :

• CU (Control Unit) : Giải mã lệnh để tạo ra các tín hiệu điều khiển nhằm thực hiện lệnh đã được giải mã

• ALU (Arithmetical Logical Unit ) : Thực hiện các thao tá c khác nhau đối với các

toá n hạng của lệnh

Trang 18

Đơn vị số học và logic (ALU)

• Mô hình kết nối của ALU

Trang 19

Đơn vị điều khiển CU

• Mô hình kết nối CU

Trang 20

Cá c thông tin kết nối đến CU

• Clock

• Mã lệnh

• Cá c trạng thái cờ

• Cá c tín hiệu đk từ BUS đk

• Cá c tín hiệu bên trong CPU

• Cá c tín hiệu bên ngoài CPU

Trang 21

Qua ́ trình nhận và thực thi lệnh

1 BIU xuất nội dung của thanh ghi con trỏ

lệnh IP (Intruction Pointer) ra bus địa chỉđể chọn byte/word đọc vào BIU

2 IP tăng lên 1

3 Lấy lệnh từ BIU đưa vào hàng đợi lệnh (là

thanh ghi lưu trữ theo FIFO)

4 Thực hiện lệnh lấy ra từ hàng đợi

5 Quay trở lại quá trình BIU nhận 1 lệnh mới

Trang 23

2.Thanh ghi

• Thanh ghi đa năng

• Thanh ghi con trỏ và chỉ số

• Thanh ghi quản lý đoạn

• Thanh ghi cờ trạng thái

Trang 24

Cấu trúc thanh ghi của họ 8088

Trang 25

Cấu trúc thanh ghi của họ x86

Trang 26

Các thanh ghi đa năng

Trang 27

• Các thanh ghi đa năng:

– AX, BX, CX, DX: 16 bít

– Các thanh ghi có thể tách ra thành 2 thanhghi ghi 8 bít cao và 8 bít thấp để làm việc độclập

Trang 28

– Thanh ghi dữ liệu

– Dùng để chứa toán hạng, kết quả phép toán * /

– Chứa địa chỉ để in/out

Các thanh ghi đa năng

Trang 29

Các thanh ghi đoạn

Trang 30

• Dài 16 bit và không chia làm 2 phần như thanh ghi

đa năng

• Được sử dụng là địa chỉ cơ sở của các lệnh trong

chương trình, stack và dữ liệu

– CS : chứa địa chỉ bắt đầu của chương trình

– DS : chứa địa chỉ của các biến khai báo trong

chương trình– SS : chứa địa chỉ của bộ nhớ Stack dùng trong

chương trình– ES : chứa địa chỉ cơ sở bổ sung cho các biếnbộ nhớ

Trang 31

Các thanh ghi đoạn

• Bộ nhớ 8086/88 đánh địa chỉ theo byte ,có 20 đường địa chỉ ?quản lý bn địa chỉ khác nhau -> chia thành các đoạn để quản lý

• Tại 1 thời điểm 8086/88 quản lý được 4 đoạn:

– Đoạn mã: Thanh ghi đoạn CS (Code Segment)– Đoạn dữ liệu: Thanh ghi đoạn DS (Data

Trang 32

• Các thanh ghi đoạn chỉ ra địa chỉ đầu của mỗi

đoạn trong bộ nhớ Dung lượng của mỗi đoạn là64KB

• Việc thay đổi giá trị các thanh ghi đoạn làm cho

các đoạn có thể dịch chuyển một cách linh hoạttrong không gian 1MB bộ nhớ

• Các đoạn có thể tách rời nhau hoặc nằm trùm

lên nhau

Các thanh ghi đoạn

Trang 33

Các thanh ghi đoạn

• Nội dung của thanh ghi đoạn sẽ xác định ô nhớđầu tiên trong đoạn, địa chỉ này gọi là địa chỉ cơ

sở (địa chỉ đoạn Segment) Các ô nhớ tiếp theođược xác định bằng cách lấy địa chỉ cơ sở cộngthêm 1 giá trị gọi là địa chỉ lệch ( Offset) Địachỉ lệch cũng được xác định bởi một thanh ghi

khác gọi là thanh ghi offset

Trang 34

Các thanh ghi đoạn

• CS : xác định đoạn lệnh-nơi chứa chương trình

được thi hành

• DS : xác định đoạn dữ liệu-nơi chứa chương trìnhđược thi hành

• SS : xác định đoạn Stack-vùng làm việc tạm thời

dùng để theo dõi các tham số và các địa chỉ đang

được chương trình hiện hành và sử dụng

• ES : trỏ đến đoạn thêm thường được sử dụng để bổ xung cho đoạn dữ liệu

Trang 35

Các thanh ghi đoạn

1MB

Segment Register Offset Register

Trang 36

C á c thanh ghi con trỏ và chỉ số

Trang 37

• Hai thanh ghi chỉ số:

– Chỉ số nguồn SI: Trỏ vào 1 phần tử đoạn

C á c thanh ghi con trỏ và chỉ số

Trang 38

Các thanh ghi con trỏ và chỉ số

• C ó 3 thanh ghi con trỏ v à 2 thanh ghi chỉ số 16

b í t Trừ thanh ghi IP, c á c thanh ghi n à y đều c ó

thể d ù ng như thanh ghi đa năng.

• Ứng dụng ch í nh của mỗi thanh ghi l à được ngầm định như thanh ghi lệch cho c á c đoạn tương ứng.

• Ba thanh ghi con trỏ:

– Con trỏ lệnh IP(Instruction Pointer): Trỏ v à o lệnh tiếp theo sẽ được thực hiện nằm trong

đoạn mã CS Địa chỉ đầy đủ của lệnh tiếp theo CS:IP.

– Con trỏ cơ sở BP: Trỏ v à o một phần tử của

ngăn xếp (SS: BP)

– Con trỏ ngăn xếp SP: Trỏ v à o đỉnh ngăn xếp (SS: SP)

Trang 40

16 bít

8 bít Bus D

8086 8088

Trang 42

Thanh ghi cờ

• Cờ C (Carry Flag): C = 1 khi c ó nhớ

hoặc mượn bit

• Cờ P (Parrity ): kiểm tra t í nh chẵn lẻ trong kết quả thực hiện ph é p to á n P

=1 nếu kết quả c ó số bit 1 l à chẵn

• Cờ A(auxiliary carry flag) cờ nhớ phụ

Để l à m việc với số dạng mã BCD

Trang 44

Thanh ghi cờ

• Cờ điều khiển

• Cờ T (Trap Flag):T=1 th ì CPU l à m việc ở chế độ từng lệnh

• Cờ I (Interrupt Flag): I = 1 th ì CPU cho

ph é p c á c yêu cầu ngắt (che được) được

t á c động

• Cờ D(Dirrection Flag): D=1 th ì CPU l à m việc với xâu k í tự theo chiều từ phải sang

tr á i

Trang 45

Thanh ghi cờ

Trang 46

• Dạng của lệnh

• Mã máy

• Mã gợi nhớ

Trang 47

*.asm *.obj

100010 … MOV đích, gốc

Trang 48

Các chế độ địa chỉ

• Bộ VXL 8088 v à họ 80x86 c ó 7 chế độ địa chỉ:

– Chế độ địa chỉ thanh ghi (register addressing mode)

– Chế độ địa chỉ tức th ì (immediate addressing mode)

– Chế độ địa chỉ trực tiếp (direct addressing mode)

– Chế độ địa chỉ gi á n tiếp qua thanh ghi (register indirect

Trang 49

Hằng số

Trang 50

2.Mod thanh ghi

• MOV AX, BX

• ADD AL, CL

Trang 51

3.Mod trực tiếp

• MOV Al, [1053]

• ADD [5307h], AL

Trang 52

4.Mod gián tiếp thanh ghi

• MOV AL, [BX]

• MOV [SI], CL

Trang 53

5.Mod tương đối cơ sở

• MOV CX, [BX]+10

• MOV CL, [BP]+5

Trang 54

6.Mod tương đối chỉ số

• MOV AX,[SI]+10

• MOV AL, [DI+5]

Trang 55

7.Mod tương đối chỉ số cơ sở

• MOV AX, [BX]+[SI]+8

Trang 56

DS DS SS SS

[BX] + [DI] + Disp [BX] + [SI] + Disp [BP] + [DI] + Disp [BP] + [SI] + Disp Tương đối chỉ số cơ sở

7

DS SS

[DI] + Disp [SI] + Disp Tương đối chỉ số

6

DS SS

[BX] + Disp [BP] + Disp Tương đối cơ sở

5

DS DS DS

Trực tiếp

3

Data Tức thi

2

Reg Thanh ghi

1

Đoạn ngầm định Toán hạng

Chế độ địa chỉ STT

Trang 57

Đoạn ngầm định

SP, BP DI

SI, DI, BX IP

Thanh ghi lÖch

SS ES

DS CS

Thanh ghi ®o¹n

Trang 58

Thay đổi đoạn mặc định

• MOV AH,[BP]; SS:BP->AH

• MOV AH,CS:[BP]; CS:BP->AH

Trang 59

Ma ̃ lệnh, mã máy

• Một lệnh của VXL có tối đa 6 byte

– Opcode

– Direction

Trang 60

Ma ̃ lệnh, mã máy

• Một lệnh của VXL có tối đa 6 byte

– Word

– REG : sử dụng 2 hoặc 3 bit

Trang 61

Ma ̃ lệnh, mã máy

• Mode

• R/M

Trang 62

Ma ̃ lệnh, mã máy

• Viết dưới dạng mã lệnh cho dòng lệnh sau :

– MOV CL,[BX]

– MOV AH,2Ah

– MOV CX,[BX]+[SI]+DATA

Trang 63

Tập lệnh của VXL

8088/80x86

• Nhóm lệnh dịch chuyển

• Nhóm lệnh xử lý dữ liệu

• Nhóm lệnh điều khiển

Trang 64

Nho ́m lệnh dịch chuyển

• Nhóm lệnh chuyển dữ liệu

• Nhóm lệnh chuyển địa chỉ

• Nhóm lệnh chuyển dữ liệu qua cổng

Trang 65

A.Nhóm lệnh chuyển dữ liệu

Trang 66

– Ko thay đổi cờ

– Ko chuyển trực tiếp dữ liệu giữa 2 ô nhớ

– Ko chuyển trực tiếp một hằng số vào 1 thanh ghi đoạn

– Ko dùng CS làm toán hạng đích

– Ko chuyển trực tiếp giữa 2 thanh ghi đoạn

Trang 67

– Toán hạng là mem hoặc reg

– Không ảnh hưởng đến các cờ– Không phải là thanh ghi đoạn

Trang 69

– Nội dung reg không thay đổi

– Các cờ không bị thay đổi

Trang 71

B.Nhóm lệnh chuyển địa chỉ

• LEA

• LDS

• LES

Trang 72

• Load Effective Address

• LEA reg16,mem16

• Chú ý :

– Dst có thể là : BX,CX,DX,BP,DI,SI

– Src có thể là : tên biến trong DS hoặc một ô nhớ cụ thể

– Các cờ không bị thay đổi

• LEA BX,[1000h]

• BX<-[1001h,1000h]

Trang 75

C.Nhóm lệnh chuyển dữ liệu

qua cổng

• IN

• OUT

Trang 76

• Input a byte or a word from a port

• IN Acc,port

• Trong đó :

– Acc : thanh chứa

– Port : dữ liệu của cổng có địa chỉ port, nó là địa chỉ 8 bit của cổng

– Các cờ không bị thay đổi

Trang 77

– Acc là thanh chứa

– Port là địa chỉ cổng

– Các cờ không bị thay đổi

Trang 78

Nho ́m lệnh tính toán số học

• Lệnh cộng

• Lệnh trừ

• Lệnh nhân

• Lệnh chia

Trang 88

• Chia cho 0

• Thương > 256 (src8)

• Thương > 65536 (src16)

Trang 89

• Chia cho 0

• Thương > 256 (src8)

• Thương > 65536 (src16)

Trang 90

Nho ́m lệnh logic

• AND

• OR

• XOR

• NOT

Trang 91

– Dst,Src phải có cùng độ dài và ko đồng thời là 2

ô nhớ,2 thanh ghi đoạn

– Các cờ bị thay đổi : CF,OF,SF,ZF,PF

– Thường dùng để che đi/giữ lại những vị trí cần

che đi/giữ lại tương ứng.

Trang 92

– Dst,Src phải có cùng độ dài và ko đồng thời là 2

ô nhớ,2 thanh ghi đoạn

– Các cờ bị thay đổi : CF,OF,SF,ZF,PF

– Thường dùng để một vài bit nào đó của toán

hạ ng lên 1

Trang 93

– Dst,Src phải có cùng độ dài và ko đồng thời là 2

ô nhớ,2 thanh ghi đoạn

– Các cờ bị thay đổi : OF,SF,ZF,PF

– Thường dùng để trả về 0 một thanh ghi nào đó.

Trang 94

– Dst,Src phải có cùng độ dài và ko đồng thời là 2

ô nhớ,2 thanh ghi đoạn

– Các cờ không bị thay đổi

– Thường dùng đảo bit (lấy bù 1) một thanh ghi

nà o đó.

Trang 95

Nho ́m lệnh dịch và quay

Trang 96

• Shift Arithimetically/Logic left

• SAL/SHL Dst,CL

• Với SAL, thì msb ko đổi sau khi thực hiện lệnh

• Có ảnh hưởng tới các cờ : ZF,OF,CF,PF và SF(đối với SHL)

0

CF

LÖnh SHL

Trang 98

• Giống với SAL/SHL nhưng là dịch phải

Trang 101

• Quay trái, quay phải qua cờ nhớ

• Thực hiện giống ROL/ROH nhưng CF có tham gia vào vòng quay

Trang 102

Nho ́m lệnh so sánh

• CMP

Trang 103

– Sau lệnh, toán hạng không thay đổi

– Chỉ thay đổi các cờ : AF,CF,OF,PF,ZF,SF

Trang 104

Nho ́m lệnh xử lý với chuỗi

• MOVS :MOVSB, MOVSW

• CMPS :CMPSB, CMPSW

• SCAS :SCASB, SCASW

• LODS :LODSB, LODSW

• STOS :STOSB, STOSW

• REP

Trang 110

• REP lệnh xử lý chuỗi

• REP MOVSB/MOVSW

STOSB/STOSW lặp lại cho đến khi CX=0

Trang 111

Vi ́ dụ

• Chép 80h byte từ địa chỉ

3000h:1000h đế n địa chỉ 4800h:C200h

Trang 112

Ca ́c lệnh điều khiển chương trình

• Nhóm lệnh dịch chuyển thanh ghi cờ

• Lệnh nhảy

• Lệnh vòng lặp

• Lệnh cho chương trình con

Trang 113

Nho ́m lệnh chuyển cờ hiệu

• LAHF

• SAHF

• PUSHF

• POPF

Trang 115

• Store AH to Flag

• Chuyển các bit 7,6,4,2 và 0 của thanh ghi AH vào các cờ SF,ZF,AF,PF và CF

Trang 116

PUSHF và POPF

• PUSHF : chuyển thanh ghi cờ vào Stack.

• POPF : lấy dữ liệu từ Stack chuyển và o thanh ghi cờ.

Trang 117

Lệnh lặp

Trang 119

– Dừng LOOP khi CX=0 hoặc ZF=0

– Các cờ không bị thay đổi

Trang 120

– Dừng LOOP khi CX=0 hoặc ZF=1

– Các cờ không bị thay đổi

Trang 121

Ca ́c lệnh nhảy

• Nhảy không điều kiện

• Nhảy có điều kiện

Trang 122

Nha ̉y không điều kiện

• JMP Label

– JMP short Label (-128đến 127)

– JMP near Label (-32768đến 37767)– JmP reg16

– JMP mem16

– JMP mem32

– JMP far Label

Trang 123

Nha ̉y không điều kiện

• short Label :IP <- IP+offset

• near Label :IP <- địa chỉ

• Reg16 :IP <- reg16

• Mem16 :IP <- [mem+1,mem]

• Mem32 :CS <- [mem+3,mem+2]

IP <- [mem +1,mem]

• far Label :CS <- PTR segment

IP <- PTR offset

Trang 124

Nha ̉y có điều kiện

• Jxxx Label

• Nếu thỏa đk thì nhảy tương đối

ngược lại sẽ không làm gì cả (qua lệnh kế)

Trang 125

Nha ̉y có điều kiện

• Khi thực hiện so sánh không dấu

Trang 126

Nha ̉y có điều kiện

• Khi thực hiện so sánh các số có dấu

Trang 127

Ca ́c lệnh cho chương trình con

• CALL

• RET

Trang 128

• CALL thủ tục

• Mô tả : Chuyển hoạt động của CTC sang ctc

– Gọi gần : ctc nằm trong cùng một đoạn mã với CTC (CALL near)

– Gọi xa : ctc không nằm trong cùng mộtđoạn mã với CTC (CALL far)

– Các cờ bị thay đổi : AF,CF,OF,PF,ZF,SF

Trang 129

– Địa chỉ lệch của ctc -> IP

– Khi gặp RET thì VXL lấy lại địa chỉ trở về

IP từ Stack

– SP+2->SP

Trang 130

– Địa chỉ lệch của ctc -> IP

– Khi gặp RET thì VXL lấy lại địa chỉ trở về IP từ Stack

– SP+2->SP,lấy lại địa chỉ IP

– SP+2->SP,lấy lại địa chỉ CS

Trang 131

Một số lệnh điều khiển khác

• CLC :Clear the Carry flag

• CLD :Clear the Direction flag

• CLI :Clear the Interrupt flag

• CMC :Complement the Carry flag

• HLT :Halt processing

• INT :Interrupt

Ngày đăng: 21/10/2022, 19:16

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm