1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Giao tiếp máy tính với kit vi xử lý 8086

100 0 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Giao tiếp máy tính với kit vi xử lý 8086
Tác giả Phạm Xuân Hưng
Người hướng dẫn Nguyễn Đình Phú
Trường học Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh
Chuyên ngành Kỹ thuật điện - Điện tử
Thể loại Luận văn tốt nghiệp
Năm xuất bản 2000
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 100
Dung lượng 9,21 MB

Nội dung

Để 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 dao tiếp giữa hai hé vi xứ lý với nhau ha

Trang 1

BO GIAO DUC VA DAO TAO TRUONG DAI HOC SU’ PHAM KY THUAT

THÀNH PHÓ HÒ CHÍ MINH

HGMUIIE

ĐỎ ÁN TÓT NGHIỆP NGÀNH LUẬN VĂN TÓT NGHIỆP

GIAO TIEP MÁY TÍNH VỚI KIT VI XỬ LÝ 8086

GVHD: NGUYEN DINH PHU SVTH: PHAM XUAN HUNG

TP Hồ Chí Minh, tháng 2/2000

Trang 2

Z ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

2\⁄⁄2“EÌ _ KHOA ĐIỆN „ ĐIỆN TỬ

Giáo viên hướng dẫn: NGUYỄN ĐÌNH PHÚ

Sinh viên thực hiện: PHAM XUAN HUNG

Trang 3

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH ĐẠI HỌC SƯ PHAM KY THUAT

KHOA ĐIỆN - ĐIỆN TỬ LUẬN VĂN TỐT NGHIỆP

GIAO TIEP MAY TINH VOI

KIT VI XU LY 8086

PHAN 1: GIGI THIEU CHUNG

CHUONG DAN NHAP

CHƯƠNG CƠ SỞ LÝ LUẬN

CHUONG I: CAU TRUC VIXU LY 8086 ~~

CHUONG I: KHAO SAT TONG QUAT TAP LENH 8086 <”

CHUONG III: GIAO TIEP VOI MAY TINH

PHẦN 2 : PHAN CUNG VA PHAN MEM CUA MACH GIAO TIEP

CHUONG IV: GIỚI THIỆU KIT VXL 8086 ~~

CHUONG V: GIAO TIẾP NỐI TIEP DUNG VI MACH 82514

CHUONG VI: CHUONG TRINH GIAO TIEP ( CHUONG TRINH

TRUYEN, NHAN DU LIEU)

PHAN 3: TONG KET VA DANH GIA

HUONG PHAT TRIEN DE TAI

KẾT LUẬN ĐÁNH GIÁ

TÀI LIỆU THAM KHẢO

TP Hồ Chí Minh : 2 -2000

Trang 4

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

COD

Họ và tên sinh vién: PHAM XUAN HUNG

Lớp: 95KDD

Ngành: Kỹ thuật điện - Điện tử

- Tên để tài: GIAO TIẾP MÁY TÍNH VỚI KIT VI XỬ LÝ 8086

ố liệu ban đâu:

Giáo viên hướng dẫn : NGUYỄN ĐÌNH PHÚ

¡_ 6 Ngày giao nhiệm vụ : 13/12/1999

(7 Ngày hoàn thành nhiệm vu: 25 /2 /2000

am

Ngày |&tháng | 2ndm 1999

Chủ nhiệm bộ môn:

Trang 5

NHÂN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

Trang 6

Giáo viên hướng dẫn:

Trang 7

NHAN XET CUA GIAO VIEN PHAN BIEN

OS

N2 hep ipa ig itd

Trang 8

Giáo viên phân biện:

Trang 9

_ BANG NHAN XET |

LUAN VAN TOT NGHIEP CUA HOI DONG GIAM KHAO

Ho va tén sinh vién : PHAM XUAN HUNG

Mã số sinh viên : 95101066

Ngành : Điện - Điện tử

'Tên đề tài:

GIAO TIẾP GIỮA KIT VI XỬ LÝ 8086 VÀ MÁY VI TÍNH

Nhận xét của hội đồng giám khảo :

Ngày tháng năm2000

Hội đồng giám khảo

Trang 10

Luận văn tốt nghiệp

MỤC LỤC

Chương dẫn nhập

Chương cơ sở lý luận

1 Xây dựng đã cương luận văn

H Kế hoạch nghiên cứu

Chương I : Cấu trúc bên trong của VXL 8086

L Cấu tạo bên trong

1 khối thực hiệ

2 khối phối phối ghép bu

3 sơ đồ khối bén trong

H Cấu ưúc bén trong và chức năng của VXL 808

1 sơ đồ chán của VXIL 8086

Chương III : Giao tiếp với máy tính

L Giao tiếp song song

1 Giao tiếp qua cổng máy

1 Giao tiếp qua Slot card

I _ 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 dan tin hi

Phần 2 : Phần cứng của mạch giao tiếp

Chương IV : giới thiệu kit VXL 8086

1 Các linh kiện bán dẫn liên quan

vi mạch MAX 232

IC đệm 74LS244

Mach tao xung nhip 828

“Tổng quát về bộ nhớ

IL Giới thiệu kit VXL 8086

Chương V : Gao tiếp nối tiếp dùng 8251A

1L truyễn thông tin nối tiết

IL Vi mach USART 8251

II Ư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

Trang 11

Luận văn tốt nghiệp

Chương VI : các chương trình truyền dữ liệu

1 chương trình truyền, nhận dữ liệu dữ liệu trên kit Oe

1 Giải thuat

2 Chương trình

I — Chương trình truyền dữli

Phan 4 : Tong kết , đánh giá

Hướng phát triển để tài

Trang 12

Loi cdm ta

OS

Trong thời gian thực hiện để tài sinh viên thực hiện đã học hỏi được

nhiéu diéu bé ich tit thay 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.HO CHI MINH Ngay 25 tháng 2 năm 2000

Sinh viên thực hiện :

Phạm Xuân Hưng

Trang 13

LOI NOI DAU

Đấ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 khée 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, hoc 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êmvà ứ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

Trang 14

PHAN 1

GI6IT THIEU

CHUNG

Trang 15

Luận văn tốt nghiệp

CHƯƠNG DẪN NHẬP

— 00Oo_

I Đặt vấn đề

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 : 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 dao 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 thực hiện quyết định thực hiện để tài

“ Giao tiếp máy tính với kít VXL 8086” Mục đích dé học hồi và tìm hiểu thêm các ứng dụng cuả 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

I Giới hạn vấn đề

Đồ án này thực hiện việc giao tiếp giữa kit VXL 8086 với máy tính, chủ yếu

là việc truyền dữ liệu giữa 2 hệ thống và chỉ thi công và viết chương trình

truyền dữ liệu từ máy tính tới kit VXL Phương án truyền dữ liệu từ kit VXL tới

¡ máy tính hoàn toàn có thể thực hiện được song thời gian thực hiện đề tài chỉ có

¡_ 8 tuần sinh viên thực hiện đề tài chỉ tập trung viết chương trình truyền dữ liệu từ máy tinh tdi kit VXL

Tóm lại những giới hạn trên không phải là không thực hiện được nhưng thời

gian thực hiện để tài cũng như kiến thức có hạn nên để tài chưa được hoàn hảo

1H, Mục đích ngiên cứu

Kết qủa thực hiện đè tài mang ý nghĩa sau:

- Đây là tập đổ án tốt nghiệp, nó là cơ sở để nhà trương đánh giá kiến thức cuẩ

sinh viên trước khi ra trường

- Để 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

|

Trang 16

Luận văn tốt nghiệp

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 của mạch giao tiếp

Phân IIT: phần mềm cuả mạch đao tiếp

Phần Iử : tổng kết và đánh giá

2) Dối tượng nghiên cứu:

Vi xứ lý là ưung 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 dié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

Trang 17

Luận văn tốt nghiệp

CHƯƠNG CƠ SỞ LÝ LUẬN

=

1) Xác định nhiệm vụ nghiên cứu:

Việc chọn dé 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 nhụ 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à

bang 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 Programing and Interfacing — John uffnbeck: 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

ting dung

7 Kỹ thuật vi xử lý — Van 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

Trang 18

1 CẤU TẠO BỀN TRONG

Bên trong gồm hai khối chính:

- Kh6i thuc hién EU (Execution Unit)

- Khdi giap iép bus (Bus Interface Unit)

dùng để thực hiện các thao tác khác nhau với các toán hạng cua lệnh Tóm lại khi

CPU hoạt động EU sẽ cung cấp thông tin về địa 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 địa chỉ, đọc mã lệnh từ bộ nhơ Nói cách khác BIU chiu trách nhiệm đưa địa chỉ ra bus và trao đổi dữ liệu với bus,

Trong BIU còn có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 của 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

| dung vào trong các bộ VXL thế hệ mới

3 Sơ đô khối bên trong và chức năng các khối cuả VXL 8086

GVHD : Nguyễn Đình Phú Trang 1

|

Trang 19

| Điều khiển bus và

Trang 20

„~„ *,/) 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 ghí dùng để chứa dữ liệu cho các phép tính Mỗi thanh ghi giống như một 6 nhớ ngoại trừ chúng được đặt tên thay vì dùng số để chỉ địa chỉ EU (Execution ỦniU) 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):

SP Con tré Stack (Stack Pointer)

BP Con tré nén (Base Pointer)

SI Chỉ số nguồn (Source Index)

DI Chỉ số đích (Destnation Index)

+ Các thanh ghi đoạn (Segment Register):

cs Doan ma (Code Segment)

DS Doan dif liéu (Data Segment)

Ss Doan Stack (Stack Segment)

ES Doan thém (Extra Segment)

¢ _C&c thanh ghi trạng thái va điều khiển (Status & Control Register):

IP Con trổ lệnh (Intruction Pointer) Flag 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

GVHD : Nguyễn Đình Phi Trang 3

Trang 21

các byte cao và byte thấp của các thanh ghỉ 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

e© Thanh ghỉ tích liy AX (Accumulator):

Là thanh phi duce sit dung 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 dung cho tính toán địa chỉ trong phương pháp định địa chỉ

gián tiếp

e Thanh ghi đếm CX (Coun0:

Việc thực hiện các chương trình lập được thực hiện 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 dich

hay quay các bit

e _ 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 va 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ức các địa chỉ offset của các ô nhớ đó) Khác với thanh ghi đoạn, các thanh ghỉ 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 SegmenÐ)để lưu trử địa chỉ trở về hoặc dữ liệu vào trong ngăn xếp

e 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

e Thanh ghỉ 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

GVHD : Nguyễn Đình Phá Trang 4

Trang 22

e Thanh ghi chỉ số đích DI (Destination Index):

Thanh ghỉ DI có chức năng tương tự như thanh ghi Sĩ và được dùng kết hợp với

thanh ghi đoạn thêm ES (Extra Segment) Cả hai DI va 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: firt in firt 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 cd (Flag Register):

Thanh ghi cờ của 6086 có đó dài 16bit (2byte) byte thấp chứa các bit trạng thái

giống như trong #085 phản ánh trạng thái của vi xử lý, byte cao chứa | bit trang thái

đó là bít 11 và 3 bịt đ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 § 7 0

I olpli [tls [z Al [Pp 6 Thanh ghi cờ của 5056

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

+ Cd chin lé PF:

Sau các lệnh số học hoặc logic đối với các lệnh byte néu sé lugng 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ụ AE:

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

GVHD : Nguyễn Đình Phú Trang 5

Trang 23

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 I (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 TI: được lập DI:BUG sử dụng chính phục vụ ngắt này để lấy quyển điều khiển từ vị 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 phan 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 Interrup)

Trước khi ví 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 khí 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à

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 =l

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 mach

vào ra Nó có nhiệm vụ gởi các địa chỉ , số liệu và tín hiệu dié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

GVHD : Nguyễn Đình Phú Trang 6

Trang 24

thiết BIU cấu tạo gồm các thanh ghi đoạn và con trổ lệnh dùng để chứa dia chi các

ô nhớ

a) Các thanh ghủ đ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 dia chi vat ly 20 bit Nhu vậy, nó có thể định địa chỉ

đến byte (tương đương IMB) ô nhớ, các byte đầu tiên của bộ nhớ có địa chỉ như

00002H t2esoE

và cứ tiếp tục cho đến giá trị lớn nhất là FFFFFH

Do các địa chỉ quá lớn (20 bit) không thể chứa trong một thanh ghi của 8086 (16 bit) nên 8086 chía bộ nhớ thành các đoạn bộ nhớ (Memory Segment)

Một đoạn bộ nhớ là một khối gồm 2'° (64K) ô nhớ liên tiếp nhau, mỗi đoạn

được xác định bằng một địa chỉ đoạn bắt đầu từ địa chỉ 0, địa chỉ đoạn là một số 16 bit nên địa chỉ đoạn lớn nhất là FFFF Bên trong mỗi đoạn số ô nhớ được xác định

bằng địa chỉ tương đối (offset), đó là số byte tính từ đầu đoạn, với một đoạn 64K thì

offset cũng là một số 16 bit, byte đầu tiên trong đoạn có offset bằng 0 và byte cuối

cùng bằng FFFF

Một ô nhớ có thể được xác định bằng địa chỉ đoạn:địa chỉ tương đối trong đoạn

(segment:offset) và được gọi là địa chỉ logic

Thí dụ: ô nhớ A4EB: 4872 có địa chỉ đoạn là A4FB và địa chỉ offset là 4872

Để tìm địa chỉ vật lý của ô nhớ trước tiên ta dịch địa chỉ đoạn về bên trái 1 bit và

sau đó cộng với địa chỉ offset, như vậy địa chỉ vật lý của ô nhớ A4FB:4872 được

tính như sau: A4FB0

4872 A9822

GVHD : Nguyễn Đình Phú Trang 7

Trang 25

cho 16 ( các địa chỉ kết thúc bằng 0) là các biên giới khúc (Paragraph Boundary)

©) Các đoạn của chương trình:

Mỗi đoạn chương trình ngôn ngữ máy bao gồm các lệnh và dữ liệu, còn một

vùng đặc biệt trong RAM gọi là ngăn xếp (stack) Mã lệnh, dữ liệu và ngăn xếp của

chương trình được nạp vào các đoạn bộ nhớ khác nhau đó là đoạn mã (code

segment), doan dữ liệu (data segment), đoạn ngăn xếp (stack segment)

ĐỂ theo dõi các đoạn khác nhau của chương trình 8086 được cung cấp 4 thanh

ghi đoạn để chứa các địa chỉ đoạn, các thanh ghi CS, DS, SS lần lược chứa các địa chỉ đoạn mã, đoạn đữ liệu, và đoạn ngăn xếp Nếu chương trình muốn truy cập đến

một dữ liệu thứ hai nó có thể sử dụng thanh ghi đoạn thêm ES (extra segment)

Một chương trình không phải bao giờ cũng cần chiếm hết một đoạn 64KB, do

đặc điễm chồng nhau giữa các đoạn cho phép các đoạn của một chương trình nhỏ

hơn 64KB có thể đặt gần lại với nhau Tại một thời điểm, chỉ có các ô nhớ được định địa chỉ bởi 4 thanh ghí đoạn mới có thể truy cập, nghĩa là chỉ có 4 đoạn bộ nhớ là tác

động Tuy nhiên nội dung của các thanh ghi đoạn có thể thay đổi bởi chương trình

để truy cập đến các đoạn khác nhau

d) Hàng đợi lệnh:

Như ta đã biết, để tăng tốc độ vi xử lý khối BIU tiếp nhận các lệnh và đưa vào hàng

đợi lệnh (Queue) trong khi đó khối EU đang thi hành lệnh Hàng đợi lệnh có thể

nhận 6 byte mã lệnh, các lệnh của 8086 có độ dài từ 1 đến 6 byte, nếu lệnh chưa vào đây đủ trong hàng đợi lệnh thì khối EU sẽ chờ cho đến khi lệnh nạp hết vào

hàng đợi lệnh

II CẤU TRÚC BÊN NGOÀI VÀ CHỨC NĂNG CỦA VXL 8086

1) Sơ đồ chân của 8086:

8086 là vi xử lý 16 bit nó gồm 16 đường dữ liệu và 20 đường địa chỉ, các đường

dữ liệu từ D0 đến D15 và các đường địa chỉ từ A0 đến A15 hoạt động theo phương

pháp đa lộ thời gian

8086 có thể làm việc ở hai chế độ :

- Ché dé Minimum

« Chế độ Maximum

Trong chế độ minimum, 8086 điều khiển các thiết bị bằng các tín hiệu điều

khiển của chính nó, trong chế độ này hổ trợ bộ xử lý toán học 8087

GVHD : Nguyễn Đình Phú Trang 8

Trang 26

Trong chế độ maximum cân thiết phải kết hợp với vi mạch diéu khiển bus

8288 để tạo ra các tín hiệu đọc — ghi cho bộ nhớ và các thiết bị ngoại vi và chế độ

này cho phép làm việc với 8087

Sau đây là sơ đồ chân của 8086 ở cả hai chế độ minimum và maximum:

DMIO (@®)

pre @)

[DEN (S) HALE (Q%) HINA (Q5)

Hình 1.2: Sơ đô chân 8086

2) Chức năng của các chân của 8086:

e INTR- Interrup Request (input):

Mức cao ở ngõ này báo cho 8086 biết có một yêu cầu ngắt (thuờng được gởi

tới từ vi mạch xử lý ngắt 8259), tín hiệu ngắt tại chân này có thể bị che bằng phần

mềm Khi vi xử lý chấp nhận yêu câu ngắt, nó sẽ đưa ra một chu kỳ chấp nhận ngắt

và vi mạch xử lý ngắt phải gởi địa chỉ của ngắt lên bus dữ liệu tương ứng với chu kỳ

thứ hai

® NMI(Non Maskable Interrup):

GVHD : Nguyễn Đình Phú Trang 9

Trang 27

Đây là ngắt không che được, tác động ở mức cao vi xử lý nhầy đến địa chỉ ngắt

số 2 trong bang vector ngắt và không tạo ra chu kỳ chấp nhận ngắt

e Reset (input):

Ngõ vào mức cao đặt vi xử lý về trạng thái ban đầu sau ít nhất 4 chu kỳ đồng

hồ Thanh ghi CS được đặt giá trị FFFF và thanh ghi IP được đặt giá trị 0000 Như vậy chỉ thị được thực hiện đâu tiên chứa ở ô nhớ FFFFO quá trình chuyển tiếp từ

mức cao xuống mức thấp được đồng bộ bởi chu kỳ đồng bộ từ vi mạch tạo xung đồng hỗ 8284

© Ready (input):

Tin hiệu báo đã boàn tất thao tác truyền dữ liệu của bộ nhớ hoặc thiết bị vào —

ra, tắc động ở mức cao, vi xử lý sẽ đợi nếu tín hiệu này ở mức thấp

® AD AD¡; - Address/Data bus (input / output):

Gidng nhu wong 6065, c4c duéng địa chỉ - dữ liệu này làm việc theo nguyên tấc da lộ thoi gian, lá địa chỉ trong chu kỳ T¡ và là đữ liệu trong chu kỳ Tạ, Tạ, Tụ,

Tạ, tác động ở mức cáo, có cấu tạo ba trạng thái và ở trạng thái tổng trổ cao trong

lúc vị xử lý 'Interrup acknowlegde’ va ‘Hod] acknowleagde’

® AiøSs A¡2/S„— Addres/Status (outpuD:

“Trong chu kỳ T; là 4 bit địa chi cao khi thao tác với bộ nhớ, trong lúc thao tác '

với thiết bị vào-ra chân này có gía trị thấp Trong cả hai thao tác cũng như vào — ra các bit này là trạng thái trong các chu kỳ Tạ, T›, T„, Tạ Trạng thái bit cao cho phép

ngắt, S; được cập nhật tại mỗi thời điễm bắt đầu của mỗi chu kỳ đồng hồ S; & S„ cho biết thanh ghi đoạn đang được sử dụng, thông tin này cần thiết cho Co-

processor xác định vị trí của toán hạng Có cấu tạo ba trạng thái và trạng thái tổng

trổ cao khi vi xử lý ‘Hold acknowlegde’

83 S4 Thanh ghi đoạn được chọn

0 0 Thanh ghi đoạn thêm

0 1 Thanh ghi đoạn ngăn xếp

1 0 Thanh ghi đoạn lệnh

1 1 Thanh ghi đoạn dữ liệu

Hai bít Sy & S¿ để chọn các thanh ghi đoạn

¢ BHE/S; — Bus high enable / status (output):

Kết hợp với bit địa chỉ Ao để xác định chế độ truyền dữ liệu, BHE ở mức thấp

trong chu kỳT; của các thao tác đọc — ghỉ và chấp nhận ngắt khi một byte được

truyền trong byte cao của bus dữ liệu S; có hiệu lực trong các chu kỳ Tạ, T; & Tạ, cấu tạo ba trang thái và trạng thái tổng trổ cao khi vi xử lý ở chế độ ‘Hold’

HBE |A0 | Kiểu truyền dữ liệu

0 0 Truy xuat 16 bit

0 dL Truy xuất byte cao từ địa chỉ lẻ

1 0 Truy xuất byte thấp địa chỉ chẳn

1 1 Không sử dụng

GVHD : Nguyễn Đình Phú Trang 10

Trang 28

Tin hiGu vao duoc kiém tra bdi lénh ‘wait’ vi xit ly sẽ không làm gì cả khi điện

áp chân này có giá trị thấp, đông bộ tại cạnh lên của mỗi xung đồng hồ

® MN-MX - Minimum-Maximum (input):

Chân chọn chế độ làm việc của 8086, chế độ làm việc là minimum tương ứng

với mức cao và chế đó lam việc là maximum ứng với mức thấp Bus điểu khiển ở

hai chế độ có chức năng khác nhau

® M/IO (output):

Ngô ra trang thái giống như bít Sạ ở chế độ maximum dùng để báo vị trí đang

truy xuất dữ liệu Mức cao là bộ nhớ và mức thấp là khối vào-ra Cấu tạo ba trạng

thái, tổng trở cao khi vi xử lý ở chế độ “Hold acknowlegde"

® WR~ write (outpu\):

Tín hiệu ra điều khiển thao tác ghi vào bộ nhớ hoặc khối vào-ra tùy theo giá trị

của ngỏ M/IO Tác động mức thấp ở Tạ, Tạ và Ty của mỗi chu kỳ ghi, cấu tao ba

trạng thái và trạng thái tổng trở cao khi vi xử lý ở chế độ ‘Hold acknowlegde’

® INTRA - Interrup Acknowlegde (output):

Tin hiệu chấp thuận ngắt, tác động mức thấp tại Tạ, T; va Ty ding để đưa địa chỉ của ngắt lên bus dữ liệu,

® ALE-~ Adress Latch Enable

Tín hiệu điều khiển chốt địa chỉ 74L§373 hoặc 8282/8283 tác động mức cao

trong khoảng Tị của mỗi chu kỳ bus :

+ Khi ALE = I các bit ADạ ADjs 1a dia chi

¢ Hold (input):

Tín hiệu vào cho biết một linh kiện đòi quyển sử dụng bus, tác động ở mức

cao

¢ HLDA - Hold acknowlegde (output):

Tin hiệu ra ở mức cao cho biết yêu câu Hold được chấp thuận, vi xử lý sẽ treo

bus nội bộ và các đường điều khiển của nó ở trạng thái tổng trổ cao

© DT/R - Data Transmit/Receive (output):

Tin hiéu ra ding dé diéu khién hung truyén di liéu cia vi mach thu-phét Cấu tạo ba trạng thái và trạng thái tổng trở cao khi vi xử lý ở chế độ ‘Hold

acknowlegde’

® DEN —- Data enable (output):

Trang 29

Tín hiệu ra ở mức thấp cho mỗi chu kỳ thao tác bộ nhớ va VO va ca INTRA

điều khiển ngỏ ra cho phép của 8286/8287 trong hoạt động thu — phát dữ liệu Cấu

tạo ba trạng thái, trạng thái tổng trở cao khi vi xử lý ở chế d6 ‘Hold acknowlegde’

e Sọ, S¡, S; (thông tin trang thái) :

Vi mạch 8288 dựa trên các thông tin này để thực hiện các thao tác điều khiển

Cấu tạo ba trạng thái, trạng thái tổng trở cao khi “Hold acknowlegde' Tác động

trong các chu kỳ Tạ, T¡ & Tạ và trổ về trạng thái thụ động ở Tạ hoặc Tự khi Ready ở mức cao Một sự thay đổi bất kỳ của tín hiệu này trong chu kỳ Tạ được dùng để đánh

dấu thời điểm bất đầu của chu kỳ bus và trở về thụ động ở trong T; hoặc Tự xác

định điểm kết thúc của chu kỳ bus

© RQ/GTpo, RQ/GT¡ - RequesUƯGram (inputoutput):

Hai tín hiệu yêu cẩu vi xử lý nhường quyền sử dụng bus, tín hiệu RQ/GTọ có

mức ưu tiên cao hơn Nguyên lý hoạt động được mô tả như sau:

+ Một xung có bể rộng một chu kỳ đồng hồ cho biết một linh kiện cần sử dụng

bus

+ Trong chu kỳ đồng hồ Tạ hoặc Tạ vi xử lý gởi đến linh kiện đó xung có bể

rộng chu kỳ đồng hồ cho biết vi xử lý chấp nhận nhường quyển sử dụng bus và nó sẽ

tiến vào trạng thái ‘Hold acknowlegde’ sau xung đồng hổ kế tiếp để treo bus của chính nó

+ Xung bể rộng chu kỳ đồng hổ được gởi đến 8086 cho biết quá trình ‘Hold’

kết thúc và vi xử lý trở lại quản lý bus xau khi chấm dứt chu kỳ đồng hồ kế tiếp

Nếu yêu câu này xảy ra trong khi vi xử lý đang truy xuất bộ nhớ, nó sẽ treo bus

trong khoảngT; nếu thỏa những diều kiện sau đây:

- _ Yêu cầu xảy ra trong khi hoặc trưc Tạ

~ _ Chu kỳ hiện hành không phải là byte thấp của word (ở địa chỉ lẻ)

~ _ Chu kỳ hiện hành không ở trạng thái chấp nhận ngắt

-_ Không có chỉ thị khóa

Nếu bus không bận khi có yêu câu thì có hai trường hợp sẽ xảy ra

- Bus sé treo 6 chu kỳ đồng hồ kế tiếp

-_ Một chu bộ nhớ sẽ khởi động trong vòng 3 chu kỳ đồng hồ

GVHD : Nguyễn Đình Phú Trang 12

Trang 30

© Clock (output):

Mức cao báo cho các linh kiện ngoài biết (Co-processor) rằng chu kỳ bus tiếp

theo không được phép gián đoạn, điều này xảy ra khi trong chương trình có chỉ thị

‘Clock’ Cấu tạo ngõ ra ba trạng thái, trạng thái tổng trở cao khi vi xử lý ở chế độ

‘Hold acknowlegde’

© QS), QSo — Queue status (output):

Ngõ ra cho biết trạng thái của hàng đợi lệnh, những thông tin này cân thiết cho

10 lì | Xóa nội dung hàng đợi kệnh

| 1 0 | Nạp byte mã lệnh đâu tiên vào thanh ghi lệnh

1 |1 Nạp byte mã lệnh tiếp theo của lệnh nhiều byte

Il CAC PHUONG PHAP BINH BIA CHI CUA VI XU LY 8086:

Phương pháp định địa chi (Addressing Mode) 1a cách để CPU tìm thấy toán hạng cho các lệnh của nó khi hoạt động Một bộ vi xử lý có thể có nhiều chế độ

định địa chỉ

Các chế độ định địa chỉ này được xác định ngay từ khi chế tạo ra bộ vi xử lý và

sau này người ta lấy đó để làm chuẩn mà không thay đổi

Ngoài các phương pháp định địa chỉ: tức thời, trực tiếp, gián tiếp giống như của

8085, vi xử lý 8086 còn có thêm các cách định địa chỉ khác và được phân loại như

Sau:

Định địa chỉ bằng thanh ghi

~_ Định địa chỉ tức thời

inh địa chỉ trực tiếp

Định địa chỉ gián tiếp

Định địa chỉ tương đối

Bằng cách kết hợp các phương pháp định địa chỉ khác nhau trong một chỉ thị,

có thể tạo ra nhiều khả năng phức tạp để truy xuất toán hạng (operand) các thiết bị Vào — ra chỉ được truy cập bằng các phương pháp trực tiếp và gián tiếp Thứ tự mô

tả byte của một word được lưu trong bộ nhớ giống như qui định của 8085, có nghĩa

là các byte thấp (LSB) ở địa chỉ thấp và các byte cao (MSB) được đặt ở địa chỉ cao

hơn kế cận

Trong các trình bày sau đây, bộ đếm chương trình PC (Program Counter) chứa

địa chỉ offset của chỉ thị kế tiếp sẽ thực hiện, chỉ thị này đả sẵn sàng trong hàng đợi

lệnh Con trỏ lệnh IP trỏ đến địa chỉ cao hơn, đó là byte tiếp theo sẽ được BIU nhập

Vào hàng đợi lệnh

GVHD : Nguyễn Đình Phú Trang 13

Trang 31

* Các phương pháp định địa chỉ thông dụng:

1) Định địa chỉ tức thời:

Trong phương pháp này toán hạng nguồn chính là dữ liệu cần xử lý của chỉ thị

Thi du: Mov ax 1200

2) Phương pháp định địa chỉ tương đốt :

Trong phương pháp định địa chỉ tương đối, thanh ghi BX chứa địa chỉ cơ sở,

các địa chỉ này là offset của toán hạng Địa chỉ tương đối có thể được dùng chung

vớiđịa chỉ trực tiếp hoặc gián tiếp

Thí dụ: Mov ax [0230]

Trang 32

Trong phương pháp truy xuất gián tiếp các cổng luôn luôn tác động đến thanh

ghi DX, nội dung của DX là địa chỉ 16 bit của cổng Số lượng cổng là 64k

Trang 33

> CHƯƠNG II

KHẢO SÁT TỔNG QUÁT TẬP LỆNH CỦA VI XỬ LÝ 8086

I._ CÁCH MÃ HOÁ LỆNH CỦA 8086,

Vi xử lý 8086 có nhiều phương pháp định địa chỉ và cũng có nhiều kha năng kết hợp các phương pháp đó lại với nhau Tuy nhiên, một lệnh chỉ cần 6

byte đế mã hóa, và byte bắt đầu là mã công tác (Operations code), byte tiếp theo chứa kiểu địa chỉ và tiếp theo đó có thể là một hoặc hai byte dùng để chứa

dia chi Các byte cuối cùng gồm một hoặc hai chứa toán hạng 8 hoặc 16 bit

Thực tế để biếu diển dạng thức các byte dùng để mã hóa lệnh Mov Ta

ttấy rằng để mã hóa lệnh Mov ta phải cần ít nhất là hai byte, trong đó 6 bit của

byte đầu dùng để chứa mã lệnh Đối với lệnh Mov để chuyển dữ liệu kiểu:

~_ Thanh ghi «+ thanh ghi `

-_ Bộ nhớ «> thanh ghi Trừ thanh ghi

Thì bít đấu (opcode) nay luén là ‘100010’ (a6i v6i thanh ghi đoạn thi

khác)

Đối với bit 'D' dùng để chỉ hướng đi của dữ liệu

D =0 thì dữ liệu đi từ thanh ghi cho bởi 3 bit của REG

D = l dữ liệu đi đến thanh ghi cho bởi 3 bit REG

Đối với bit W dùng để chỉ rằng một byte (W = 0) hoặc một từ (W = 1) sẽ

Trang 34

Qua những nhóm lệnh giới thiệu trên nhóm thực hiện để tài chỉ khảo sát

những nhóm lệnh thông dụng nhằm phục vụ cho việc lập trình bằng ngôn ngữ may

2.1) Nhóm lệnh truyền số liệu:

Các lệnh truyén dữ liệu sẽ sao chép dữ liệu giữa thanh ghi với thanh ghi,

với bộ nhớ hoác với khối vào-ra Chúng có thể sử dụng nhiều cách định địa chỉ khác nhau, Trong cách viết lệnh dưới dạng gợi nhớ: toán hạng đâu tiên là thanh

ghi đích hoặc địa chỉ đích và tiếp sau dấu phẩy là thanh ghi nguồn hoặc địa chỉ nguồn Khác với 8065, trong #056 tất cả các lệnh truyền dữ liệu đều dùng lệnh

“Mov”

$ Truyền từ thanh ghí vào thanh ghi:

Mov (Reg]1), (Reg2)

Nội dung (Reg2) được sao chép vào (Regl)

Thi du: Mov AL, BL

Sao chép nội dung BL vào thanh ghí AL

+ Truyền từ thanh ghỉ vào bộ nhớ:

Mov (Mem), (Reg)

Đối với lệnh byte, nội dung của thanh ghi được đưa vào địa chỉ của ô nhớ

Đối với lệnh word thì nội dung của thanh ghỉ được đưa vào hai ô nhớ có địa chỉ

lần lược là (Mem) và (Mem + l)

Thí dụ: Mov [1200], BU

Sao chép nội dung cửa thanh ghỉ BL vào ô nhớ có địa chỉ tương đối là

1200

| ® Truyền từ ô nhớ vào thanh ghi:

Mov (Reg), (Mem)

Đối với lệnh byte, nội dung ô nhớ được chép vào thanh ghi Đối với lệnh

word, nội dung của 2 ô nhớ (Mem) và (Mem + 1) được chép vào thanh ghi

| Thi du: Mov BL, [1500]

| Sao chép nội dung ô nhớ tại địa chỉ 1500 vào thanh ghi BL

Trang 35

Chú ý: nếu sử dụng AL hoặc AX trong các lệnh truyền từ thanh ghỉ vào ô nhớ và ngược lại sẽ nhận được mã công tác ngắn hơn khi sử dụng các thanh ghi

khác

+ Truyền tức thời vào thanh ghi:

Mov (Reg), (Data)

Trong lệnh này, dữ liệu được truyền tức thời vào thanh ghi

Thí dụ: Mov BL, 20

Giá trị 20 được đưa vào thanh ghi BL

® Truyền tức thời vào bộ nhớ:

Mov (Mem), (Data)

Trong lệnh byte dữ liệu được truyền tức thời vào ô nhớ có địa chỉ (Mem) Trong lệnh word dữ liệu được truyền tức thời vào 2 ô nhớ có dia chi (Mem) va

(Mem + 1)

Thi du: Mov [1200], 50

Giá trị 5Ú được đưa vào 6 nhớ có địa chỉ 1200

Mov Word PTR [1200], 50

Giá trị Word 0050 được đưa vào 2 ô nhớ bắt dầu tại địa chỉ 1200:50 (LSB)

vào địa chỉ 1200:00 (MSB) vào địa chỉ 1201

-_ Truy xuất trực tiếp cổng:

IN (Reg), (Port)

Đọc nội dung của cổng vào thanh ghỉ thanh ghỉ sử dụng 12 AL (dạng byte)

và AX (dạng Word), địa chỉ cổng là một số 8 bit

OUT (Reg), (Port)

Xuất nội dung của thanh ghỉ ra cổng

-_ Truy xuất gián tiếp cổng:

IN (Reg), DX

Đọc nội dung của cổng có địa chỉ chứa trong DX vào thanh ghi Thanh ghi

sử dụng là AL hoặc AX, địa chỉ cổng là số 16 bit

OUT DX, (Reg) Gởi nội dung thanh ghỉ ra cổng có địa chỉ chứa trong DX

2.2) Nhóm lệnh số học:

Bao gồm các phép tính cơ bản (cộng, trừ, nhân và chia) và phép so sánh, toán hạng có thể là dữ liệu 8 bit hoặc 16 bít, kết quả có thể là 8 bit,16 bit hoặc

32 bit Các toán hạng được chứa trong thanh ghi bộ nhớ tức thời Tùy theo thao

tác, kết quả có thể được chứa trong 1 hoặc 2 thanh ghi trong bộ nhớ

© Phép cong:

Vi xử lý 8086 thực hiện phép cộng có lưu ý số nhớ hoặc không lưu ý số

nhớ 8 bit hoặc 16 bit

Trang 36

Yuan va

+ Số hạng đầu tiên được chứa trong các thanh ghi dữ liệu (AX, BX,

CX, DX, AH, AL, BH .), trog một thanh ghi chỉ số hoặc một ô nhớ Số hạng thứ

hai có thể là tức thời trong thanh ghỉ hoặc trong bộ nhớ Hai số hạng không thể

cùng ở trong bộ nhớ, kết quả phép cộng được chứa trong toán hạng thứ nhất

Sau day là bảng liệt kê lệnh cộng dưới dạng gợi nhớ:

ADD (mem), (reg) ADC (mem), (reg)

Cộng không lưu ý số nhớ |_ Cộng có lưu ý số nhớ Thí dụ

ADD (accu), (data) ADC (accu), (data) ADD AX, 1250

ADD (mem), (data) ADC (mem), (data) ADD Byte PTR

ADD (reg), (data) ADC (reg), (data) [0900],50

ADD (reg), (reg2) ADC (regl), (reg2) ADD BL, 50

ADD (reg), (mem) ADC (reg), (mem) ADC AL, AH

ADD CX, [0800]

ADC [0600], DL

® Phép trư:

8086 có thể thực hiện phép trừ với 8 bit hoặc 16 bit, lệnh SBB có lưu ý số

thiếu và lệnh SUB không lưu ý số thiếu Sau đây là bải ng liệt kê lệnh trừ dưới

đạng gợi nhớ:

Trừ có số thiếu Trừ không có số thiếu Thí dụ

SUB (accu), (datay | SBB (accu), (data) SUB AX, 1230

SUB (mem), (data)

SUB (reg), (data)

SUB (reg1), (reg2)

SUB (reg), (mem)

SUB (mem), (reg)

| SBB (mem), (data)

SBB (reg), (data) SBB (reg1), (reg2)

SBB (reg), (mem) SBB (mem), (reg)

SBB Byte PTR [5000],

90 SUB BL, 50 SBB AL, DL SUB CX, [1230]

SBB [0300], DL

Trang 37

Chương III

GIAO TIẾP VỚI MÁY TÍNH

I GIAO TIẾP SONG SONG

GIAO TIẾP QUA CỔNG MÁY IN

1.1 Vài nét cơ bản về cổng máy in ,

Việc nối máy in với máy tính được thực hiên qua ổ cắm 25 chân Nhưng đây

không phải chỉ là chỗ nối với máy in mà khi sử dụng máy tính vào việc khác, như truyền dữ liều từ máy tính tới một thiết bị khác, hay điều khiển thiết bị bằng

máy tính thì việc ghép nối cũng được ghép nối qua cổng máy in

Qua cổng này dữ liệu được truyễn đi song song , nên đôi khi còn được gọi la

cổng ghép nối song song và tốc độ truyền cũng đạt đến mức đáng kể Tất cả ˆ các đường dẫn của cổng máy ín đều tương thích với TTL Nghĩa là chúng đều cung cấp mức điện áp nằm giữa 0V đến 5V Do đó ta cầ lưu ý là các đường dẫn

vào cổng này không được đặt mức điện áp quá lớn

Sự sắp xếp các chân của cổng máy in với tất cả các đường dẫn được mô tả như

Trang 38

12

Chức năng các chân

Chân |Kýhiệu |OuƯin | Chức năng

1 Strobe Out Byte được in

2.9 |DO D7 | Out Các đường dữ liệu DO D7

10 ACK In Phân thu báo cho phẩn phát biết đã thu xong một kí

tự

i | Busy |In Phân tín hiệu do phân thu báo cho phần phát biết là

phần thu đang bận

12 | PE lin Báo hết giấy

13 SLCT In Báo chọn máy in

14 AF | Out Máy tính báo ra máy in tự nạp giấy

15 ERROR |In | Báo các lỗi của máy in

16 INIT Out Reset méy in

17 SLCTIN | Out Chọn máy in

18 25 |GND Nối đất

13 Trao đổi với các đường dẫn tín hiệu

-LPTI : Gồm có 3 thanh ghỉ : thanh ghỉ dữ liệu , thanh ghi

Trang 39

Thanh ghi điều khiển có địa chỉ : 37AH

Trang 40

, Hoạt động của việc trao đổi dữ liệu

hoạt động của phần phát:

+ đọc Busy cho đến khi Busy\ = 1

+ gửi dữ liệu ra bus dữ liệu

b Hoạt động của phan thu:

+ đọc Sưobe cho đến khi Sưrobe = 1

Ngày đăng: 22/11/2024, 11:03

w