Tải bản đầy đủ - 0 (trang)
2 Các thanh ghi con trỏ và chỉ số:

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

Tải bản đầy đủ - 0trang

Hình vẽ: sơ đồ thanh ghi cờ của 8088.

° Cờ trạng thái: Biểu diễn trạng thái phép toán vừa thực hiện.





CF (Carry Flag): Cờ nhớ (cờ tràn).

CF = 1 (CY – Carry) khi kết quả phép tốn vượt (tràn) khn khổ biểu

diễn (có nhớ (mượn) lên trên (từ) MSB), CF = 0 (NC – No Carry) trong

trường hợp ngược lại. Cờ này thường được sử dụng khi thực hiện các phép

cộng, trừ các số byte.

Ví dụ:

1011 0001

+



0110 1001

10001 1010



 AF (Auxilary Flag): Cờ nhớ phụ (tràn phụ - cờ bổ trợ).

Cờ này có ý nghĩa khi ta làm việc với số BCD, AF = 1 (AC – Auxilary

Carry) khi có nhớ hoặc mượn từ một số BCD thấp (4 bit thấp) sang một số

BCD cao (4 bit cao) và AF =0 (NA – No Auxilary carry) trong trường hợp

ngược lại.

 SF (Sign Flag): Cờ dấu. Trong bộ vi sử lý 8088 các số âm được biểu diễn

dưới dạng số bù 2, nên phải dùng cờ SF để chỉ thị dấu của kết quả.

SF = 1 (NG – NiGative), khi kết quả phép toán là một số âm, SF = 0 (PL –

Plus) trong trường hợp ngược lại.

 ZF (Zero Flag): Cờ rỗng.

ZF = 1 (ZR – Zero) khi kết quả phép toán = 0, ZF = 0 (NZ-Non Zero) trong

trường hợp ngược lại.

 OF (Overflow Flag): Cờ tràn



.



OF = 1 (OV – Overflow) khi kết quả là số bù 2 vượt khn khổ biểu diễn

(tràn số học hay nói cách khác: khi cộng 2 số cùng dấu mà kết quả là một số

trái dấu thì OF = 1), OF = 0 (NV –Non Overflow) trong trường hợp ngược

lại (cờ này làm việc với số có dấu).



 Cờ điều khiển

[9]



Cờ trạng thái phụ thuộc điều kiện kết quả phép tốn, còn với cờ điều khiển

ta có thể thiết lập nhờ lệnh.

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

IF = 1 (EI- Enable Interrupt) CPU cho phép ngắt, IF = 0 (DI=Disable

Interrupt) CPU không cho phép ngắt(cấm) các loại ngắt che được(Maskable)



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

TF = 1 CPU làm việc trong chế độ chạy từng lệnh, thường dùng để gỡ rối

chương trình (debug). Sau khi thực hiện song chuỗi lệnh, bộ vi xử lý sẽ phát

ra 1 lệnh ngắt (INT) để có kiểm tra chương trình.

 DF (Direction Flag): Cờ hướng.

Điều khiển hướng xử lý đối với thao tác chuỗi. DF = 1 (DN – Down) thì các

lệnh vận chuyển dữ liệu hay xử lý chuỗi sẽ thao tác lùi từ phải sang trái(địa

chỉ cao đến địa chỉ thấp). DF = 0 (UP) trong trường hợp ngược lại(thao tác

các địa chỉ từu địa chỉ thấp đến địa chỉ cao).



Cờ này thường được lặp bởi chương trình của người sử dụng khi có các lệnh thao

tác chuỗi.

Tiến (thuận – theo chiều tăng địa chỉ)

Lùi (ngược – theo chiều giảm địa chỉ)

1.4 Thanh ghi đoạn:

Thơng thường, bộ nhớ của chương trình máy tính chia làm các đoạn phục vụ

các chức năng khác nhau như đoạn chứa các câu lệnh, chứa dữ liệu. Trong thực tế,

bộ vi xử lý 8088 cung cấp các thanh ghi 16 bit liên quan đến địa chỉ đầu của các

đoạn nói trên và chúng được gọi là các thanh ghi đoạn củ thể là:

 CS (Code Segment): Thanh ghi đoạn mã, là thanh ghi địa chỉ đoạn mã

lệnh, chứa địa chỉ cơ sở (địa chỉ đoạn) của chương trình đang thực

hiện.

 DS (Data Segment): Thanh ghi đoạn dữ liệu, là thanh ghi địa chỉ đoạn

dữ liệu, chứa địa chỉ đoạn của vùng dữ liệu mà chương trình đang thực

hiện sử dụng. Vùng này thường chứa các biến của chương trình.

 SS (Stack Segment): Thanh ghi đoạn ngăn xếp, là thanh ghi địa chỉ

đoạn bộ nhớ ngăn xếp (stack) của chương trình đang chạy.

[10]



 ES (Extra Segment): Thanh ghi đoạn dữ liệu phụ, là thanh ghi địa chỉ

đoạn dữ liệu bổ sung mà chương trình đang thực hiện sử dụng. Vùng

này cũng thường chứa các biến của chương trình.

Các thanh ghi đoạn 16 bit này chỉ ra địa chỉ đầu của các đoạn trong bộ nhớ, dung

lượng lớn nhất của mỗi đoạn nhớ này là 64 Kbyte và tại một thời điểm nhất đinh bộ vi

xử lý chỉ làm việc với bốn đoạn nhớ 64 bit này. Để xác định chính xác vị trí 1 ơ nhớ

của chương trình các thanh ghi đoạn sẽ phối hợp với các thanh ghi đặc biệt khác còn

gọi là các thanh ghi lệch hay phân đoạn (offset register).

8088 có 20 bit địa chỉ, trong khi đó các thanh ghi quản lý bộ nhớ là 16 bit. Để

xác định một ngăn nhớ có địa chỉ 20 bit, dùng 2 thanh ghi 16 bit để xác định địa

chỉ.

Địa chỉ luôn nằm trong 1 thanh ghi gọi là địa chỉ đoạn.

Địa chỉ lệch (offset) trong 1 thanh ghi khác (Ax, Bx, Cx,…)

Địa chỉ logic:DS:SI

DS:DI

DS:XX

Địa vật lý (phải là số 20 bit) được xác định như sau:

Địa vật lý=địa chỉ đoạn*16 + địa chỉ lệch

Ví dụ: DS = 4000h, SI = 3F4Dh

Địa chỉ logic của ngăn nhớ: 4000:3F4D

Địa chỉ vật lý của ngăn nhớ:

DS * 16 + SI = 4000 * 16 +3F4D = 43F4Dh

Tại một thời điểm CPU quản lý được 4 bộ nhớ (DS, SS, ES, CS), nó có thể

đồng thời truy cập 4 đoạn đó.

Bộ nhớ được chia thành nhiều đoạn. Mỗi đoạn có kích thước tối đa là

64KB. Vậy ta có 16 đoạn tách rời và địa chỉ lệch thay đổi từ 0000H đến FFFFh.

Nếu địa chỉ đoạn thay đổi từ 0000H đến FFFFh thì có 64 đoạn. khi này các

đoạn bao chùm lên nhau, 2 đoạn kề nhau sẽ cách nhau 16 byte (paragraph).

Khi khởi động máy (hoặc Reset) CS được nạp giá trị F000h, IP được nạp

giá trị FFF0h, địa chỉ này thuộc đoạn cuối, nơi đặt ROM khởi động.

Địa chỉ vật lý = F000h*16 + FFF0h =F0000h + FFF0h =FFFF0h.

[11]



IV : Sơ đồ chân, chức năng của các chân tín hiệu. Nguyên lý hoạt động của cpu

8088.

1.1 :Sơ đồ chân



SƠ ĐỒ CHÂN CPU 8088 CỦA INTEL



[12]



SƠ ĐỒ CHÂN NGUỒN CPU 8088



S6 =0 liên tục, S5 phản ánh

IF. S3,S4 cùng phối hợp để

chia ra việc truy nhập các

thanh ghi đoạn.



S3

0

1

0

1



S4

0

0

1

1



Truy vấn đến các đoạn

Đoạn dữ liệu phụ (ES:)

Đoạn ngăn xếp (SS:)

Đoạn mã hoặc không đoạn nào

Đoạn dữ liệu



Bảng các bit trạng thái và việc truy nhập đến các thanh ghi đoạn.

(Hình vẽ: Đóng vỏ DIP 40 chân của 8088)

1.2 Các chân tín hiệu:



AD7 – AD0 [I/O]: Các chân dồn kênh cho tín hiệu phần thấp của bus địa

chỉ và dữ liệu. Khi xung ALE = 0 => báo cho mạch ngoài biết trên đường đó (các

[13]



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

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

Tải bản đầy đủ ngay(0 tr)

×