Tải bản đầy đủ (.doc) (20 trang)

BÀI TẬP LỚN MÔN HỌC KIẾN TRÚC MÁY TÍNH: NGHIÊN CỨU TÌM HIỂU VỀ TẬP LỆNH VI XỬ LÝ 8086

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (502.74 KB, 20 trang )

Trường đại học công nghiệp Hà Nội
Khoa Công Nghệ Thông Tin
----------

BÀI TIỂU LUẬN MÔN HỌC: KIẾN TRÚC MÁY TÍNH
ĐỀ TÀI: Nghiên cứu tìm hiểu về tập lệnh vi xử lý 8086
Giáo viên hướng dẫn: Nguyễn Thanh Hải
Lớp: Đại học KTPM3-K9
Nhóm sô: 7

Hà Nội, ngày 15 tháng 10 năm 2015


Trường đại học công nghiệp Hà Nội
Khoa Công Nghệ Thông Tin

Báo cáo bài tập lớn mơn học
Kiến trúc Máy tính
ĐỀ TÀI: Nghiên cứu tìm hiểu về tập lệnh vi xử lý 8086
Nhóm thực hiện: Nhóm 7–Lớp KTPM3-K9
Thành viên trong nhóm:

1. Hồng Tấn Phát

2. Thân Thế Văn
3. Lê Thanh Trà
4. Ngơ Văn Chường
5. Ngũn Hữu Minh
6. Lê Q́c Bình
Giáo viên hướng dẫn: Ngũn Thanh Hải
(GV Kiến Trúc Máy Tính)


Hà Nợi ,ngày 15 tháng 10 năm 2015

2


MỤC LỤC
Nội dung

Trang

Lịch sử ra đời của VXL 8086

4

Khái niệm

5

Sơ đồ khối

7

Sơ đồ chân

10

Các hàm ngắt và tập lệnh của 8086

11


Các thiết bị ngoại vi IC 8255A

14

IC giải mã địa chỉ 74273

16

Giải mã địa chỉ 74LS139

17

Cấu tạo LED 7 đoạn

18

Kết luận

19

3


 Mở đầu
1. Nhiệm vụ của bài
Nghiên cứu tìm hiểu về tập lệnh vi xử lý 8086.
2. Bớ cục
* Trình bày sơ đồ khối chức năng bên trong CPU 8086.
* Đặc điểm chức năng các thanh trong CPU 8086.
* Cấu trúc lệnh cùng tập lệnh của 8086.


 Nội dung
I. LỊCH SỬ RA ĐỜI BỘ VI XỬ LÝ 8086
Cách đây 30 năm, Intel tung ra bộ vi xử lý 8086, giới thiệu kiến trúc x86, làm nền
tảng cho tất cả các PC bao gồm Windows, Mac hay Linux được sản xuất ngày nay.
Sự ra đời của bộ vi xử lý Intel 8086 năm 1978 là một sự kiện trọng đại đối với ngành
cơng nghiệp máy tính. Bộ vi xử lý 8086 là trung tâm của bất kỳ máy tính nào, từ
Windows, Mac hay Linux, đã biến Intel từ một công ty sản xuất chip bán dẫn nhỏ
thành một tên tuổi nổi tiếng nhất trên thế giới.
Điều ngạc nhiên về sự thành cơng kỳ diệu của 8086 là rất ít người kỳ vọng về nó
khi 8086 cịn đang được “thai nghén”. Lịch sử của bộ vi xử lý cách mạng này là một
câu chuyện kinh điển về một nhóm nhỏ các kỹ sư thiên tài có thể đạt được thành cơng
khi họ được tự do làm công việc nghiên cứu theo những cách sáng tạo.
Khi sự phát triển của 8086 bắt đầu vào tháng 5 năm 1976, các giám đốc điểu
hành của Intel chưa bao giờ tưởng tượng được sự tác động ngoạn mục mà 8086 mang
lại. Công ty xem 8086 như một dự án lấp chỗ trống trong khi công ty đang kỳ vọng
vào một bộ vi xử lý phức tạp và khác biệt là 8800 (tên sau đó là iAPX 432). Trong một
kỷ nguyên mà hầu hết các dòng chip đều sử dụng 8-bit dữ liệu, 8800 đã nhảy vọt lên
32 bit. Khả năng xử lý đa nhiệm nâng cao và mạch quản lý bộ nhớ có thể được xây
dựng tạo thành CPU, cho phép hệ điều hành chạy ít dịng mã điều khiển hơn.
Nhưng dự án 8800 gặp khó khăn. Dự án này đã vấp phải rất nhiều sự trì hỗn khi
các kỹ sư Intel nhận thấy rằng thiết kế phức tạp của chip rất khó có thể chế tạo với
công nghệ chip hiện thời. Vấn đề của Intel chưa dừng ở đó, Intel bị “chọc sườn” bởi
cơng ty Zilog (công ty được thành lập từ những kỹ sư xuất phát từ Intel). Zilog nhanh
chóng chiếm thị phần cho dòng vi xử lý bậc trung với sản phẩm Z80 CPU. Ra đời
tháng 7, năm 1976 Z80 là phiên bản nhái nâng cao của dòng chip Intel 8080 - dòng
chip đã khởi ng̀n cho cuộc cách mạng máy tính cá nhân. Intel đã phải đưa ra câu câu
trả lời cho Z80
Kỹ sư kì cựu của Intel – Stephen Morse là tác giả của những đoạn mã trong 8086.
4



Các giám đớc điều hành của Intel vẫn duy trì niềm tin vào 8800 nhưng biết rằng công
ty cần câu trả lời cho mối nguy từ Zilog. Họ quay sang Stephen Morse, người kỹ sư
điện tử 36 tuổi, người đã gây ấn tượng với họ về sự nghiên cứu kỹ càng tới các lỗi
trong thiết kế chip 8800. Công ty chỉ định Morse làm kỹ sư duy nhất cho dự án 8086.
“Nếu ban giám đớc Intel có một ý niệm mơ hờ nào đó rằng kiến trúc này sẽ tờn tại cho
rất nhiều thế hệ và trong các bộ vi xử lý… ngày nay thì họ sẽ khơng bao giờ tin tưởng
giao công việc này cho duy nhất một người” ông Morse hồi tưởng lại.
Bổ nhiệm Morse là một lý do ngạc nhiên khác. Ông ta là kỹ sư phần mềm. Trước đây,
thiết kế CPU ở Intel là miền đất chỉ cho các kỹ sư phần cứng. “Lần đầu tiên, chúng tơi
nhìn các tính năng của bộ vi xử lý từ các khía cạnh của phần mềm. Câu hỏi khơng phải
là những tính năng gì chúng ta có thể phát triển mà là những tính năng gì chúng ta
ḿn để làm cho phần mềm hiệu quả hơn.” Morse nói. Hướng tiếp cận tập trung vào
phần mềm đã chứng minh cho cuộc cách mạng trong ngành công nghiệp này.
Mặc dù 8086 là dự án “con cưng” của Morse, nhưng ông ta khơng làm việc đơn
độc. Tham gia vào nhóm của Morse là các nhân viên của Intel, bao gồm Bill Pohlman,
Jim McKevitt và Bruce Ravenel, tất cả đã góp sức đưa 8086 bước ra thị trường vào
mùa hè năm 1978.
Vượt ra ngoài việc chỉ dừng lại ở một số yêu cầu cơ bản, 8086 tương thích với
các phần mềm viết cho 8080 và có khả năng hỗ trợ 128KB bộ nhớ - các nhà lãnh đạo
của Intel không can thiệp vào cơng việc của Morse. “Bởi vì khơng ai mong đợi thiết kế
sẽ tồn tại lâu dài, không rào cản nào ngáng chân công việc của tôi, tôi tự do làm những
gì mình ḿn” ơng nói.

II. TỔ CHỨC BỘ XỬ LÝ INTEL 8086
1. Khái niệm
Vi xử lý là một bộ phận trung tâm của máy tính, nó có nhiệm vụ xử lý thông tin, vào ra
dữ liệu, điều khiển các thiết bị ngoại vi,… Một máy tính có cấu trúc bao gồm: chip vi
xử lý trung tâm (CPU), bộ nhớ ROM, RAM và các thiết bị ngoại vi có nhiệm vụ giao

tiếp giữa máy tính với con người.
Sơ đờ khới cấu trúc máy tinh như sau:

5


a.

Các bộ phậncủa cấu trúc máy tính :



Bộ vi xử lý (CPU- Central Processin Unit)
Với vai trò là bộ xử lý trung tâm, là đầu não của một máy tính, bộ vi xử lý phải

thực thi nhiều nhiệm vụ từ việc vào/ra dữ liệu, xử lý thơng tin, tính toán sớ liệu, điều
khiển các thiết bị ngoại vi,….


Bộ nhớ

-

Bộ nhớ được chia thành RAM và ROM:
+ RAM (Random Access Memory): là bộ nhớ có thể ghi/đọc, có nghĩa là ta có thể

đọc thơng tin từ bộ nhớ, xóa thơng tin cũ trong bộ nhớ hoặc ghi thông tin mới vào bộ
nhớ;
+ ROM (Read Only Memory) :dùng để chứa các chương trình điều khiển hệ thớng
như chương trình để kiểm tra các thiết bị mỗi khi bật ng̀n, chương trình khởi động

máy… Nội dung bên trong ROM không bị mất đi khi bị mất ng̀n.


Mạch ghép nới vào/ra

Mạch ghép nới vào/ra có nhiệm vụ tạo ra khả năng giao tiếp giữa hệ vi xử lý với thế
giới bên ngoài. Bao gồm các thiết bị như : thiết bị vào (bàn phím, chuột, máy
qt….).thiết bị ra(màn hình, máy in, …..)


Bus hệ thớng

Gờm có:
+ Bus điều khiển:là các đương dây mạng các tín hiệu điều khiển hoạt động hoặc phản
ánh trạng thái của các khối như /RD, /WR, /INT…
+ Bus dữ liệu là các đường dây mang số liệu mà vi xử lý đang trao đổi với thiết bị nhớ
hoặc thiết bị ra/vào.
+ Bus địa chỉ : mang thông tin về địa chỉ của ô nhớ hay một thiết bị vào/ra.
b.

phần cứng và phần mềm:
6




Phần cứng

Phần cứng (hardware) là thuật ngữ dùng để chỉ toàn bộ những thiết bị cơ khí, điện tử
tạo nên máy tính như các ổ đĩa, màn hình,…



Phần mềm
Phần mềm (software) là thuật ngữ dùng để chỉ các chương trình máy tính, nó

được thực thi trên phần cứng bằng cách điều khiển sự hoạt động của phần cứng.
Các phần mền được chia thành các loại sau:
Hệ điều hành như DOS, Windows,….
Trình tiện ích như NC, NU, BKAV,…
Chương trình ứng dụng như MS Word, Protel,……
Ngơn ngữ lập trình pascal, C, C++, Java,….
2.

Cấu tạo và chức năng của 8086

a.

Sơ đồ khôi của 8086

* Đặc điểm chức năng các thanh ghi trong CUP 8086

7


CPU-8086 có 16 thanh ghi, mỗi thanh ghi là 16 bit, có thể chia 4 nhóm sau:
1. Thanh ghi đoạn: Gồm 4 thanh ghi 16 bit: CS, DS, ES, SS. Đây là những thanh ghi
dùng để chứa địa chỉ đoạn của các ô nhớ khi cần truy xuất. Mỗi thanh ghi đoạn quản lý
1 đoạn tối đa 64K ô nhớ trong bộ nhớ trong. Người sử dụng chỉ được phép truy xuất ô
nhớ dựa vào địa chỉ tương đối. CPU (cụ thể là BIU) có nhiệm vụ chuyển đổi địa chỉ
tương đối thành địa chỉ tuyệt đối để truy xuất vào ô nhớ tuyệt đối tương ứng trong bộ

nhớ.
CS: Thanh ghi đoạn mã lệnh, lưu địa chỉ đoạn chứa mã lệnh chương trình của người sử
dụng
DS: Thanh ghi đoạn dữ liệu, lưu địa chỉ đoạn chứa dữ liệu (các biến) trong chương
trình.
ES: Thanh ghi đoạn dữ liệu thêm, lưu địa chỉ đoạn chứa dữ liệu thêm trong chương
trình.
SS: Thanh ghi đoạn ngăn xếp, lưu địa chỉ đoạn của vùng ngăn xếp.
CS:Code Segment
DS:Data Segment
ES:Extra data Segment
SS:Stack Segment
Thông thường bốn thanh ghi này có thể chứa những giá trị khác nhau, do đó chương
trình có thể được truy cập trên bớn đoạn khác nhau và chương trình chỉ có thể truy cập
cùng 1 lúc tối đa bốn đoạn. Mặc khác, đối với những chương trình nhỏ, chỉ sử dụng 1
đoạn duy nhất, khi đó cả bớn thanh ghi đều chứa cùng giá trị địa chỉ đoạn, gọi là đoạn
chung.
2. Thanh ghi đa dụng (General Register): Bao gồm bốn thanh ghi đa dụng 16 bit (AX,
BX, CX, DX). Mỗi thanh ghi đa dụng có thể được sử dụng với nhiều mục đích khác
nhau, tuy nhiên từng thanh ghi có cơng dụng riêng của nó.
AX : Là thanh ghi tích lũy cơ bản. Mọi tác vụ vào/ra đều dùng thanh ghi này, tác vụ
dùng số liệu tức thời, một số tác vụ chuỗi ký tự và các lệnh tính toán đều dùng thanh
AX.
8


BX: Thanh ghi nền dùng để tính toán địa chỉ ô nhớ.
CX: Là thanh ghi đếm, thường dùng để đếm sớ lần trong một lệnh vịng lặp hoặc lệnh
xử lý chuổi ký tự.
DX: Thanh ghi dữ liệu, thường chứa địa chỉ của một sớ lệnh vào/ra, lệnh tính toán sớ

học (kể cả lệnh nhân và chia).
Mỗi thanh ghi 16 bit có thể chia đơi thành 2 thanh ghi 8 bit. Do đó, CPU-8086 có 8
thanh ghi 8 bit là: AH, AL; BH, BL; CH, CL; DH, DL (thanh ghi AH và AL tương ứng
với byte cao và byte thấp của thanh ghi AX, tương tự cho các thanh ghi 8 bit cịn lại).
Ví dụ: AX = 1234h => AH = 12h, AL = 34h
3. Thanh ghi con trỏ và chỉ sớ (Pointer & Index register): Chức năng chung của nhóm
thanh ghi này là chứa địa chỉ độ dời của ô nhớ trong vùng dữ liệu hay ngăn xếp.
SI : Thanh ghi chỉ sớ ng̀n
DI : Thanh ghi chỉ sớ đích
BP: Thanh ghi con trỏ nền dùng để lấy số liệu từ ngăn xếp.
SP : Thanh ghi con trỏ ngăn xếp luôn chỉ vào đỉnh ngăn xếp.
SI:Source Index Reg.
DI:Destination Index Reg.
BP:Base Pointer Reg.
SP:Stack Pointer Reg.
SI và DI chứa địa chỉ độ dời của ơ nhớ tương ứng trong đoạn có địa chỉ chứa trong DS
hoặc ES (dữ liệu, còn gọi là Biến). Còn BP và SP chứa địa chỉ độ dời của ơ nhớ tương
ứng trong đoạn có địa chỉ chứa trong SS, dùng để thâm nhập số liệu trong ngăn xếp.
4. Thanh ghi Đếm chương trình và thanh ghi trạng thái (Cờ):
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).

9



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.
b. Sơ đồ chân của 8086

Vi xử lý 8086 được thiết kế để hoạt động một trong hai chế độ, tùy thuộc vào mức điện
áp đặt ở chân số 33 (chân MN/MX):
Chế độ tối thiểu (chế độ MIN) đươc thiết lập nếu điện áp ở chân số 33 ở mức 5V
Chế độ tối đa (chế độ MAX) được thiết lập nếu điện áp ở chân số 33 ở mức 0V
Vi xử lý 8086 có 20 đường địa chỉ từ A0 đến A19 tong đó 16 đường dây địa chỉ thấp từ
A0 đến A15 được ghép kênh dữ liệu từ D0 đến D15 trên các chân từ AD0 đến AD15 ;
còn 4 đường dây địa chỉ cao nhất từ A16 đến A19 được ghép kênh với tín hiệu trạng
thái từ S3 đến S6 trên các chân A16/S3 đến A19/S6.
-

Vi xử lý 8086 có 16 đường dây dữ liệu từ Do đến D15 được ghép kênh với 16

đường địa chỉ thấp từ D0 đến D15. Khi hoạt động ở chu kỳ bus dữ liệu thì các đường
dây này mang thơng tin về dữ liệu, là dữ liệu đọc ra hay vào bộ nhớ.
-

Bốn đường dây địa chỉ cao nhất từ A16 đến A19 của 8086 cũng được ghép kênh

, nhưng trong trường hợp này nó được ghép kênh với các tín hiệu trạng thái từ S3 đến
S6. Các bít trang thái này được đưa ra cùng thời điểm với các dữ liệu được truyền
trên các chân AD0 đén AD15.
-


READY: Tín hiệu báo cho CPU biết tình trạng sẵn sàng của thiết bị ngoại vi

hay bộ nhớ. Khi READY = 1 thì CPU thực hiện đọc/ghi dữ liệu. Khi các thiết bị ngoại
10


vi hay bộ nhớ có tớc độ chậm, chúng có thể đưa tín hiệu READY = 0 để báo cho CPU
biết mà chờ chúng
-

ALE: [I] Address Latch Enable. Xung cho phép chớt địa chỉ. Khi ALE = 1 có

nghĩa là trên các chân ghép kênh AD có địa chỉ của thiết bị vào/ra hoặc ônhớ. Khi
CPU chấp nhận treo chân này không ở trạng thái trở kháng cao mà ALE = 0.
-

: [O] Data bus Enable. Kích hoạt các bộ đệm bus dữ liệu.

-

: Chọn bộ nhớ (= 0) hoặc thiếtbị vào/ra (= 1) làm việc với CPU. Khi đó trên

bus địa chỉ sẽ có địa chỉ tương ứng của các thiết bị đó. Chân này ở trạng thái trở kháng
cao khi CPU chấp nhận treo.
-

:[O] Data Transmit/Receive. Tín hiệu này cho biết bus dữ liệu đang vận chuyển

dữ liệu vào CPU hay ra khỏi CPU. Tín hiệu này cũng dùng để điều khiển các bộ đệm 2

chiều của bus dữ liệu.
-

: Dùng để báo rằng đang truy cập năng cao hay băng thấp của bộ nhớ

-

:[O] Read signal. Xung cho phép đọc. Khi RD = 0 thì bus dữ liệu nhận dữ liệu

từ bộ nhớ hoặc thiết bị ngoại vi.
-

INTR: [I] Interrupt request. Khi có yêu cầu ngắt (INTR = 1) mà cờ cho phép

ngắt IF = 1 thì CPU kết thúc lệnh đang làm dở, sau đó đi vào chu kỳ chấp nhận ngắt và
đưa ra bên ngoài tín hiệu INTA = 0.
-

:[I] Tín hiệu tại chân này được kiểm tra bởi lệnh WAIT. Khi CPU thực hiện

lệnh WAIT mà lúc đó tín hiệu TEST = 1 thì nó sẽ chờ cho đến khi tín hiệu TEST = 0
thì mới thực hiện lệnh tiếp theo.
-

NMI: [I] None-Maskable Interrupt. Tín hiệu u cầu ngắt khơng che được.

-

RESET: Dùng để thiết lập lại phần cứng cho CPU. Chuyển RESET xuống mức


logic 0 dùng để khởi tạo các thanh ghi nội của vi xử lý và khởi tạo chương trình con
phục vụ thiết lập hệ thống.
c. Các hàm ngắt và tập lệnh của 8086:


Tập lệnh của 8086

+ Lệnh XCHG: toán hạng đích và ng̀n được đổi lẫn cho nhau
XHCG đích, ng̀n
+ Lệnh XLAT: XLAT nhãn_ng̀n
+ Lệnh ADD, SUB: ADD đích,ng̀n - cộng ng̀n vào đích
11


+ Lệnh ADC: cờ nhớ được cộng vào toán hạng đích và ng̀n
ADC đích,ng̀n
+ Lệnh DIV: thực hiện phép chia khơng dấu, toán hạng ng̀n có thể là một ơ nhớ hay
đoạn ghi. Nếu toán hạng nguồn là 8 bit thì thương sớ nằm trong AL, sớ dư nằm trong
AH; nếu toán hạng ng̀n là 16 bit, thì thương sớ nằm trong AX cịn sớ dư nằm trong
DX
DIV ng̀n;
+ Lệnh IDIV (integer divide): thực hiện phép chia có dấu.
IDIV ng̀n;
+ Lệnh IMUL: thực hiện phép nhân có dấu.
IMUL ng̀n;
+ Lệnh INT : dùng để gọi các hàm của DOS và BIOS ;
Cú pháp : int 21h
+ Lệnh MOV: chuyển dữ liệu từ toán hạng ng̀n vào toán hạng đích
MOV đích, nguồn
+ Lệnh OUT: xuất dữ liệu từ đoạn chứa ra cổng

OUT cộng,đoạn_chứa
+ Lệnh IN: đọc dữ liệu từ cổng vào đoạn ghi.
IN đoạn ghi, cổng
+ Các lệnh AND, OR, XOR và TEST
AND đích, ng̀n ;AND đích với ng̀n, kết quả lưu ở đích
OR đích, ng̀n ;OR đích với ng̀n, kết quả lưu ở đích
XOR đích, ng̀n;XOR đích với ng̀n, kết quả lưu ở đích
TEST đích, ng̀n ;AND đích với ng̀n, kết quả không lưu lại
+ Lệnh HLT (HaLT): đưa bộ vi xử lý vào trạng thái dừng để chờ ngắt ngoài. Dạng
lệnh: HLT
+ Lệnh LOCK: khóa bus trong mơi trường có nhiều bộ vi xử lý.
+ Lệnh NOP: khơng thực hiện một thao tác nào.
+ Lệnh STI: IF được thiết lập 1.
+ Lệnh WAIT: Bộ vi xử lý ở trạng thái chờ cho đến khi ngắt ngoài
+ Lệnh PUSH: cất dữ liệu vào ngăn xếp, giảm SP đi 2.
PUSH ,nguồn ;
12


+ Lệnh PUSHF: chuyển đoạn ghi cờ vào ngăn xếp.
PUSHF;
+ Lệnh POP: lấy dữ liệu ra khỏi ngăn xếp và đưa vào toán hạng đích.
POP dich;
+ Lệnh POPF: chuyển nội dung của 2 byte từ đinh ngăn xếp vào đoạn ghi cờ, sau đó
tăng con trỏ ngăn xếp lên 2.
POPF;
+ Lệnh CALL: gọi thủ tục.
CALL nhan;
+ Lệnh RET: trả lại điều khiển khi thủ tục được thực hiện xong.
RET;



Các hàm ngắt 21h của 8086

-

Hàm 1: là hàm chờ đọc vào 1 ký tự từ thiết bị vào ra chuẩn(bàn phím). Kết quả

được lưu vào trong AL.
Cú pháp:

MOV AH,1

INT 21H
-

Hàm 2 : là hàm hiển thị nội dung thanh ghi DL lên màn hình hoặc thi hành các

chức năng điều khiển.
Cú pháp:

MOV AH,2
MOV DL,’A’
Int 21H

-

Hàm 4CH : là hàm kết thúc chương trình hiện tại và trả điều khiển về cho

chương trình gọi nó.

Cú pháp :

MOV AH,4CH
INT 21H

-

Hàm 9 : Là hàm hiển thị ra màn hình một chuỗi kí tự
Cú pháp : MOV AX,@DATA
MOV DS,AX ;khởi tạo thanh ghi đoạn dữ liệu DS
MOV AH,9
LEA DX,’chuỗi ký tự’
INT 21H



Cấu trúc chương trình lập trình cho 8086
13


Model small :khai báo kiểu bộ nhớ small
Stack 100h :khai báo kích thước ngăn xếp là 100h
Data: khai báo đoạn dữ liệu ; khai báo các biến, các hằng ở đây
Code: khai báo đoạn mã
Main proc : các lệnh chương trình chính
Main endp : các hàm và thủ tục
End main.
3. Các thiết bị ngoại vi
* IC 8255A
1. Sơ đồ chân và chức năng của mỗi chân


- Trên thị trường và nghiên cứu chúng ta chỉ nghiên cứu loại đóng gói dạng DIP 40
chân của IC 8255A:
- Các chân 14, 15, 16, 17, 13, 12, 11, 10: tương ứng theo thứ tự từ PC0 đến PC7. Đây
là cổng giao tiếp dữ liệu 8 bít PC, khi cần thiết, nó có thể tách thành 2 phần PC cao từ
bít PC7 đến PC4 và PC thấp từ bít PC0 đến PC3
- Các chân 4, 3, 2, 1, 40, 39, 38, 37: tương ứng với cổng PA từ PA0 đến PA7. Đây là
cổng giao tiếp dữ liệu 8 bit vào/ ra PA. Tùy theo thanh ghi điều khiển được cài đặt mà
cổng này có thể xuất dữ liệu ra hoặc nhận dữ liệu vào
- Các chân từ 18 đến 25: tương ứng với cổng PB từ PB0 đến PB7 . Tương tự như
cổng PA, cổng PB cũng có thể đưa dữ liệu 8 bít ra hoặc vào bằng cách thiết lập giá trị
của thanh ghi điều khiển.
- Các chân từ 27 đến 34 : tương ứng theo thứ tự từ D7 đến D0 - Bus dữ liêu(2 chiều).
Bus dữ liệu 2 chiều này được nới tới các tín hiệu tương ứng của Vi xử lý để trao đổi dữ
liệu vào/ra do chip 8086 xử lý

14


- Chân 35: là chân Reset - khởi tạo trạng thái ban đầu của IC 8255. Nếu đặt mức này
lên mức 1 thì IC bị RESET lại từ đầu. để mạch có thể chạy được, chúng ta phải đặt
chân này về mức 0V – GND.
- Chân 6: chân /CS - Tín hiệu chọn vi mạch. Đây là tín hiệu tích cực ở mức thấp 0v,
vì vây chúng ta phải đặt chân này ở mức thấp để chọn IC 8255 hoạt động. nhờ vậy,
chân này được sử dụng để kết hợp với mạch giải mã địa chỉ để Vi xử lý điều khiển nó
hoạt động đúng yêu cầu.
- Chân 5: chân /RD (Read)- là chân tín hiệu cho phép đọc.
- Chân 36: chân /WR(Write) – là chân tín hiệu cho phép ghi.
- Chân 9 và 8: tương ứng với chân tín hiệu địa chỉ A0 – A1, 2 chân này được nới với
2 bít được tách ra từ bộ tách địa chỉ của 8086, 2 chân này dùng để giải mã cho các

cổng của 8255 với quy luật sau:
+ A1A0 là 00: mã hóa cho cổng PA
+ A1A0 là 01: mã hóa cho cổng PB
+ A1A0 là 10: mã hóa cho cổng PC
+ A1A0 là 11: mã hóa cho thanh ghi điều khiển
Chính vì vậy, để chọn đúng vị trí cổng chúng ta phải đưa 2 bít bất kì được tách
ra từ bộ tách tín hiệu địa chỉ sao cho 2 chân này cũng được mã hóa đúng như quy luật
của A1, A0 trên 8255
2.

Chế độ hoạt động
1

A6

A5

A4

A3

A2 A1

A0

Tùy thuộc vào đoạn ghi điều khiển khi khởi tạo mà vi mạch có thể hoạt động ở các
chế độ 0, 1, 2 khác nhau, chiều của các cổng A, B, C có thể ra hoặc vào.
Thanh ghi điều khiển gờm có 8 bit, mỗi bít có các chức năng khác nhau:
1


A6

A5

A4

A3

A2

A1

A0

+ Bit A6 và A5 dùng để chọn chế độ nhóm A


Nếu A6 A5 là 00 thì chọn chế độ 0



Nếu A6 A5 là 01 thì chọn chế độ 1



Các trường hợp khác sẽ khơng xác định

+ Bít A4: chọn chiều cho cổng A4,



Nếu A4=0: cổng A4 sẽ xuất dữ liệu ra.



Nếu A4=1: cổng A4 sẽ nhận dự liệu bên ngoài vào
15


+ Bít A3: chọn chiều ra/vào cho 4 bit cao của cổng PC


Nếu A3=0 thì cho phép cổng PC cao x́t dữ liệu ra



Nếu A3=1 thì cho phép cổng PC cao nhận dữ liệu

+ Bít A2: chọn chế độ nhóm B


Nếu A2=0 thì chọn chế độ 0



Nếu A2=1 thì chọn chế độ 1

+ Bít A1: chọn chiều ra/vào cho cổng PB


Nếu A1=0 thì cho phép cổng PB x́t dữ liệu ra




Nếu A1=1 thì cho phép cổng PB nhận dữ liệu

+ Bít A0: chọn chiều ra/vào cho 4 bit thấp của cổng PC


Nếu A0=0 thì cho phép cổng PC thấp x́t dữ liệu ra



Nếu A0=1 thì cho phép cổng PC thấp nhận dữ liệu

VD: để chọn chế độ nhóm A là chế độ 0, nhóm B là chế độ 0, cổng PA, PB xuất dữ
liệu, cổng PC nhận dữ liệu , ta cài đặt thanh ghi điều khiển như sau:
Mov al, 100010001B
Out DK, al
Chế độ 0:
+ các cổng A, B, C được sử dụng độc lập với nhau.
+ Cổng A, B, C có thể vào hoặc ra tùy vào đoạn ghi điều khiển
-

Chế độ 1: chế độ này được gọi là chế độ vào/ra đột cửa hay đối thoại với các bit

của cổng C. Các cổng A, B, C được chia thành 2 nhóm:
+ Nhóm A gờm cổng A để trao đổi dữ liệu và cổng C cao để đối thoại với Vi Xử Lý
và thiết bị ngoài.
+ Nhóm B gờm cổng B để trao đổi dữ liệu và cổng C thấp để đối thoại với Vi Xử Lý
và thiếu bị ngoài

* IC giải mã địa chỉ 74273
Cấu tạo bên trong và chức năng các chân:

16


IC 74273 là IC sớ được tích hợp bỏi 8 con flip-flop loại D lắp theo kiểu đồng bộ xung
đồng hờ và chân clear. IC gờm có 20 chân trong đó:
+ Chân 20 nới với Vcc nằm ở dải 4,75 đến 5,25 Volt
+ Chân 10 nối với Mass
+ Chân 1 là chân Clear (MR)
+ Chân 11 là chân xung đồng hồ (CP)
+ Các chân 3, 4, 7, 8, 13, 14, 17, 18 là chân tín hiệu vào nới với các dây tín hiệu đa
hợp của Vi Xử Lý.
+ Các chân 2, 5, 6, 9, 12, 15, 16, 19 là các chân tín hiệu địa chỉ được tách ra.
- Do nó được tích hợp bởi 8 con FF_D nên mỗi IC chỉ có thể tách được 8 đương địa
chỉ đa hợp cua 8086. Vì vậy mạch cần 2 con IC 74273 để tách hết 16 đường địa chỉ
của 8086.
- Tùy theo đề bài yêu cầu mà các đầu ra này được sử dụng với mục đích khác nhau,
các chân này được nối với mạch giải mã địa chỉ đưa vào chân CS của 8255 và dành ra
2 bit để mã hóa cho các cổng của 8255, 2 chân này được nối vào chân A1, A0 của
8255.
*Giải mã địachỉ 74LS139:
sơ đồ cấu tạo bên trong và chức năng các chân của IC 74LS139:

17


- IC 74LS139 là IC giải mã 2 bít với các đầu ra tích cực ở mức âm. IC này được đóng
gới dạng DIP 16 chân. Bên trong IC này được tích hợp 2 bộ giải mã 2 bit với chức

năng các chân như sau:
o

Chân 1 (1G) và 15(2G): là 2 chân chọn chip của 2 bộ giải mã tích cực ở mức

thấp, nghĩa là, để cho phép bộ giải mã nào hoạt động thì chân G tương ứng của bộ đó
đặt ở mức 0V.
o

Chân 2, 3 và 14, 13: là 2 chân tín hiệu cần giải mã vào tương ứng của 2 bộ giải

mã.
o

Chân 4, 5, 6, 7: là các chân tín hiệu ra Y0, Y1, Y2, Y3 của bộ giải mã thứ nhất

o

Chân 12, 11, 10, 9: là các chân tín hiệu ra của bộ giải mã thứ hai

o

Chân 8 (GND) và chân 16 (Vcc): là 2 chân ng̀n ni chip.

-

Cơ chế mã hóa như sau: nếu 2 chân tín hiệu đầu vào B,A được đặt mưc logic

tương ứng là:
o


00: thì chân Y0 ở mức logic thấp(0v), các chân ra cịn lại ở mức cao.

o

01: thì chân Y1 ở mức logic thấp(0v), các chân ra còn lại ở mức cao.

o

10: thì chân Y2 ở mức logic thấp(0v), các chân ra cịn lại ở mức cao.

o

11: thì chân Y3 ở mức logic thấp(0v), các chân ra còn lại ở mức cao

* Cấu tạo LED 7 đọan
- LED 7 đoạn là loại LED được tích hợp bởi 8 LED đơn sắc sắp xếp thành hình sớ 8
và 1 dấu chấm phía dưới.
Có 2 loại LED 7 đoạn:
+ Chung Anode: các LED tích hợp bên trong được mắc nới chung cực Anot
(CA).
+ Chung Cathode: các LED tích hợp bên trong mắc nối chung cực Katot (CC).
18


Hoat động:
Đối với loai LED mắc theo kiểu Anot chung thì chúng ta cấp ng̀n Vcc vào chân
Anot (chân 8). Để có thể hiển thị các chữ sớ như mong ḿn thì chúng ta phải nới các
chân a, b, c, d, e, f, g với mass tương ứng với chữ sớ đó.
VD: sớ 1 thì chúng ta nới chân b(6) và c(4) với mass

Số 2 thi chúng ta nối chân a(7), b(6), g(10), e(1) và d(2) với mass.
Đối với loai mắc theo kiểu Katot chung thi chúng ta nối chân Katot (8) với mass.
Để có thể hiển thị các chữ sớ như mong ḿn thì chúng ta phải nới các chân a, b, c, d,
e, f, g với Vcc tương ứng với chữ sớ đó.

III. KẾT ḶN
Nhìn chung, bộ vi xử lý 8086 là một bước tiến lớn của hãng sản xuất Intel trong
nền lập trình vi xử lý, là bước mở đầu cho sự phát triển các thế hệ vi xử lý tiếp theo
cùng với những tính năng mạnh mẽ, kết nối với các thiết bị ngoại dễ dàng cùng với tập
lệnh hỗ trợ ngày càng lớn.
Vơi những gì chúng em đã thực hiện và mô phỏng bằng phần mêm chuyên
dụng, chúng ta thấy được những gì mà bộ vi xử lý có thể làm được và những gì mà bộ
vi xử lý 8086 vẫn chưa thể giải quyết được như: mạch kết nới cờng kềnh, chi phí lắp
đặt cao, tớc độ xử lý cịn thấp.
Vơi những gì mà nhóm em được tiếp thu và học tập, nhóm em đã hoàn thành
bài tập lớn thành công. Tuy nhiên trong quá trình trình bày khơng thiếu những sai sót,
mong các thầy cơ bỏ qua và đóng góp cho chúng em những ý kiến hữu ích để mỗi

19


chúng em được hoàn thiện bản thân hơn, cũng như thành công hơn trong các bài tập
lớn tiếp theo.

20



×