1. Trang chủ
  2. » Cao đẳng - Đại học

Điện tử viễn thông chuong 2 cau truc va hoat dong cua 8086 khotailieu

83 146 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

Định dạng
Số trang 83
Dung lượng 1,49 MB

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

Nội dung

 BIU tạo ra địa chỉ vật lý cung cấp ra bên ngoài, bằng quá trình tính toán từ các địa chỉ logic quản lý trong chương trình.. Dữ liệu truyền với CPU sẽ được chuyển qua các c

Trang 1

Nguyên tắc làm việc

của Intel 8088/8086

Phạm Thế Duy (ptduy@yahoo.com)

Trang 2

SƠ ĐỒ KHỐI 8088/8086

BUS Interface

IPSSDSCSES

6 bytequeue

Execution Unit Control System

ALU

FlagsSP

+

EUBIU

EUExternal BUS

Hình 2.14: Sơ đồ khối vi xử lý 8086/8088

Trang 3

Các khối chức năng

 Sơ đồ khối của 8088/8086 bao gồm hai khối chính:

 BIU (Bus Interface Unit): Thực hiện tất cả các giao tiếp với thế giới bên ngoài

 EU (Execution Unit): Giải mã và thực hiện các

lệnh được lấy vào từ bộ nhớ

Trang 4

Khối giao tiếp BUS (BIU)

 BU cung cấp các tín hiệu địa chỉ, dữ liệu và điều khiển để truy cập các bộ nhớ và vào ra Khối này cũng cho phép giao tiếp với bộ đồng xử lý hoặc các bộ vi xử lý khác

 Chức năng quan trọng nhất của BU là tự động kích hoạt quá trình lấy lệnh từ bộ nhớ bằng bộ tiền truy cập lệnh (Prefetch)

BU còn có chức năng cho phép quá trình lấy lệnh từ bộ nhớ thực hiện song song với các quá trình khác nhớ hàng đợi lệnh

6 byte (Queue)

 BIU tạo ra địa chỉ vật lý cung cấp ra bên ngoài, bằng quá trình tính toán từ các địa chỉ logic quản lý trong chương trình Các địa chỉ mà BIU tạo ra cung cấp tới các bộ cài (Address Latch) và sẽ được định thời cung cấp ra bên ngoài tại các thời điểm thích hợp Dữ liệu truyền với CPU sẽ được chuyển qua các cổng đệm hai chiều (Data Transceivers).

Trang 5

Khối giải mã lệnh (IU)

lệnh đã lấy trước đó giải mã và chuyển tới hàng đợi lệnh đã giải mã (Decoded Istruction queue) để

EU thực hiện.

có thể mã hoá ngắn nhất có thể, IU sẽ tạo ra các tín hiệu điều khiển cần thiết từ các mã lệnh này

nhớ của hệ thống sẽ yều cầu ít hơn, thời gian lấy lệnh sẽ được giảm ngắn.

Trang 6

Khối thực hiện lệnh (EU)

 Trước hết EU giải mã các lệnh từ hàng đợi lệnh bằng khối control system, sau đó khối này cung cấp các tín hiệu cần thiết điều khiển các khối khác trong CPU để thực hiện lệnh Với các lệnh cần giao tiếp với bên ngoài nó sẽ thực hiện thông qua BIU.

 Các khối chức năng của EU bao gồm:

- Bộ điều khiển (Control System) thực hiện việc điều khiển việc thực hiện các lệnh.

- ALU là khối thực hiện các phép toán số học logic, cấu trúc của ALU thông thường có hai ngõ vào nhận hai toán hạng và một ngõ

ra cung cấp kết quả

 Các thanh ghi sử dụng làm nơi lưu trữ dữ liệu sử dụng trong các phép tính và các giá trị địa chỉ cho phép EU lấy các toán hạng từ bên ngoài.

Trang 7

Các thanh ghi của 8088/8086

CX, DX, DI, SI, BP, SP.

SS.

Trang 8

Các thanh ghi đa năng (16 bit)

Trang 9

Các thanh ghi đa năng

 AX (Accumulator) thanh chứa cho lệnh nhân và chia.

MUL BL ; AX = AL * BL

 BX (Base): Sử dụng làm thanh ghi địa chỉ cơ sở.

MOV AL,[BX] ; chép nội dung ô nhớ BX giữ địa chỉ.

MOV AH,[BX+03] ; chép nội dung ô nhớ có địa chỉ [BX+3] vào AH.

MOV CH,[BX+DI+9]

 CX (Counter): Sử dụng làm bộ đếm số vòng lặp.

LOOP N ;trừ CX đi 1, lặp lại nhãn N khi CX ≠0.

 DX (Data): Làm thanh ghi chứa dữ liệu trong các lệnh nhân chia

16 bit Làm thanh ghi giữ địa chỉ cổng vào ra.

OUT DX,BL ; chuyển BL ra cổng có địa chỉ DX

Trang 10

Các thanh ghi đa năng (tiếp)

 DI (Destination Index): thanh ghi chỉ số đích – giữ địa chỉ đích dữ liệu trong các lệnh về chuỗi Làm thanh ghi địa chỉ.

Trang 11

 Một số lệnh tác động tới vùng nhớ ngăn xếp như:

push, pop, call, ret, và nhiều lệnh khác nữa.

 Ngăn xếp là nơi tốt nhất để lưu trữ các giá trị tạm thời vào bộ nhớ.

Trang 12

Chứa dữ liệu vào ngăn xếp

Từ ‘stack-ngăn xếp’ được sử dụng là do cách lưu trữ và lấy lại

dữ liệu trong vùng nhớ ngăn xếp cũng giống như việc sử dụng một ngăn xếp trong thực tế.

Có thể thực hiện ngăn xếp bằng các hộp Để tạo thành ngăn xếp trước hết đặt hộp A, sau đó tới B và cuối cùng là C.

B

A B C

Chú ý rằng chúng ta chỉ có thể lấy được hộp xếp vào ngăn xếp cuối cùng (Đỉnh ngăn xếp - Top of Stack – TOS) Như vậy trình tự phục hồi lại dữ liệu theo trình tự ngược lại khi xếp vào ngăn xếp (C tới B và cuối cùng là A).

Trang 13

Chứa dữ liệu vào ngăn xếp

bằng lệnh PUSH

 Thanh ghi con trỏ ngăn xếp SP (Stack Pointer) được sử dụng để truy cập ngăn xếp SP luôn trỏ tới giá trị cuối cùng được cất vào ngăn xếp.

 Lệnh PUSH chứa dữ liệu vào đỉnh ngăn xếp.

PUSH AX ; SP= SP-1, M[SP]  AX

 Lệnh “push AX” tương ứng với:

SUB SP, 1 ; giảm SP đi 1

MOV [SP], AX ; ghi giá trị của AX vào đỉnh ngăn xếp

 Các lệnh truy cập ngăn xếp có thể thực hiện với 16

hoặc 32 bit.

Trang 14

Quan sát hoạt động lệnh

Địa chỉ cao

Địa chỉ thấp

 SP

Trước lệnh PUSH AX

lastval ue ahal

Địa chỉ cao

Địa chỉ thấp

 SP (SP mới =

SP cũ -1)

Sau lệnh PUSH AX

Mỗi ô nhớ 16 bit, ngăn xếp được truy cập 16 hoặc 32 bit.

Trang 15

Nhiều lệnh PUSH liên tiếp

lastval ue

Địa chỉ cao

Địa chỉ thấp

 SP

Trước

lastval ue ax bx cx

Địa chỉ thấp

Trang 16

Đọc dữ liệu trong ngăn xếp bằng lệnh POP

Lệnh POP phục hồi một giá trị từ ngăn xếp:

POP AX ; AX  M[SP] , SP= SP+1

Lệnh “pop AX” tương đương với các lệnh:

mov AX, [SP] ; đọc giá trị từ đỉnh ngăn xếp add sp, 1 ; tăng SP lên 1.

Trang 17

Hoạt động của lệnh POP

FF65 23AB

Địa chỉ cao

Địa chỉ thấp

 SP

Trước POP AX

FF65 23AB

Trang 18

Hoạt động nhiều lệnh POP liên tiếp

FF65 23AB 357F D21B 38AC 23F4

Trang 19

Ngăn xếp Overflow,

Underflow

ngăn xếp cuối cùng sẽ lớn hơn khoảng dung lượng dành cho nó.

Có thể dữ liệu ngăn xếp sẽ ghi tràn qua vùng nhớ chứa

mã lệnh hoặc vùng nhớ chứa dữ liệu khác (không phải

ngăn xếp).

Việc này gọi là tràn trên ngăn xếp (OVERFLOW).

ngăn xếp, con trỏ ngăn xếp có thể tăng lớn hơn giá trị điểm khởi động ngăn xếp Điều này được gọi là tràn dưới (UNDERFLOW).

xếp bằng đúng số dữ liệu đã cất vào ngăn xếp.

Trang 20

Tổng kết về ngăn xếp

 Là nơi chứa dữ liệu tạm thời.

 Đoạn và con trỏ ngăn xếp SS:SP

 Push và Pop (LIFO-Last In Fist Out)

 SP : Giữ địa chỉ đỉnh ngăn xếp

 Sau lệnh PUSH con trỏ SP sẽ giảm.

Trang 21

Các thanh ghi đoạn (16 BIT)

Chế độ địa chỉ thực:

Physical address = Segment * 10H +offset

Trang 22

Phân đoạn bộ nhơ

CS ES SS DS

Data Segment

Stack Segment

Extra Segment

Code Segment

System Memory

00000h FFFFFh

Trang 23

Thanh ghi cờ

*

* PA

*ZS

T

DOPL

* NT IO

Cờ nhớ CF (Carry Flag).

CF=1 khi cộng tràn, trừ mượn.

Cờ chẵn lẻ PF (Parity Flag).

PF = 1 khi số bit 1 là một số chẵn.

Cờ dấu SF ( Sign Flag).

SF =1 khi kết quả có bit cao nhất là 1

Cờ tràn OF (Overflow Flag)

OF = 1 khi tràn bit 1 từ MSB-1 qua MSB.

Cờ ZERO ZF (Zero Flag).

ZF = 1 khi kết quả bằng 0.

Cờ nhớ phụ AF (Auxiliary Carry Flag ).

AF=1 khi tràn bit 1 từ D3 qua D4.

Trang 24

Các cờ điều khiển trong thanh ghi cờ.

Cờ định hướng DF (Direction Flag).

Xác định hướng địa chỉ của các lệnh xử lý chuỗi

Cờ ngắt IF : (Interrupt Flag).

IF=1 cho phép ngắt.

Cờ bẫy TF: (Trap Flag).

Sử dụng chạy từng bước để sửa sai chương trình.

Cờ nhiệm vụ lồng nhau NT (Nested Tast).

Cho phép tiến triển hoặc chuyển nhiệm vụ.

Cờ chỉ thị mức đặc quyền vào ra (IOPL).

Chỉ thị mức đặc quyền của nhiệm vụ đang thực hiện.

Trang 25

Các thanh ghi đặc biệt.

 Thanh ghi con trỏ lệnh: (IP - Instruction Pointer).

 Giữ địa chỉ độ dời của vùng nhớ chứa mã lệnh.

 Tự động tăng lên 1 khi đọc xong một ô nhớ lệnh.

 Khi điều khiển chương trình IP được thay đổi giá trị mới, (các lệnh CALL giá trị hiện hành sẽ được cất vào đỉnh ngăn xếp trước khi nạp giá trị mới Lệnh RET phục hồi giá trị của IP).

 Thanh ghi trạng thái máy: (MSW – Machine Status Word)

 TS (Task Set): là bit chuyển nhiệm vụ TS=1 1 xảy ra việc chuyển nhiệm vụ

 EM (Emulate Processor Extention): Cho phép mô phỏng bộ đồng xử

lý toán học.

 MP (Monitor Coprocesor Extention): Cho biết hệ thống có bộ đồng

xử lý toán học đang làm việc.

 PE (Protect Mode Enable): Cho phép chế độ bảo vệ, khi bit này

được lập 80286 chuyển qua hoạc động ở chế độ bảo vệ Khi đã thiết lập, chỉ khi RESET bit này mới được xoá.

MP

TS EM PE

Trang 26

Nguyên tắc làm việc của 8086

Trang 27

Kết nối BUS hệ thống

8284

RES

DATA BUS :D0-D15

MN/MX IO/M

RESET RD READY WR

ALE

AD0-AD15 A16 -A 19

DT/R DEN

8086

CLK

DIR G

WR RD

WE OE ADDRESS BUS:A0-19

Cho phép giải

mã bộ nhớ Cho phép giải mã vào ra

I/O MEMORY

Vcc Vcc

Latch

Transceiver

Hình 5.3: Sơ đồ hoạt động trong Min Mode của 8086/8088

Trang 28

ĐỌC BỘ NHƠ

 Đọc bộ nhớ: Memory read.

 Cấp địa chỉ A0 – 19, cấp ALE – Địa chỉ qua bộ chốt (Latch) tới bộ nhớ.

 RD\ =0 , dữ liệu từ bộ nhớ đưa tới Transceiver.

 DEN\=0, DT/R=0, dữ liệu qua Transceiver vào CPU.

Trang 29

Address Access Time (TAVDV)

ALE

T1 CLOCK

AD7 - AD0 A15 - A8 A19/S6 - A16/S3

TCLAV

TDVCL

Trang 30

GHI BỘ NHƠ

 Ghi bộ nhớ: Memory write.

 Cấp địa chỉ A0 – 19, cấp ALE =1 – Địa chỉ qua bộ chốt (Latch) tới bộ nhớ.

 Cấp dữ liệu (ALE=0 , Không ảnh hưởng tới địa

chỉ) DEN\=0, DT/R=1, dữ liệu qua Transceiver tới bộ nhớ.

 WR\ =0 , dữ liệu được ghi vào bộ nhớ.

Trang 31

Memory Setup Time

(TDVWH)

ALE

T1 CLOCK

AD7 - AD0 A15 - A8 A19/S6 - A16/S3

Trang 32

Kết nối BUS hệ thống

8284 RES

DATA BUS

MWTC MRDC

INTA AIOWC IOWC IORC AMWC MN/MX

RESET

AD0-AD15 A16 -A 19

8086

CLK

DIR G

WR RD

WE OE

S1 S0 S2

ADDRESS BUS

Cho phép giải mã bộ nhớ Cho phép giải mã vào ra

I/O MEMORY

S0 S2

Trang 33

Các mạch đệm cài BUS

74LS373

Q0Q1Q2Q3Q4Q5Q6Q7

D0D1D2D3D4D5D6D7OELE

Trang 34

HOẠT ĐỘNG CỦA VI XỬ LY

 Chu kỳ máy - Machine cycle

 Lấy lệnh - Fetch, Giải mã lệnh - decode, Thực hiện lệnh - execute

 Định thời vi xử lý - Processor timing

 Chu kỳ BUS - Bus cycles

 Đọc bộ nhớ/vào ra - Memory / IO read

 Ghi bộ nhớ/ vào ra - Memory / IO write

Trang 35

Thực hiện việc lưu trữ dữ liệu

;Giả sử khi bắt đầu chương trình.

Trang 36

Bộ vi xử lý sẽ hoạt động như thế nào? How does the P works?

 Lấy lệnh - Fetch

 Tăng bộ đếm chương trình PC lên 1

Increment Program Counter (CS:IP) by 1

 Giải mã lệnh - Decode

 Thực hiện lệnh nếu cần.

Execute (if necessary)

Trang 37

A19 A0 :

D7 D0 :

CX BX AX

34CD AB12

1AB3 2000

0000 0023 3F1C

FCA1

SP

DX

1243 CS

SI

1000

0005 IP

5678 DI

Inst Queue

CS:IP

23 00000

00001

10000 10001 10002 10003 10004 10005 10006 10007 10008

95

: :

45 98 27 39 42 88 07 F4 8A

: :

20020 20021 20022 20023

FFFFD FFFFE FFFFF

29 12 7D 13

19 25 36

: :

: :

: :

: : A19

A0 :

D7 D0 :

RD

WR

FETCH

Trang 38

A19 A0 :

D7 D0 :

CX BX AX

34CD AB12

1AB3 2000

0000 0023 3F1C

FCA1

SP

DX

1243 CS

SI

1000

0005 IP

5678 DI

Inst Queue

1000:0005

23 00000

00001

10000 10001 10002 10003 10004 10005 10006 10007 10008

95

: :

45 98 27 39 42 88 07 F4 8A

: :

20020 20021 20022 20023

FFFFD FFFFE FFFFF

29 12 7D 13

19 25 36

: :

: :

: :

: : A19

A0 :

D7 D0 :

RD

WR

FETCH

Trang 39

A19 A0 :

D7 D0 :

CX BX AX

34CD AB12

1AB3 2000

0000 0023 3F1C

FCA1

SP

DX

1243 CS

SI

1000

0005 IP

5678 DI

Inst Queue

10005

23 00000

00001

10000 10001 10002 10003 10004 10005 10006 10007 10008

95

: :

45 98 27 39 42 88 07 F4 8A

: :

20020 20021 20022 20023

FFFFD FFFFE FFFFF

29 12 7D 13

19 25 36

: :

: :

: :

: : A19

A0 :

D7 D0 :

RD

WR

FETCH

Trang 40

A19 A0 :

D7 D0 :

CX BX AX

34CD AB12

1AB3 2000

0000 0023 3F1C

FCA1

SP

DX

1243 CS

SI

1000

0005 IP

5678 DI

Inst Queue

10005

LOW

23 00000

00001

10000 10001 10002 10003 10004 10005 10006 10007 10008

95

: :

45 98 27 39 42 88 07 F4 8A

: :

20020 20021 20022 20023

FFFFD FFFFE FFFFF

29 12 7D 13

19 25 36

: :

: :

: :

: : A19

A0 :

D7 D0 :

RD

WRHIGH

FETCH

Trang 41

A19 A0 :

D7 D0 :

CX BX AX

34CD AB12

1AB3 2000

0000 0023 3F1C

FCA1

SP

DX

1243 CS

SI

1000

0005 IP

5678 DI

00001

10000 10001 10002 10003 10004 10005 10006 10007 10008

95

: :

45 98 27 39 42 88 07 F4 8A

: :

20020 20021 20022 20023

FFFFD FFFFE FFFFF

29 12 7D 13

19 25 36

: :

: :

: :

: : A19

A0 :

D7 D0 :

RD

WRHIGH

FETCH

Trang 42

A19 A0 :

D7 D0 :

CX BX AX

34CD AB12

1AB3 2000

0000 0023 3F1C

FCA1

SP

DX

1243 CS

SI

1000

0005 IP

5678 DI

00001

10000 10001 10002 10003 10004 10005 10006 10007 10008

95

: :

45 98 27 39 42 88 07 F4 8A

: :

20020 20021 20022 20023

FFFFD FFFFE FFFFF

29 12 7D 13

19 25 36

: :

: :

: :

: : A19

A0 :

D7 D0 :

RD

WRHIGH

FETCH

Trang 43

A19 A0 :

D7 D0 :

CX BX AX

34CD AB12

1AB3 2000

0000 0023 3F1C

FCA1

SP

DX

1243 CS

SI

1000

0005+1 IP

5678 DI

Inst Queue

00001

10000 10001 10002 10003 10004 10005 10006 10007 10008

95

: :

45 98 27 39 42 88 07 F4 8A

: :

20020 20021 20022 20023

FFFFD FFFFE FFFFF

29 12 7D 13

19 25 36

: :

: :

: :

: : A19

A0 :

D7 D0 :

RD

WR

INC PC

Trang 44

A19 A0 :

D7 D0 :

CX BX AX

34CD AB12

1AB3 2000

0000 0023 3F1C

FCA1

SP

DX

1243 CS

SI

1000

0006 IP

5678 DI

Inst Queue

00001

10000 10001 10002 10003 10004 10005 10006 10007 10008

95

: :

45 98 27 39 42 88 07 F4 8A

: :

20020 20021 20022 20023

FFFFD FFFFE FFFFF

29 12 7D 13

19 25 36

: :

: :

: :

: : A19

A0 :

D7 D0 :

RD

WR

INC PC

Trang 45

A19 A0 :

D7 D0 :

CX BX AX

34CD AB12

1AB3 2000

0000 0023 3F1C

FCA1

SP

DX

1243 CS

SI

1000

0006 IP

5678 DI

Inst Queue

00001

10000 10001 10002 10003 10004 10005 10006 10007 10008

95

: :

45 98 27 39 42 88 07 F4 8A

: :

20020 20021 20022 20023

FFFFD FFFFE FFFFF

29 12 7D 13

19 25 36

: :

: :

: :

: : A19

A0 :

D7 D0 :

RD

WR

DECODE

mov [bx], ?

Trang 46

A19 A0 :

D7 D0 :

CX BX AX

34CD AB12

1AB3 2000

0000 0023 3F1C

FCA1

SP

DX

1243 CS

SI

1000

0006 IP

5678 DI

Inst Queue

88

CS:IP

23 00000

00001

10000 10001 10002 10003 10004 10005 10006 10007 10008

95

: :

45 98 27 39 42 88 07 F4 8A

: :

20020 20021 20022 20023

FFFFD FFFFE FFFFF

29 12 7D 13

19 25 36

: :

: :

: :

: : A19

A0 :

D7 D0 :

RD

WR

FETCH

Trang 47

A19 A0 :

D7 D0 :

CX BX AX

34CD AB12

1AB3 2000

0000 0023 3F1C

FCA1

SP

DX

1243 CS

SI

1000

0006 IP

5678 DI

Inst Queue

88

1000:0006

23 00000

00001

10000 10001 10002 10003 10004 10005 10006 10007 10008

95

: :

45 98 27 39 42 88 07 F4 8A

: :

20020 20021 20022 20023

FFFFD FFFFE FFFFF

29 12 7D 13

19 25 36

: :

: :

: :

: : A19

A0 :

D7 D0 :

RD

WR

FETCH

Trang 48

A19 A0 :

D7 D0 :

CX BX AX

34CD AB12

1AB3 2000

0000 0023 3F1C

FCA1

SP

DX

1243 CS

SI

1000

0006 IP

5678 DI

Inst Queue

88

10006

23 00000

00001

10000 10001 10002 10003 10004 10005 10006 10007 10008

95

: :

45 98 27 39 42 88 07 F4 8A

: :

20020 20021 20022 20023

FFFFD FFFFE FFFFF

29 12 7D 13

19 25 36

: :

: :

: :

: : A19

A0 :

D7 D0 :

RD

WR

FETCH

Trang 49

A19 A0 :

D7 D0 :

CX BX AX

34CD AB12

1AB3 2000

0000 0023 3F1C

FCA1

SP

DX

1243 CS

SI

1000

0006 IP

5678 DI

00001

10000 10001 10002 10003 10004 10005 10006 10007 10008

95

: :

45 98 27 39 42 88 07 F4 8A

: :

20020 20021 20022 20023

FFFFD FFFFE FFFFF

29 12 7D 13

19 25 36

: :

: :

: :

: : A19

A0 :

D7 D0 :

RD

WRHIGH

FETCH

Trang 50

A19 A0 :

D7 D0 :

CX BX AX

34CD AB12

1AB3 2000

0000 0023 3F1C

FCA1

SP

DX

1243 CS

SI

1000

0006 IP

5678 DI

00001

10000 10001 10002 10003 10004 10005 10006 10007 10008

95

: :

45 98 27 39 42 88 07 F4 8A

: :

20020 20021 20022 20023

FFFFD FFFFE FFFFF

29 12 7D 13

19 25 36

: :

: :

: :

: : A19

A0 :

D7 D0 :

RD

WRHIGH

FETCH

Trang 51

A19 A0 :

D7 D0 :

CX BX AX

34CD AB12

1AB3 2000

0000 0023 3F1C

FCA1

SP

DX

1243 CS

SI

1000

0006 IP

5678 DI

Inst Queue 8807

10006

07

LOW

23 00000

00001

10000 10001 10002 10003 10004 10005 10006 10007 10008

95

: :

45 98 27 39 42 88 07 F4 8A

: :

20020 20021 20022 20023

FFFFD FFFFE FFFFF

29 12 7D 13

19 25 36

: :

: :

: :

: : A19

A0 :

D7 D0 :

RD

WRHIGH

FETCH

Ngày đăng: 12/11/2019, 20:00

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

w