<< Chapter < Page Chapter >> Page >
15 0
F Flag Register.
IP Intrucstion Pointer Reg.
  • Thanh ghi con trỏ lệnh IP (còn gọi là PC – đếm chương trình) là thanh ghi 16 bit chứa địa chỉ của lệnh kế tiếp mà CPU sẽ thực hiện trong. Các lệnh của chương trình có địa chỉ đoạn trong CS.
  • Thanh ghi Cờ (F) dài 16 bit, mỗi bit là một cờ. Mỗi cờ có giá trị 1 (gọi là SET –Đặt) hoặc 0 (gọi là CLEAR – Xóa). Hình 1.2 mô tả 9 bit trong số 16 bit tương ứng với 9 cờ trạng thái (các bit còn lại dùng cho dự trữ mở rộng khi thiết kế các CPU khác)

Thanh ghi cờ được chia thành hai nhóm:

  • Nhóm cờ điều khiển (bảng 1.1) bao gồm các cờ dùng để điều khiển sự hoạt động của CPU và giá trị của cờ được thiết lập bằng các lệnh phần mềm.
  • Nhóm cờ trạng thái (bảng 1.2) bao gồm các cờ phản ánh kết quả thực hiện lệnh cũng như trạng thái của CPU
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
O D I T S Z A P C

Dự trữ

Hình 1.2: Cấu trúc thanh ghi Cờ

KÝ HIỆU TÊN Ý NGHĨA
Nhóm cờ điều khiển
TF Bẩy (Trap) TF = 1: cho phép chương trình chạy từng bước
IF Ngắt (Interrupt) IF = 1: cho phép ngắt phần cứng
DF Hướng (Direction) DF = 1: thì SI và DI giảm 1 cho mỗi vòng lặp
Nhóm cờ trạng thái
CF Số giữ(Carry) CF = 1: khi có số nhớ hoặc mượn từ MSB trong phép cộng hoặc trừ.(Có tthể bị thay đổi theo lệnh ghi dịch và quay)
PF Chẳn lẻ (Parity) PF = 1: khi byte thấp của thanh ghi kết quả một phép tính có số lượng bit 1 chẳn
AF Số giữ phụ (Hafl) AF = 1: khi có nhớ hoặc mượn từ bit 3 trong phép cộng hoặc trừ. Dùng trong các lệnh với số BCD
ZF Zero ZF = 1: khi kết quả của một phép tính bằng 0
SF Dấu (Sign) SF = 1 khi kết quả phép tính là âm (MSB=1).SF = 0 khi kết quả dương (MSB=0)
OF Tràn (Overflow) OF = 1: nếu kết quả vượt quá khả năng tính toán của CPU

Bảng 1.1: Ý nghĩa cờ

1.1.3. trạng thái tràn:

Trạng thái tràn có thể không xảy ra (nếu không tràn) hoặc xảy ra (nếu tràn có dấu, tràn không dấu, đồng thời tràn có dấu và không dấu). Nói chung là có 2 trạng thái tràn: Tràn không dấu và Tràn có dấu.

Lưu ý: Nếu một giá trị có MSB=1 (bit dấu) thì CPU luôn luôn cho đó là số có dấu.

a. Tràn không dấu: CF=1

Ví dụ: ADD AX, BX ; với AX = 0FFFFh, BX = 1

  • Nếu xem đây là các số không dấu thì AX không đủ chứa kết quả nên TRÀN không dấu, vậy CF = 1
  • Nếu xem đây là các số có dấu thì kết quả sẽ là 0 (vì AX = -1) nên không tràn, do đó OF = 0

b. Tràn có dấu: OF = 1

Ví dụ: ADD AX, BX ; với AX = BX = 7FFFh = 32767

  • Nếu xem đây là các số không dấu thì AX = 7FFFh + 7FFFh = 0FFFEh = 65534 nên không tràn.
  • Nếu xem đây là các số có dấu thì tràn vì kết quả vượt quá phạm vi cho phép đối với số có dấu (cộng 2 số dương, kết quả lại là số âm). Thật sự trong trường hợp này, CPU sẽ làm cho OF = 1 theo qui tắc "Nhớ ra và vào MSB xảy ra không đồng thời” nghĩa là có nhớ vào MSB nhưng không có nhớ ra hoặc ngược lại thì tràn và không có hoặc có nhớ ra và vào MSB thì không tràn.

1.2. bộ nhớ trong của intel-80x86

1.2.1. tổ chức dữ liệu

Bộ nhớ trong được tổ chức thành mảng gồm các ô nhớ 8 bit liên tực nhau. Các dữ liệu có thể được ghi vào hoặc đọc ra (gọi là truy xuất) từ bất cứ vị trí ô nhớ nào. Mỗi ô nhớ 8 bit được phần cứng quản lý bằng một địa chỉ vật lý duy nhất. Việc truy xuất nội dung ô nhớ phải bằng địa chỉ vật lý này.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Lập trình hệ thống. OpenStax CNX. Aug 11, 2009 Download for free at http://cnx.org/content/col10882/1.2
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Lập trình hệ thống' conversation and receive update notifications?

Ask