ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
ĐẠI HỌC SƯ PHẠM KỸ THUẬT
KHOA ĐIỆN – ĐIỆN TỬ
LUẬN VĂN TỐT NGHIỆP
Đề tài:
GIAO TIẾP MÁY TÍNH VỚI
KIT VI XỬ LÝ 8086
Giáo viên hướng dẫn : Thầy NGUYỄN
ĐÌNH PHÚ
Sinh viên thực hiện : PHẠM XUÂN
HƯNG
Lớp : 95 KĐĐ
TP.HOÀ CHÍ MINH
2 – 2000
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
ĐẠI HỌC SƯ PHẠM KỸ THUẬT
KHOA ĐIỆN - ĐIỆN TỬ
LUẬN VĂN TỐT NGHIỆP
Đề tài:
GIAO TIẾP MÁY TÍNH
VỚI KIT VI XỬ LÝ 8086
PHẦN 1: GIỚI THIỆU CHUNG
CHƯƠNG DẨN NHẬP
CHƯƠNG CƠ SỞ LÝ LUẬN
CHƯƠNG I: CẤU TRÚC VI XỬ LÝ 8086
CHƯƠNG II: KHẢO SÁT TỔNG QUÁT TẬP LỆNH 8086
CHƯƠNG III: GIAO TIẾP VỚI MÁY TÍNH
PHẦN 2 : PHẦN CỨNG VÀ PHẦN MỀM CỦA Û MẠCH
GIAO TIẾP
CHƯƠNG IV: GIỚI THIỆU KIT VXL 8086
CHƯƠNG V: GIAO TIẾP NỐI TIẾP DÙNG VI MẠCH
8251A
CHƯƠNG VI: CHƯƠNG TRÌNH GIAO TIẾP ( CHƯƠNG
TRÌNH TRUYỀN, NHẬN DỮ LIỆU)
HƯỚNG PHÁT TRIỂN ĐỀ TÀI
KẾT LUẬN ĐÁNH GIÁ
PHỤ LỤC
TÀI LIỆU THAM KHẢO
Giáo viên hướng dẫn: NGUYỄN ĐÌNH PHÚ
Sinh viên thực hiện: PHẠM XUÂN HƯNG
BỘ GIÁO DỤC& ĐÀO TẠO CỘNG HÒA XÃ HỘI CHỦ NGHĨA
VIỆT NAM
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH ĐỘC LẬP – TỰ DO – HẠNH
PHÚC
ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH
_____________
KHOA ĐIỆN
BỘ MÔN ĐIỆN – ĐIỆN TỬ
NHIỆM VỤ LUẬN VĂN TỐT NGHIỆP
Họ và tên sinh viên : PHẠM XUÂN HƯNG
Lớp : 95KĐĐ
Ngành : Kỹ thuật Điện – Điện tử
1. Tên đề tài: GIAO TIẾP MÁY TÍNH VỚI KIT VI XỬ LÝ
8086
2. Các số liệu ban đầu:
……………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
3. Nội dung các phần thuyết minh tính toán:
……………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………
4. Các bản vẽ:
……………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………
5. Giáo viên hướng dẫn : NGUYỄN ĐÌNH PHÚ
6. Ngày giao nhiệm vụ :
7. Ngày hoàn thành nhiệm vụ: 25/2/2000
Giáo viên hướng dẫn: Thông qua Bộ môn
Ngày tháng
năm 1999
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG
DẪN
………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………
Giaùo vieân höôùng daãn
NHẬN XÉT CỦA GIÁO VIÊN PHẢN
BIỆN
………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………
Giaựo vieõn phaỷn bieọn
Lời cảm tạ
Trong thời gian thực hiện đề tài sinh viên thực hiện đã
học hỏi được nhiều điều bổ ích từ thầy hướng hẫn, các thầy
cô và các bạn.
Sinh viên thực hiện xin bày tỏ lòng biết ơn đến thầy
Nguyễn Đình Phú trên cương vò là người hướng dẫn đề tài đã
tận tình hướng dẫn và tạo điều kiện thuận lợi cho em hoàn
thành tốt đề tài.
Sinh viên thực hiện cũng xin chân thành cảm ơn các
thầy, các cô trong khoa cùng các bạn đã đóng góp ý kiến và
kinh ngiệm qúy báu trong qúa trình thực hiện đề tài này.
TP.HỒ CHÍ MINH Ngày 25 tháng 2 năm 2000
Sinh viên thực hiện
Phạm Xuân Hưng
MỤC LỤC
Phần 1: Phần giới thiệu
Chương dẫn nhập
Chương cơ sở lý luận
I. Xây dựng đề cương luận văn
II. Kế hoạch nghiên cứu
Chương I: Cấu trúc bên trong của VXL 8086
I. Cấu tạo bên trong
1. khối thực hiện
2. khối phối phối ghép bus
3. sơ đồ khối bên trong
II. Cấu trúc bên trong và chức năng của VXL 8086
1. sơ đồ chân của VXL 8086
2. chức năng các chân
III. Các phương pháp đònh đòa chỉ của 8086
Chương II: Khảo sát tổng quát tập lệnh của VXL 8086
I. cách mã hóa lệnh
II. khảo sát tổng quát tập lệnh
Chương III: Giao tiếp với máy tính
I. Giao tiếp song song
1. Giao tiếp qua cổng máy in
2. Giao tiếp qua Slot card
II. Giao tiếp nối tiếp qua cổng COM
1. Vài nét cơ bản về cổng nối tiếp
2. Sự trao đổi của các đường dẫn tín hiệu
Phần 2: Phần cứng của mạch giao tiếp
Chương IV: Giới thiệu kit VXL 8086
I. Các linh kiện bán dẫn liên quan
1. vi mạch MAX 232
2. IC đệm 74LS244
3. Mạch tạo xung nhòp 8284
4. Tổng quát về bộ nhớ
II. Giới thiệu kit VXL 8086.
Chương V: Giao tiếp nối tiếp dùng 8251A.
I. truyền thông tin nối tiếp
II. Vi mạch USART 8251A
III. Ứng dụng 8251A để truyền thông tin nối tiếp
1. Truyền thông tin nối tiếp giữa 2 kit VXL
2. Truyền thông tin nối tiếp giữa kit VXL và máy tính
Phần 3 : Phần mềm của mạch giao tiếp
Chương VI: Các chương trình truyền dữ liệu
I. Chương trình truyền, nhận dữ liệu dữ liệu trên kit
1. Giải thuật
2. Chương trình
II. Chương trình truyền dữ liệu trên máy tính
Phần 4: Tổng kết, đánh giá
Hướng phát triển đề tài
Kết luận đánh giá
Tài liệu tham khảo
LỜI NÓI ĐẦU
Đất nước ta đang trên con đương tiến lên một đất nước công
ngiệp hóa hiện đại hóa. Để đạt được mục tiêu đó thì ngành công
ngiệp máy tính là một ngành then chốt để tiến lên con đường
công ngiệp hoá và hiện đại hóa đất nước.
Ngày nay trong các nhà máy xí nghiệp hay công xưởng đều sử
dụng máy vi tính vào việc đo lường điều khiển, tính toán và trong
quản lý hành chính, nhờ có đặc tính gọn nhẹ, độ tin cậy cao linh
hoạt và đơn giản trong sử dụng. Đặc biệt trong các ngành công
nghiệp hiện đại, máy tính điện tử không những góp phần vào việc
nâng cao năng suất lao động mà còn góp phần vào việc bảo vệ sức
khoẻ và an toàn lao động cho con người.
Đễ hoàn thành những công việc kể trên chúng ta cần phải kết
nối các máy vi tính với nhau, hoặc kết nối chúng với các thiết bò
ngoại vi nhận dữ liệu để xử lý hay gửi dữ liệu đi cho các thiết bò
khác xử lý. Để thực hiện được công việc này thì điều đầu tiên
chúng ta phải làm đó là chúng ta phải kết nối phần cứng cho phù
hợp và viết các chương trình truyền dữ liệu.
Trước yêu cầu đó sinh viên thực hiện đề tài quyết đònh thực
hiện đề tài “Giao tiếp máy tính với kit VXL 8086” nhằm mục đích
tìm hiểu, học hỏi thêm và ứng dụng các kiến thức đã học ra thực
tế.
Sinh viên thực hiện xin chân thành cảm ơn thầy Nguyễn
Đình Phú cùng các thầy cô trong khoa đã tận tình hướng dẫn em
hoàn thành tốt đề tài này.
Vì thời gian và kiến thức có hạn nên tập luận văn này chắc
chắn không tránh khỏi sai sót, rất mong những ý kiến đóng góp
của qúy thầy cô và các bạn.
TP.Hồ Chí Minh, ngày 25 tháng 2 năm 2000
Sinh viên thực hiện
Phạm Xuân Hưng
Phaàn 1
GIÔÙI THIEÄU CHUNG
CHƯƠNG DẪN NHẬP
oOo
Cùng với sự phát triển của khoa học kỹ thuật thì ngành công
nghiệp máy tính cũng được phát triển rất mạnh mẽ và ngày càng
được ứng dụng rộng rãi trong mọi công việc như các công việc
trong công nghiệp cũng như trong thông tin liên lạc.
Để thực hiện được những công việc nhận dữ liệu từ các thiết
bò khác để xử lý hoặc gửi dữ liệu đi để điều khiển các thiết bò khác
thì công việc giao tiếp giữa hai hệ vi xử lý với nhau hay giữa vi xử
lý với máy tính là một công việc chủ yếu trong việc truyền dữ liệu
vì thế sinh viên quyết đònh thực hiện đề tài “Giao tiếp máy tính
với kit VXL 8086”. Mục đích để học hỏi và tìm hiểu thêm các ứng
dụng của VXL và các IC giao tiếp ngoại vi trong thực tế, làm quen
với các chương trình truyền dữ liệu để hoàn thành tốt luận văn tốt
nghiệp này.
Trong phạm vi chuyên ngành thì đề tài đã hoàn thành tốt
phần cứng và phần mềm giao tiếp. Riêng trong lónh vực giao tiếp
thì đó cũng là tài liệu tham khảo ban đầu cho những người muốn
đi sâu vào lónh vực giao tiếp.
Đề tài này không chỉ giúp cho sinh viên hòan thành luận văn
tốt nghiệp mà còn hình thành trong mỗi sinh viên những kinh
nghiệm, sáng tạo và năng động. Sau này đề tài sẽ kết hợp với các
ngành chuyên môn khác để phát triển mô hình này được hoàn
thiện hơn.
CHƯƠNG CƠ SỞ LÝ LUẬN
___ oOo ___
I. XÂY DỰNG ĐỀ CƯƠNG LUẬN VĂN:
1). Xác đònh nhiệm vụ nghiên cứu :
Việc chọn đề tài xuất phát từ hai lý do:
- Khách quan: hiện nay các nền công nghiệp có nhu cầu
hiện đại hóa các thiết bò theo xu hướng cải tiến hóa các
thiết bò bằng cơ khí sang thiết bò điều khiển tự động ứng
dụng kỹ thuật điện tử.
- Chủ quan: do nhu cầu học tập, nghiên cứu, rèn luyện kỹ
năng thực hành, ứng dụng vốn kiến thức khoa học kỹ
thuật tiên tiến trực tiếp vào lónh vực sản xuất.
Nhiệm vụ nghiên cứu nhằm đạt được các mục đích chủ yếu:
+ Mục đích trước mắt: thỏa mãn về cơ bản các yêu cầu đề
ra theo phương châm “Học đi đôi với hành“.
+ Mục đích sau cùng: Tích lũy kinh nghiệm, rèn luyện và
nâng cao năng lực, tạo bản lónh để sẵn sàng tham gia lao động
sản xuất, hòa nhập vào bước tiến của thế hệ.
2). Phân tích tài liệu liên hệ:
Trong thời gian nghiên cứu đề tài, sinh viên thực hiện đã
thống nhất tham khảo một số tài liệu có liên quan trong khoảng
thời gian cho phép.
- Phương pháp luận nghiên cứu khoa học: tìm hiểu về cấu
trúc hình thức của một đề tài nghiên cứu khoa học và
phương pháp tư duy để giải quyết vấn đề.
- Kỹ thuật Vi xử lý - Trần Văn Trọng: Tài liệu cung cấp về
cấu trúc của vi xử lý 8086.
- Sơ đồ chân linh kiện bán dẫn - Dương Minh Trí: cung cấp
sơ đồ chân và bảng trạng thái họat động của các IC và các
linh kiện bán dẫn.
- Cấu trúc máy tính - Lê Anh Việt: Tài liệu cung cấp kiến
thức cơ bản về cấu trúc máy tính, tổ chức CPU, hợp ngữ và
cách lập trình.
- The 8086/8088 - Family Design Programming and
Interfacing – John Uffenbeck: tài liệu cung cấp những kỹ
thuật kết nối vi xử lý và những phần mềm ứng dụng.
- Kỹ thuật vi xử lý – Văn Thế Minh: tài liệu cung cấp kỹ
thuật giao tiếp với các thiết bò ngoại vi.
II. KẾ HOẠCH NGHIÊN CỨU:
1). Dàn ý nghiên cứu:
Phần I: Giới thiệu chung.
Phần II: Phần cứng và phần mềm cuả mạch giao tiếp.
Phần III : Tổng kết và đánh giá
2). Đối tượng nghiên cứu:
Vi xử lý là trung tâm điều khiển các đối tượng, điều khiển hệ
thống như máy tự động, dây chuyền sản xuất… Để hệ thống xử lý
thi hành các chức năng điều khiển như mong muốn, chúng ta phải
lập trình bằng ngôn ngữ tương ứng và trao đổi dữ liệu giữa các hệ
vi xử lý. Vì thế đối tượng nghiên cứu chính là thiết kế mạch giao
tiếp để truyền dữ liệu đi xa.
CHƯƠNG I
CẤU TRÚC BÊN TRONG CỦA VI XỬ LÝ 8086
___ oOo ___
Đây là bộ vi xử lý nổi tiếng một thời của hãng Intel, nó
được sử dụng trong nhiều lónh vực khác nhau, nhất là trong các
máy IBM PC/XT. Các bộ vi xử lý thuộc họ này sẽ còn được sử
dụng rộng rãi trong hàng chục năm nữa.
I . CẤU TẠO BÊN TRONG:
Bên trong gồm hai khối chính:
- Khối thực hiện EU (Execution Unit)
- Khối giap tiếp bus (Bus Interface Unit)
1 .Khối thực hiện EU
Ở hình 1.1 ta thấy trong khối EU ta thấy có một khối điều
khiền (Control Unit, CU) chính tại bền trong khối điều khiển này
có mạch giải mã lệnh. Mã lệnh đọc vào từ bộ nhớ đưa đến đầu của
bộ giải mã, các thông tin thu được từ đầu ra củc nó sẽ được đưa
đến mạch tạo xung điều khiển, kết quả là thu được các dãy xung
khác nhau (tùy theo mã lệnh) để điều khiển hoạt động của các bộ
phận bên trong và bên ngoài CPU. Trong khối EU còn có khối số
học và logic (Arithmetic and Logic Unit ALU) dùng để thực hiện
các thao tác khác nhau với các toán hạng cuả lệnh. Tóm lại khi
CPU hoạt động EU sẽ cung cấp thông tin về điạ chỉ cho BIU để
khối này đọc lệnh và dữ liệu, còn bản thân nó thì giải mã lệnh và
thực hiện lệnh
2. Khối phối ghép bus (Bus Interface Unit BIU)
Khối BIU có nhiệm vụ đưa ra điạ chỉ, đọc mã lệnh từ bộ
nhớ. Nói cách khác BIU chiu trách nhiệm đưa điạ chỉ ra bus và
trao đổi dữ liệu với bus.
Trong BIU còn có bộ nhớ đệm lệnh với dung lượng 4 byte
dùng để đưa các mã lệnh đọc được nằm sẵn sàng chờ EU xử lý
(trong tài liệu cuả Intel bộ lệnh này còn được gọi là hàng đợi lệnh.
Đây là một cấu trúc mới được đưa vào bộ VXL 8086/8088 cho việc
Intel đưa chế độ xử lý xen kẽ liên tục dùng mã lệnh vào ứng dụng
vào trong các bộ VXL thế hệ mới.
3. Sơ đồ khối bền trongvà chức năng các khối cuả
VXL 8086:
Hàng
đợi
lệnh
Các cờ
AHA"BHB"
CHC"DHD"
BPD%S%SP
CSESSSDS%P
Điều khiển bus và
tạo đòa chỉ
234561
Bus đòa chỉ Bus dữ liệu
Các thanh
ghi đoạn
Arithmetic logic
unit (A"U)
Bus dữ liệu nội
Các bus hệ
thống
Excution Unit
(EU)
Bus %nterface Unit
(B%U)
Σ
Hình 1.1: Sơ đồ khối 8086
Bộ vi xử lý thực hiện các lệnh theo các bước sau:
- Lấy lệnh từ bộ nhớ.
- Đọc toán hạng (nếu lệnh yêu cầu).
- Thực hiện lệnh.
- Ghi kết quả.
3.1). Khối thực hiện:
Nhiệm vụ của khối thực hiện lệnh là thực hiện các lệnh của
chương trình. Nó gồm có khối số học – logic (ALU) cho phép thực
hiện các phép tính số học (+ , - , * , /) và các phép logic (AND, OR,
NOT…). Trong khối thực hiện còn có một số ô nhớ gọi là thanh ghi
dùng để chứa dữ liệu cho các phép tính. Mỗi thanh ghi giống như
một ô nhớ ngoại trừ chúng được đặt tên thay vì dùng số để chỉ đòa
chỉ. EU (Execution Unit) có các thanh ghi công dụng chung chia
thành hai nhóm: nhóm thanh ghi dữ liệu và nhóm thanh ghi chỉ
số.
♦ Các thanh ghi dữ liệu (Data Register):
♦ Các thanh ghi chỉ số và con trỏ (Index & Pointer
Register):
♦ Các thanh ghi đoạn (Segment Register):
♦ Các thanh ghi trạng thái và điều khiển (Status &
Control Register):
AHA"BHB"CHC"DHD"
AX (Accumulator)
BX (Base)
CX (Count)
DX (Data)
SPBPS%D% Con trỏ Stack (Stack Pointer)
Con trỏ nền (Base Pointer)
Chỉ số nguồn (Source %ndex)
Chỉ số đích (Destnation %ndex)
CSDSSSESĐoạn mã (Code Segment)
Đoạn dữ liệu (Data Segment)
Đoạn Stack (Stack Segment)
Đoạn thêm (Extra Segment)
%PFlagCon trỏ lệnh (%ntruction Pointer)
Cờ
♦ Các thanh ghi dữ liệu:
Có bốn thanh ghi dữ liệu ký hiệu lần lượt là: AX, BX, CX, DX,
được người lập trình sử dụng cho các thao tác với dữ liệu. Mặc dù
vi xử lý có thể thao tác với dữ liệu trong bộ nhớ, nhưng một lệnh
như vậy sẽ được thực hiện nhanh hơn trong thanh ghi (cần ít chu
kỳ đồng hồ hơn). Đó cũng là nguyên nhân tại sao các bộ vi xử lý
hiện đại có xu hướng nhiều thanh ghi.
Các byte cao và byte thấp trong thanh ghi được truy cập độc
lập: Byte cao của thanh ghi AX được gọi là AH và byte thấp được
gọi là AL. Tương tự như vậy cho các byte cao và byte thấp của các
thanh ghi BX, CX, DX lần lượt là BH & BL, CH & CL, DH & DL.
Nhờ điều này mà ta có nhiều thanh ghi hơn khi làm việc với các
số liệu có kích thước byte dài. Trong đa số lệnh các thanh ghi dữ
liệu được chọn tùy ý nhưng các thanh ghi này lại có chức năng
riêng cố đònh trong một số ít lệnh.
• Thanh ghi tích lũy AX (Accumulator):
Là thanh ghi được sử dụng nhiều nhất trong các lệnh số học –
logic và truyền dữ liệu bởi vì việc sử dụng thanh ghi này tạo ra
mã máy ngắn nhất.
Trong các thao tác nhân hoặc chia một trong các số hạn tham
gia phải chứa trong AH hoặc AL, các thao tác vào ra cũng sử dụng
thanh ghi AH hoặc AL.
• Thanh ghi cơ sở BX (Base):
Thanh ghi BX được dùng cho tính toán đòa chỉ trong phương
pháp đònh đòa chỉ gián tiếp.
• Thanh ghi đếm CX (Count):
Việc thực hiện các chương trình lập được thực hiện dễ dàng
nhờ thanh ghi CX, trong đó CX đóng vai trò là bộ đếm vòng lập.
Một thí dụ khác của việc sử dụng thanh ghi CX đó là lệnh REP
(Repeat) lệnh này điều khiển một lớp các lệnh chuyên về các thao
tác chuỗi. CL cũng được sử dụng là một biến đếm trong các lệnh
dòch hay quay các bit.
• Thanh ghi dữ liệu DX (Data):
DX dùng để đònh đòa chỉ gián tiếp trong các thao tác vào ra,
nó cũng còn được sử dụng chứa toán hạn, kết quả trong phép nhân
và chia.
• Thanh ghi con trỏ và chỉ số:
Các thanh ghi SP, BP, SI, DI thường trỏ tới các ô nhớ (tức là
chứa các đòa chỉ offset của các ô nhớ đó). Khác với thanh ghi đoạn,
các thanh ghi con trỏ và ngăn xếp được sử dụng trong các thao tác
số học và một số thao tác khác nhau.
• Thanh ghi con trỏ – ngăn xếp SP (Stack Pointer):
Di chuyển từ đòa chỉ cao đến đòa chỉ thấp, dùng để kết hợp
với thanh ghi đoạn Stack SS (Stack Segment)để lưu trử đòa chỉ trở
về hoặc dữ liệu vào trong ngăn xếp.
• Thanh ghi con trỏ cơ sở BP (Base Pointer):
Thanh ghi này được dùng để truy cập dữ liệu trong ngăn xếp
mà không làm thay đổi SP. Tuy nhiên, khác với SP thanh ghi BP
cũng còn được sử dụng đễ truy cập dữ liệu ở các đoạn khác.
• Thanh ghi chỉ số nguồn SI (Source Index):
Thanh ghi SI được sử dụng để trỏ tới các ô nhớ trong đoạn dữ
liệu được đònh bởi thanh ghi đoạn dữ liệu DS (Data Segment), có
thể truy cập dễ dàng các ô nhớ liên tiếp bằng cách tăng SI.
• Thanh ghi chỉ số đích DI (Destination Index):
Thanh ghi DI có chức năng tương tự như thanh ghi SI và được
dùng kết hợp với thanh ghi đoạn thêm ES (Extra Segment). Cả
hai DI và SI thích hợp trong các thao tác sao chép, di chuyển hoặc
so sánh các khối dữ liệu có dung lượng đến 64kB.
• Thanh ghi con trỏ lệnh IP (Intruction Pointer):
8086 không thực hiện lệnh trực tiếp trong bộ nhớ mà lệnh
được lấy ở hàng đợi lệnh có cấu tạo giống như một thanh ghi dòch
(FIFO: First In First Out: vào trước ra trước) chứa các mã lệnh
cung cấp bởi khối BIU. Thanh ghi IP chỉ đến lệnh tiếp theo chưa
được nhập vào hàng đợi lệnh và được dùng kết hợp với thanh ghi
CS. Thanh ghi IP được cập nhật mỗi khi có một lệnh được thực
hiện xong, khác với các thanh ghi khác, IP không bò tác động trực
tiếp bởi các lệnh.
• Thanh ghi cờ (Flag Register):
Thanh ghi cờ của 8086 có độ dài 16bit (2byte) byte thấp chứa
các bit trạng thái giống như trong 8085 phản ánh trạng thái của
vi xử lý, byte cao chứa 1 bit trạng thái đó là bit 11 và 3 bit điều
khiển dùng để điều khiển hoạt động của vi xử lý. Sau đây là cấu
tạo của thanh ghi cờ trong 8086:
15 8 7 0
O D I T S Z A P C
Thanh ghi cờ của 8086
C: carry flag.
P: parity flag.
A: auxiliary flag.
Z: zero flag.
S: sign flag.
T: trap flag.
I: interrupt enable flag.
D: direction flag.
O: overflow flag.
+ Cờ nhớ CF :
Cờ nhớ CF được thiết lập khi có số nhớ từ bit MSB. Trong
phép cộng hoặc số thiếu trong phép trừ (MSB trong các lệnh byte
là bit 7 và trong các lệnh word là bit 15) cờ CF cũng bò ảnh hưởng
bởi các lệnh quay và dòch.
+ Cờ chẵn lẻ PF :
Sau các lệnh số học hoặc logic đối với các lệnh byte nếu số
lượng số ‘1’ trong byte kết quả là chẵn thì cờ PF được thiết lập là
‘1’ ngược lại là ‘0’ nếu là lẻ, đối với các lệnh word chỉ xét các byte
thấp.
+ Cờ nhớ phụ AF:
Cờ nhớ phụ được thiết lập nếu có nhớ (cộng) hoặc có thiếu
(trừ) từ phân nửa dưới đến phân nửa trên của toán hạn (đối với
lệnh byte đó là bit 3 và đối với lệnh word là bit 7) cờ AF được sử
dụng trong các thao tác với số BCD.
+ Cờ zero ZF:
Cờ zero được thiết lập khi kết quả bằng 0.
+ Cờ dấu SF:
Cờ dấu là ‘1’ khi bit MSB của kết quả bằng ‘1’ tức là số âm,
đối với lệnh byte MSB là bit 7 và trong lệnh word là bit 15.
+ Cờ bẫy TF:
Tạo khả năng thực hiện chương trình theo từng bước, khi TF
bằng ‘1’ 8086 phát sinh ngắt loại 1 (ngắt cứng). Chương trình
DEBUG sử dụng khi thi hành lệnh T (trace) để chạy từng bước
một lệnh. Đầu tiên DEBUG thiết lập cờ TF rồi mới chuyển điều
khiển cho lệnh đó. Sau khi lệnh được thi hành vi xử lý sẽ phát
sinh một ngắt do TF được lập DEBUG sử dụng chính phục vụ ngắt
này để lấy quyền điều khiển từ vi xử lý.
+ Cờ ngắt IF:
Cờ ngắt được sử dụng để điều khiển các ngắt phần cứng bên
ngoài, nếu cờ này được thiết lập các ngắt phần cứng có thể ngắt
8086. Khi xóa IF, các ngắt bên ngoài không còn tác dụng nửa (bò
che). Thực ra vẫn còn một ngắt cứng không che được NMI (Non
Maskable Interrupt).
Trước khi vi xử lý trao quyền điều khiển cho một phục ngắt
nó xóa cả IF và TF, như vậy phục ngắt đó sẽ không bò ngắt. Tất
nhiên một phục vụ ngắt có thể đổi cờ để cho phép ngắt khi nó
đang thi hành.
+ Cờ tràn OF:
Cờ tràn là ‘1’ khi có hiện tượng tràn và ngược lại nó bằng ‘0’.
Hiện tượng tràn cho thấy một sự thật là phạm vi biểu diễn các số
trong máy tính là có giới hạn.
Phạm vi biểu diển các số có dấu trong một word từ –32768
đến +32767 và trong một byte từ –126 đến +127.
Đối với các số không dấu từ 0 đến 65535 cho một word và từ
0 đến 255 cho một byte. Nếu kết quả của một phép tính vượt ra
ngoài phạm vi này thì hiện tượng tràn sẽ xảy ra và kết quả nhận
được bò cắt bớt sẽ không phải là kết quả đúng.
+ Cờ điều khiển DF:
Là một trong ba cờ điều khiển dùng điều khiển các thao tác
của vi xử lý công dụng của DF là dòch hướng cho các thao tác
chuỗi, các thao tác này được thực hiện bởi hai thanh ghi chỉ số SI
& DI, nội dung của hai thanh ghi này sẽ tự động tăng lên khi DF
= 0 và giảm xuống khi DF =1.
3.2).Khối giao tiếp (BIU):
Khối giao tiếp làm đơn giản việc liên lạc giữa EU và bộ nhớ
hoặc các vi mạch vào ra. Nó có nhiệm vụ gởi các đòa chỉ, số liệu và
tín hiệu điều khiển vào các bus, BUI & EU liên hệ với nhau bằng
các bus nội bộ, khi EU đang thi hành một lệnh, BIU nạp 6 byte
mã lệnh tiếp theo vào và đặt chúng vào hàng đợi lệnh, mục đích
của việc này là làm tăng tốc độ của vi xử lý. Nếu EU cần liên lạc
với bộ nhớ hay thiết bò ngoại vi, BIU sẽ treo các lệnh nhận trước
và thực hiện thực hiện các thao tác cần thiết. BIU cấu tạo gồm các
thanh ghi đoạn và con trỏ lệnh dùng để chứa đòa chỉ các ô nhớ.
a). Các thanh ghi đoạn:
Được dùng để lưu trử đòa chỉ của các lệnh và dữ liệu trong bộ
nhớ, vi xử lý dựa trên các giá trò này để truy cập bộ nhớ.
Bộ nhớ là tập hợp các byte ô nhớ, mỗi byte có một đòa chỉ xác
đònh bắt đầu từ 0. 8086 gán cho mỗi ô nhớ một đòa chỉ vật lý 20
bit. Như vậy, nó có thể đònh đòa chỉ đến byte (tương đương 1MB)
ô nhớ, các byte đầu tiên của bộ nhớ có đòa chỉ như sau: