1. Trang chủ
  2. » Công Nghệ Thông Tin

Chương 2 cấu trúc và hoạt động của 8086

30 305 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 30
Dung lượng 7,33 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 ca

Trang 1

Nguyên tắ c lá m viế c cú a

CS DS SS ES IO Internal Communications Registers

SUMMATION Address Bus 20 bits

Data Bus

Bus Control

Instruction Queue

8088 Bus

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ớ

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ớ s ắp vào hàng đợi lệnh sẵn sàng cho EU giải mã thực hiện Nhờ hà ng đợi lệnh (Queue) 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

 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 2

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

 Chức năng của EU:

 EU giải mã cá c lệnh từ hà ng đợi lệnh bằng khối EU

control.

 Thực hiện các phép tính số họ c và logic bằng ALU.

 Tính toán các địa chỉ tá c động (EA – Effective Address )

cho quá trì nh truy cập bộ nhớ.

 Chỉ thị đoạn bộ nhớ sẽ sử dụ ng bằng cách chọn các

thanh ghi đoạn.

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

 Bộ điều khiển (EU Control)

 Khối thực hiện các phép toán số học logic (ALU)

 Các cờ trạ ng thái (Flags).

 Các thanh ghi (Registers)

Khối điều khiển EU

 Lệnh được BIU lấy vào hàng đợi, trong khi EU control lấy lệnh đã lấy trước đó giải mã và cung cấp các tín hiệu điều khiển để thực hiện lệnh.

 Với chức năng giải mã lệnh, các lệnh ngoài bộ nhớ có thể mã hoá ngắn nhất có thể, EU control 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

 Bằng cách sử dụng bộ giải mã lệnh, dung lượng 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.

Khối số họ c và logic (ALU)

 Thực hiện các phép toán số họ c và logic.

 Có hai ngõ và o cho nhiều nhất hai toán hạng,

một ngõ ra cho kết quả.

 Hai toán hạng vào có thể được lấy từ hai

thanh ghi, một từ thanh ghi một từ bộ nhớ.

 Trạng thái của kết quả được cung cấp tới các

cờ (Flags).

Các thanh ghi của 8088/8086

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

SS.

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

 Đều có thể sử dụ ng chứa dữ liệu 16 bit.

 AX, BX, CX và DX có thể chia thanh hai phần

8 bit.

 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

 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ỉ.

MOV AH,[DI]

MOV BH,[DI+7]

MOVSB

 SI (Source Index): thanh ghi chỉ số nguồn – giữ địa chỉ nguồn dữ

liệu trong các lệnh về chuỗi Làm thanh ghi địa chỉ.

 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 3

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).

 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.

Đị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.

lastval ue

Địa chỉ cao

Địa chỉ thấp

 SP

Trước

lastval ue bx cx

Địa chỉ thấp

Đọ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.

FF65 23AB

Địa chỉ cao

Địa chỉ thấp

 SP

Trước POP AX

FF65 23AB

 Nếu liên tục cất dữ liệu vào ngăn xếp mà không lấy dữ liệu ra thì 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).

 Nếu lấy dữ liệu ra khỏi ngăn xếp nhiều hơn các giá trị đã cất vào 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).

 Để ngăn xếp được sử dụ ng tốt cần phải lấy dữ liệu ra khỏi ngăn xếp bằng đúng số dữ liệu đã cất vào ngăn xếp.

Trang 4

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 First Out)

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

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

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

 CS: Code Segment – Đoạn mã lệnh.

 DS: Data Segment – Đoạn dữ liệu.

 SS: Stack Segment – Đoạn ngăn xếp.

 ES:Extra Segment – Đoạn mở rộng.

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

Physical address = Segment * 10H +offset

16-bit Offset Address

20-bit Physical Address

Trang 5

Thanh ghi cờ

*

* PA

*ZST

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.

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á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).

CÁ C TÍ N HIẾ U CÚ A 8088/ 8086

MAXIMUM MODE

MINIMUM MODE

/RQ,/GT0 /LOCK /S2 /S1 /S0 QS0 QS1

/TEST READY RESET

/RQ,/GT1

HOLD /WR IO/M DT/R /DEN ALE /INTA HLDA

MAXIMUM MODE

MINIMUM MODE

8088

GND A14 A13 A12 A11 A10 A9 A8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK

Vcc A15 A16,S3 A17,S4 A18,S5 A19,S6 MN,/MX /RD

/RQ,/GT0 /LOCK /S2 /S1 /S0 QS0 QS1

/TEST READY

/RQ,/GT1

HOLD /WR IO/M DT/R /DEN ALE /INTA HLDA high /SS0

Trang 6

KẾ T NỐ I HẾ THỐ NG 8086/ 8

 Vi xử lý 8086/8 cần các mạch hỗ trợ trong để kết

nối mạch hệ thống.

 8086/8 ghép (multiplex) các đường địa chỉ và dữ

liệu chung với nhau.

 Việc ghép BUS làm giảm số chân của vi xử lý ,

tuy nhiên cần các mạch để tá ch (demultiplex)

các tín hiệu địa chỉ và dữ liệu để kết nối tới các

bộ nhớ và và o ra.

 Các bộ tá ch này còn làm nhiệm vụ tương thích

giao tiếp giữa VXL và cá c chip nhớ và và o ra

bên ngoài.

KẾ T NỐ I BUS HẾ THỐ NG 8086 TRONG MIN MODE

8284RES

DATA BUS :D0-D15

MN/MXIO/MCLK INTARESET RDREADY WRALEAD0-AD15A16 -A 19

DT/RDEN

8086

CLK

DIRG

WR RD

WE OEADDRESS BUS:A0-19

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

I/OMEMORY

VccVcc

Latch

Transceiver

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

KẾ T NỐ I BUS HẾ THỐ NG 8086 TRONG MAX MODE

74LS245x2

CLKREADYRESET

MN/MX#

S0#

S2#

8288 Bus Controller

MRDC#MWTC#AMWC#IORC#IOWC#AIOWC#INTA#CLK

74LS373x3ADDR/DATA

LEOE#

ALE

DENDT/R#

BHE#

AD15:AD0A19:A16

74LS245x2

EN#DIR

D15:D0

A19:A0, BHE#INTR

i8086 Circuit - Maximum Mode

Trang 7

KẾ T NỐ I MÁ CH TRONG HẾ THỐ NG 8086/ 8

 Với BUS địa chỉ có thể sử dụ ng các mạch

chốt (ví dụ 74LS373).

 BUS dữ liệu cần sử dụ ng các bộ đệ m hai

chiều (ví dụ 74LS245).

 Hệ thống cần chip tạo Clock và đồng bộ tí n

hiệu RESET.

 Trong Max mode hệ thống cần thêm bộ điều

khiển BUS để tạ o ra các tín hiệu điều khiển

bộ nhớ và và o ra.

BỐ TÁ O CLOCK 8284

BỐ CHỐ T ĐÍ A CHÍ

Trang 8

CHỐ T ĐÍ A CHÍ TRONG HẾ THỐ NG 8086

Demultiplex bus đí a chí trong hế thố ng 8088

Trang 9

BỐ ĐẾ M HAI CHIẾ U CHO BUS DỮ LIẾ U

ĐẾ M DỮ LIẾ U HAI CHIẾ U TRONG HẾ THỐ NG 8086

Trang 10

ĐẾ M BUS TRONG HẾ THỐ NG 8086

Cá c tí n hiế u cơ bá n trong cá c chu ký đoćghi

ĐÓ 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 11

Address Access Time (TAVDV)

ALE CLOCK

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

DT/R

IO/M

RD DEN

A19 - A0 from 74LS373 to memory

A15 - A8

A19 - A0 from 74LS373

D7 - D0 from memory to 74LS245 D7 - D0 (from memory)

A7 - A0 D7 - D0 from

74LS245 garbage

TAVDV 3TCLCL

TCLAV

TDVCL

 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ớ.

Memory Setup Time

(TDVWH)

ALE

T1 CLOCK

T2 T3 T4

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

TCVCTX

Trang 12

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

8284

RES

DATA BUS

MWTC MRDC

INTA AIOWC IOWC IORC AMWC MN/MX

CLK DENDT/RRESET

READY ALE

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

Latch

Transceiver8288

Hình 5.4: Sơ đồ hoạ t động của 8086/8088 trong chế độ max

Kế t nố i hế thố ng có bố điế u khiế n ngắ t

mode

Trang 13

Tí n hiế u điế u khiế n Max mode

Trang 14

Bank Write Control Logic Bank Read Control Logic

 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

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

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

Sẽ được thực hiện như thế nà o?

Bộ vi xử lý sẽ hoạ t động như thế nà o?

How does the P works?

Increment Program Counter (CS:IP) by 1

Execute (if necessary)

Trang 15

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 :

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 :

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 16

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 :

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

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

HIGH

FETCH

Trang 17

: : 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 :

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 :

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 18

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 :

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 :

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 19

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

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 :

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: 03/12/2015, 07:08

TỪ KHÓA LIÊN QUAN

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

w