Tải bản đầy đủ (.pdf) (10 trang)

Quá trình hình thành giáo trình phương pháp giao tiếp giữa khối phối ghép bus với bộ vi xử lý AMD trong mainboard p3 doc

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 (353.18 KB, 10 trang )

1.3). Đònh đòa chỉ gián tiếp:
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.
Thí dụ: IN AL, DX

















Hình 2.4:
Phương pháp đònh đòa chỉ tương đối

AX

BX
CX
DX
SP



BP
SI
DI
0100

PC



O D I T S Z A P C

FI

8B

07
CS

DS
SS
ES
2300

8B

07


O D I T S Z A P C


FI
AX
BX
CX
DX
SP
BP
SI
DI
CS
DS
SS
ES
2300

1002

PC

Sau

Trước

CPU

Bộ nhớ

1200


2300

2300

010
010
2780

2780

00

12
00

12
2080

208
0280

0280

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 khả
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 đòa chỉ. 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
Thì bit đầu (opcode) này luôn là ‘100010’ (đối với thanh ghi đoạn thì
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 = 1 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ẽ được chuyển.
Byte1 Byte 2 Byte 3 Byte
4
Opcode
R
EG
M
/R
Disp: displacement (dòch chuyển )




II. KHẢO SÁT TỔNG QUÁT TẬP LỆNH CUẢ VXL 8086.

Tập lệnh của 8086 gồm 9 nhóm lệnh:
- Nhóm lệnh truyền số liệu.
- Nhóm lệnh số học.
- Nhóm lệnh thao tác chuỗi.
- Nhóm lệnh logic.
Trừ thanh ghi đoạn

D

W

Mod
Disp
L


Disp
H


Đòa chỉ trực tiếp phần
thấp

Đòa chỉ trực tiếp
phần cao
hoặc

- Nhóm lệnh xử lý bit.
- Nhóm lệnh điều khiển chương trình.
- Nhóm lệnh ngôn ngữ bậc cao.

- Nhóm lệnh ở chế độ bảo vệ.
- Nhóm lệnh điều khiển các bộ vi xử lý.
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ữ máy.
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 8085, trong 8086 tất cả các lệnh truyền
dữ liệu đều dùng lệnh “Mov”
 Truyền từ thanh ghi vào thanh ghi:
Mov (Reg1), (Reg2)
Nội dung (Reg2) được sao chép vào (Reg1).
Thí dụ: Mov AL, BL
Sao chép nội dung BL vào thanh ghi AL.
 Truyền từ thanh ghi 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 ghi được đưa vào hai ô nhớ có
đòa chỉ lần lược là (Mem) và (Mem + 1).
Thí dụ: Mov [1200], BL
Sao chép nội dung của thanh ghi 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.

Thí dụ: Mov BL, [1500]
Sao chép nội dung ô nhớ tại đòa chỉ 1500 vào thanh ghi BL.
Mov BX, [1500]
Sao chép nội dung hai ô nhớ tại đòa chỉ 1500 và 1501 vào thanh ghi BX
(ô 1500 vào BL và ô 1501 vào BH)
Chú ý: nếu sử dụng AL hoặc AX trong các lệnh truyền từ thanh ghi
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ó đòa chỉ
(Mem) và (Mem + 1).
Thí dụ: Mov [1200], 50
Giá trò 50 được đưa vào ô 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 ghi. thanh ghi sử dụng l2 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 ghi 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 ghi 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 bit, 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 cộng:
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.
+ 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 ghi 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 đây là bảng liệt kê lệnh cộng dưới dạng gợi nhớ:
Cộng không lưu ý số nhớ

Cộng có lưu ý số nhớ Thí dụ
ADD (accu), (data)
ADD (mem), (data)
ADD (reg), (data)
ADD (reg1), (reg2)
ADD (reg), (mem)
ADD (mem), (reg)
ADC (accu), (data)
ADC (mem), (data)

ADC (reg), (data)
ADC (reg1), (reg2)
ADC (reg), (mem)
ADC (mem), (reg)
ADD AX, 1250
ADD Byte PTR
[0900],50
ADD BL, 50
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ảng liệt kê lệnh trừ
dưới dạng gợi nhớ:
Trừ có số thiếu Trừ không có số thiếu Thí dụ
SUB (accu), (data)
SUB (mem), (data)
SUB (reg), (data)
SUB (reg1), (reg2)
SUB (reg), (mem)
SUB (mem), (reg)
SBB (accu), (data)
SBB (mem), (data)
SBB (reg), (data)
SBB (reg1), (reg2)
SBB (reg), (mem)
SBB (mem), (reg)
SUB AX, 1230
SBB Byte PTR [5000],

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

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:
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 15 chân ở
phía sau máy tính. 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 in đề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ư sau:



13 1




25 14
O O O O O O O O O O O O O
O O O O O O O O O O O O

HÌNH 3.1

Chức năng các chân
Chân Ký hiệu Out/in Chức năng
1

2 9

10

11



12

13

14

15

16

17


18 25

Strobe

D0 D7

ACK

Busy



PE

SLCT

AF

ERROR

INIT

SLCTIN

GND
Out

Out

In


In



In

In

Out

In

Out

Out
Byte được in

Các đường dữ liệu D0 D7.

Phần thu báo cho phần phát biết đã thu xong một kí
tự
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


Báo hết giâi

Báo l75a chọn máy in


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

Báo các lỗi của máy in

Reset máy in

Chon máy in

Nối đất

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

LPT1: Gồm có 3 thanh ghi: thanh ghi dữ liệu, thanh ghi trạng thái và thanh
ghi điều khiển.

a. Thanh ghi dữ liệu: gồm có 8 bit dữ liệu, có đòa chỉ là 378h.

D7 D6

D5 D4 D3 D2 D1 D0

HÌNH 3.1

CHÂN SỐ : 9 8 7
6 5 4 3 2

b. Thanh ghi trang thái: có đòa chỉ là 379h.

D7 D6


D5 D4 D3 D2 D1 D0

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

D7 D6 D5 D4 D3 D2 D1 D0

1.4 . Hoạt động của việc trao đổi dữ liệu .
a. 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
+ cho Strobe = 0.
+ chuổn bò dữ liệu tiếp theo
+ quay về bước 1

b. Hoạt đông của phần thu
+ đọc Strobe cho đến khi Strobe = 1.
+ Busy = 0 , ACK = 0.
+ đọc dữ liệu vào .
+ đưa ACK = 1 .
+ xử lý dữ liệu .
ERROR

SLCT

PE
ACK
BUSY
Strobe

AF


INIT

SLCTIN
( Ngắt 8259 )

+ cho Busy = 1 để phát ký tự tiếp theo
+ quay về bước 1.


BUSY = 1

BEGIN

GỞI DỮ LIỆU

STROBE = 1

ACK = 1

STROBE = 0

HẾT FILE
THOÁT RA

CHUÂN BỊ DỮ
LIỆU TIẾP
THEO
HÌNH 5.1
LƯU ĐO

À PHÁT

×