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

Giáo trình hình thành quy trình phân tích bộ giải mã lệnh các lệnh số học logic của bộ vi xử lý p3 docx

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 (290.53 KB, 12 trang )

Trường ĐH SPKT Luận văn tốt nghiệp


GVHD: Nguyễn Đình Phú SVTH: Nguyễn Trung Dũng

4. Lệnh cất cặp thanh ghi AF:
Cú pháp: PUSH PSW
VIII. NHÓM LỆNH POP:
1. Lệnh chuyển nội dung ngăn xếp vào cặp thanh ghi:
+ Cú pháp: POP B
+ Mã đối tượng:

+ Ý nghóa: chuyển nội dung từ ngăn xếp vào cặp thanh ghi BC. Nội dung ngăn xếp
có đòa chỉ chứa trong SP được chuyển cho thanh ghi C, nội dung của ngăn xếp có đòa
chỉ (SP+1) được chuyển cho thanh ghi B, sau lệnh POP nội dung của SP tăng lên 2.
+ Lệnh này chiếm một byte, số chu kì clock =12.
+ Lệnh này không ảnh hưởng đến thanh ghi teạng thái.
(Tương tự cho các lệnh khác cùng nhóm).
2. Lệnh chuyển nội dung ngăn xếp vào cặp thanh ghi DE:
+ Cú pháp: POP D
3. Lệnh chuyển nội dung ngăn xếp vào cặp thanh ghi HL:
+ Cú pháp: POP H
4. Lệnh chuyển nội dung ngăn xếp vào cặp thanh ghi AF:
+ Cú pháp: POP PSW
IX. NHÓM LỆNH CỘNG CẶP THANH GHI VỚI CẶP THANH GHI:
1. Lệnh cộng cặp thanh ghi BC:
+ Cú pháp: DAD B
+ Mã đối tượng:

+ Ý nghóa: nội dung cặp thanh ghi BC được cộng với cặp thanh ghi HL, kết quả cất
trong cặp thanh ghi HL. Thanh ghi L được cộng với C, thanh ghi H được cộng với B.


+ Lệnh này chiếm 1 byte, số chu kỳ clock =10.
+ Lệnh này chỉ làm ảnh hưởng đến bit trạng thái Cy.
Tương tự cho các lệnh cùng nhóm này như sau:
2. Lệnh cộng cặp thanh ghi DE:
+ Cú pháp: DAD D
3. Lệnh cộng cặp thanh ghi HL:
+ Cú pháp: DAD H
4. Lệnh cộng cặp thanh ghi SP:
+ Cú pháp: DAD SP
X. NHÓM LỆNH TĂNG CẶP THANH GHI: 1.Lệnh tăng cặp thanh ghi BC:
+ Cú pháp: INX B
+ Mã đối tượng:


+Ý nghóa: nội dung cặp thah ghi BC tăng thêm một đơn vò.
+ Lệnh này chiếm 1 byte, số chu kỳ clock =6.
+ Lệnh này không làm ảnh hưởng đến thanh ghi trạfg thái.
1 1 0 0 0 0 0 1

0 0 0 0 1 0 0 1

0 0 0 0 0 0 0 1

.
.
Trường ĐH SPKT Luận văn tốt nghiệp


GVHD: Nguyễn Đình Phú SVTH: Nguyễn Trung Dũng


(Tương tự cho các lệnh khác)
2. Lệnh tăng cặp thanh ghi DE:
+ Cú pháp: INX D
1. Lệnh tăng cặp thanh ghi HL:
+ Cú pháp: INX H
2. Lệnh tăng cặp thanh ghi SP:
+ Cú pháp: INX SP
.
.
Trường ĐH SPKT Luận văn tốt nghiệp


GVHD: Nguyễn Đình Phú SVTH: Nguyễn Trung Dũng

0 0 1 1 0 0 1 0
8 bit thấp
8 bit cao

XI. LỆNH GIẢM CẶP THANH GHI:
1. Lệnh giảm cặp thanh ghi BC:
+ Cú pháp: DCX D
+ Mã đối tượng:

+ Ý nghóa: nội dung cặp thanh ghi BC giảm thêm 1 đơn vò.
+ Lệnh này chiếm 1 byte, số chu kỳ clock=6.
+ Lệnh này không làm ảnh hưởng đến thanh ghi trạng thái.
(Tương tự cho các lênh khác)
2. Lệnh giảm cặp thanh ghi DE:
+ Cú pháp: DCX D
3. Lệnh giảm cặp thanh ghi HL:

+ Cú pháp: DCX H
4. Lệnh giảm cặp thanh ghi SP:
+ Cú pháp: DCX SP
XII. NHÓM LỆNH GIÁN TIẾP DÙNG CẶP THANH GHI:
1. Lệnh lưu trữ gián tiếp dùng cặp thanh ghi BC:
+ Cú pháp: STAX B
+ Mã đối tượng:

+ Ý nghóa: nội dung thanh gi được lưu trữ gián tiếp vào ô nhớ có đòa chỉ chứa trong
cặp thanh ghi BC.
+ Lệnh này không ảnh hưỏng đến thanh ghi trạng thái.
(Tương tự cho các lênh khác cùng nhóm)
2. Lệnh lưu trữ gián tiếp dùng cặp thanh ghi DE:
+ Cú pháp: STAX D
3. Lệnh nạp gián tiếp dùng cặp thanh ghi BC:
+ Cú pháp: LDAX B
+ Mã đối tượng:

+ Ý nghóa: nội dung ô nhớ có đòa chỉ chứa trong cặp thanh ghi BC được chuyển vào
thanh ghi A.
(Tương tự cho các lệnh khác)
4. Lệnh lưu trữ gián tiếp dùng cặp thanh ghi DE:
+ Cú pháp: LDAX D

XIII. NHÓM LỆNH TRỰC TIẾP:
1. Lệnh lưu trữ trực tiếp:
+ Cú pháp: STA ADDR


+ Mã đối tượng:


0 0 0 0
1 0 1 1

0 0 0 0 0 0 1 0

0 0 0 0 1 0 1 0

.
.
Trường ĐH SPKT Luận văn tốt nghiệp


GVHD: Nguyễn Đình Phú SVTH: Nguyễn Trung Dũng

0 0 1 0 1 0 1 0
8 bit thấp

8 bit cao

0 0 0 0 0 1 1 1


+ Ý nghóa: nội dung thanh ghi A được lưu trữ vào ô nhớ có đòa chỉ ADDR.
+ Lệnh này chiếm 3 byte, số chu kỳ clock=13.
+ Lệnh này không ảnh hưởng đến thanh ghi trạng thái.
2. Lệnh nạp trực tiếp:
+ Cú pháp: LDA ADDR

+ Mã đối tượng:



+ Ý nghóa: nội dung ô nhớ có đòa chỉ là ADDR được chuyển vào thanh ghi A.
+ Lệnh này chiếm 3 byte, số chu kỳ xung clock =13.
+ Lệnh nầøy không ảnh hưởng đến thanh ghi trạng thái.
3. Lệnh lưu trữ trực iếp cặp thanh ghi:
+ Cú pháp: SHLD ADDR


+ Mã đối tượng:


+ Ý nghóa: nội dung cặp thanh ghi HL đựoc lưu vào 2 ô nhớ liên tiếp là ADDR và
(ADDR+1). Nội dung thanh ghi L được lưu trữ vào ô nhớ có đòa chỉ là ADDR, nội dufg của
thanh ghi H được lưu trữ vào ô nhớ có đòa chỉ là (ADDR+1).
+ Lệnh nầy chiếm 3 byte, số chu kỳ xung clock = 16.
+ Lệnh nầy không ảnh hưởng đến thanh ghi trạng thái.
4. Lệnh nạp trực tiếp cặp thanh ghi:
+ Cú pháp: LHLD ADDR
+ Mã đối tượng:



+ Ý nghóa: nội dung của 2 ô nhớ có đòa chỉ liên tiếp là ADDR và (ADDR+1) được
lưu trữ vào cặp thanh ghi HL. Nội dung của ô nhớ có đòa chỉ ADDR được nạp vào thanh
ghi L, nội dung của ô nhớ có đòa chỉ (ADDR+1) được nạp vào thanh ghi H.
+ Lệnh này chiếm 3 byte, số chu kỳ xung clock =13.
+ Lệnh này không ảnh hưởng đến thanh ghi trạng thái.

XIV. NHÓM LỆNH XOAY THANH GHI A:

1. Lệnh dòch thanh ghi A sang trái:
+ Cú pháp: RLC

+ Mã đối tượng:

0 0 1 1 1 0 1 0
8 bit thấp
8 bit cao

0 0 1 0 0 0 1 0

8 bit thấp
8 bit cao

.
.
Trường ĐH SPKT Luận văn tốt nghiệp


GVHD: Nguyễn Đình Phú SVTH: Nguyễn Trung Dũng

0 0 0 0 1 1 1 1

1 1 0 0 0 0 1 1

8 bat thấp
8 bit cao

1 1 0 0 0 0 1 0
8 bit thấp

8 bit cao

+ Ý nghóa: nội dung thanh ghi A dòch từ phải sang trái, bit MSB được chuyển sang
bit Cy và bit LSB.
+ Lệnh này chiếm 1byte, số chu kỳ lock =4.
+ Lệnh này chỉ ảnh hưởng đến bit trạng thái Cy.
2. Lệnh dòch thanh ghi A sang phải:
+ Cú p`áp: RRC

+ Mã đối tượng:

+ Ý nghóa: nội dung thanh ghi A dòch từ trái sang phải, bit LSB được chuyển sang
bit Cy và bit MSB.
+ Lệnh này chiếm 1byte, số chu kỳ lock =4.
+ Lệnh này chỉ ảnh hưởng đến bit trạng thái Cy.
( Tương tự cho các lệnh khác).
3. Lệnh dòch thanh ghi A sang trái thông qua bit Cy:
+ Cú pháp: RAL
4. Lệnh dòch thanh ghi A sang phải thông qua bit Cy:
+ Cú pháp: RAR

XV. NHÓM LỆNH NHẢY:
1. Lệnh nhảy không điều kiện:
+ Cú pháp: JMP ADDR


+ Mã đối tượng:


+ ý nghóa: vi xử lí sẽ nhảy đến đòa chỉ ADDR để tiếp tục thực hiện chương trình.

+ Lệnh này chiếm 3 byte, số chu kỳ clock =10.
+ Lệnh này không ảnh hưởng đến thanh ghi trạng thái.
2. Lệnh nhảy khi bit Z=0:
+Cú pháp: JNZ ADDR


+ Mã đối tượng:

+ Ý nghóa: vi xử lí sẽ nhảy đến đòa chỉ ADDR để tiếp tục chương trình khi bit Z=0,
ngay sau khi thực hiện lệnh ảnh hưởng đến bit z của thanh ghi trạng thái.
+ Lệnh này chiếm 3 byte, số chu kỳ clock là 7/10.
+ Lệnh này không ảnh hưởng đến thanh ghi trạng thái.
( Tương tự cho các lệnh khác).
3. Lệnh nhảy khi bit Z=1:
+ Cú pháp: JZ ADDR
.
.
Trường ĐH SPKT Luận văn tốt nghiệp


GVHD: Nguyễn Đình Phú SVTH: Nguyễn Trung Dũng

1 1 0 0 1 1 0 1
8 bit thấp
8 bit cao

1 1 0 0 1 1 0 1
8 bit thấp
8 bit cao


4. Lệnh nhảy khi bit C=0:
+ Cú pháp: JNC ADDR
5. Lệnh nhảy khi bit C=1:
+ Cú pháp: JC ADDR
6. Lệnh nhảy khi bit P=0:
+ Cú pháp: JPO ADDR
7. Lệnh nhảy khi bit P=1:
+ Cú pháp: JPE ADDR
8. Lệnh nhảy khi bit S=0:
+ Cú pháp: JP ADDR
9. Lệnh nhảy khi bit S=1:
+ Cú pháp: JM ADDR

XVI. NHÓM LỆNH GỌI:
1. Lệnh gọi không điều kiện:
+ Cú pháp: CAAL ADDR


+ Mã đối tượng:


+ Ý nghóa: vi xử lý sẽ thực hiện chương trình tại đòa chỉ ADDR sau đó sẽ trở về
chương trình chính khi gặp lệnh trở về.
+ Lệnh này chiếm 3 byte, số chu kỳ clock =18.
+ Lệnh này không ảnh hưởng đến thanh ghi trạng thái.
2. Lệnh gọi khi Z=0:
+ Cú pháp: CNZ ADDR


+ Mã đối tượng:


+ Ý nghóa: vi xử lý sẽ thực hiện chương trình tại ADDR khi bit Z=0, ngay sau khi
thực hiện lệnh ảnh hưởng đến bit Z của thanh ghi trạng thái. Sau đó sẽ trở về chương
trình chính khi gặp lệnh trở về.
+ Lệnh này chiếm 3 byte, số chu kỳ clock =9/18.
+ Lệnh này không ảnh hưởng đến thanh ghi trạng thái.
( Tương tự cho các lệnh khác).
3. Lệnh gọi khi bit Z=1:
+ Cú pháp: CZ ADDR
4. Lệnh gọi khi bit C=0:
+ Cú pháp: CNC ADDR
5. Lệnh gọi khi bit C=1:
+ Cú pháp: CC ADDR
.
.
Trường ĐH SPKT Luận văn tốt nghiệp


GVHD: Nguyễn Đình Phú SVTH: Nguyễn Trung Dũng

6. Lệnh gọi khi bit P=0:
+ Cú pháp: CPO ADDR
7. Lệnh gọi khi bit P=1:
+ Cú pháp: CPE ADDR
8. Lệnh gọi khi bit S=0:
+ Cú pháp: CP ADDR
9. Lệnh gọi khi bit S=1:
+ Cú pháp: CM ADDR

XVII. NHÓM LỆNH TRỞ VỀ TỪ CHƯƠNG TRÌNH CON:

1. Lệnh RET không điều kiện:
+ Cú pháp: RET
+ Mã đối tượng:

+ Ý nghóa: lệnh này sẻ kết thúc chương trình con, vi xử lý sẽ trở lại chương trình
chính tiếp tục phần chương trình còn lại.
+ Lệnh này chiếm 1 byte, số chu kỳ xung clock=10.
+ Thanh ghi trạng thái không đổi.
2. Lệnh trở về khi Z=0:
+ Cú pháp: RNZ

+ Mã đối tượng:

+
Ý nghóa: lệnh này sẽ kết thúc chương trình con khi bit Z=0, vi xử lý sẽ trở lại
chương trình chính tiếp tục phần chương trình còn lại, nếu không thỏa điều kiên
chương trình con sẽ thực hiện các lệnh tiếp theo.
+ Lệnh này chiếm 1 byte, số chu kỳ clock=6/12.
+ Thanh ghi trạng thái không thay đổi.
( Tương tự cho các lệnh khác).
3. Lệnh trở về khi Z=1:
+ Cú pháp: RZ
4. Lệnh trở về khi C=0:
+ Cú pháp: RNC
5. Lệnh trở về khi C=1:
+ Cú pháp: RC
6. Lệnh trở về khi P=0:
+ Cú pháp: RPO
7. Lệnh trở về khi P=1:
+ Cú pháp: RPE

8. Lệnh trở về khi S=0:
+ Cú pháp: RP
9. Lệnh trở về khi S=1:
+ Cú pháp: RM
1 1 0 0 1 0 0 1
1 1 0 0 0 0 0 0
.
.
Trường ĐH SPKT Luận văn tốt nghiệp


GVHD: Nguyễn Đình Phú SVTH: Nguyễn Trung Dũng

Bảng tra các thanh ghi:

Register ddd or sss
B 000
C 001
D 010
E 011
H 100
L 101
M 110
A 111

Bảng 2.1


XVIII. NHÓM LỆNH DI CHUYỂN CẶP THANH GHI
1. Lệnh trao đổi nội dung 2 cặp thanh ghi:

+ Cú pháp : XCHG
+ Mã đối tượng:

+ Ý nghóa: nội dung cặp thanh ghi HL và DE được trao đổi cho nhau. Thanh ghi H
trao đổi với D thanh ghi L trao đổi với E.
+ Lệnh này chiếm 1 byte, số chu kỳ xung clock = 4.
+ Thanh ghi trạng thái không thay đổi.
( Tương tự cho các lệnh khác ).
2. Lệnh trao đổi nội dung cặp thanh ghi với ô nhớ:
+ Cú pháp : XTHG
3. Lệnh di chuyển nội dung cặp thanh ghi:
+ Cú pháp : SPHL
4. Lệnh nạp cặp thanh ghi PC :
+ Cú pháp : PCHL

XIX. NHÓM LỆNH XUẤT NHẬP
1. Lệnh nhập dữ liệu từ port:
+ Cú pháp: IN port-addr

+ Mã đối tượng:

+ Ý nghóa: nhập nội dung của có đòa chỉ port-addr vào thanh ghi A. Đòa chỉ port-
addr có độ dài 1 byte.
+ Lệnh này chiếm 2 byte, số chu kỳ xung clock = 10.
+ Thanh ghi trang thái không thay đổi.
(Tương tự cho các lệnh khác).
2. Lệnh xuất dữ liệu ra port:
+ Cú pháp: OUT port-addr
3. Lệnh cho phép ngắt:
+ Cú pháp: EI

4. Lệnh không cho phép ngắt:
+ Cú pháp: DI
5. Lệnh read interrupt mask:
+ Cú pháp: RIM
6. Lệnh set interrupt mask:
+ Cú pháp: SIM

XX. NHÓM LỆNH ĐẶC BIỆT:
1. Lệnh nghòch đảo nội dung thanh ghi A:
1 1 0 1 1 0 1 1

port
-
a
ddr

1 1 1 0 1 0 1 1

.
.
Trường ĐH SPKT Luận văn tốt nghiệp


GVHD: Nguyễn Đình Phú SVTH: Nguyễn Trung Dũng

+ Cú pháp: CMA
2. Lệnh đặt bit carry:
+ Cú pháp: STC
3. Lệnh nghòch đảo bit carry:
+ Cú pháp: CMC

4. Lệnh điều chỉnh thập phân:
+ Cú pháp: DAA
5. Lệnh nop:
+ Cú pháp: NOP
6. Lệnh dừng:
+ Cú pháp: HLT

XXI. VÍ DỤ MINH HỌA TẬP LỆNH:
Chương trình nhấp nháy chuỗi "-HÀ-NỘI-" trên 8 led:
Org 7108h ;đòa chỉ bắt đầu nhập mã chuổi
Db, 40h, 76h, 77h, 40h, 37h, 3fh, 30h, 40, ;khai báo mã của chuỗi
Org 6200h
Vd1: lxi h, 7108h ;nạp đòa chỉ quản lý dữ liệu vào thanh ghiHL
Mvi c, 08h ;làm biến đếm cho chương trình hiển thò
Vd2: mov a, m ;lấy dữ liệu
Sta 0a000h ;gởi ra led hiển thò
Inr l ;tăng lên 1 để lấy byte tiếp theo
Dcr c ;giảm biến đếm
Jnz vd2 ;nhảy về vd2 khi chưa gởi đủ 8 byte
Mvi a, 01h ;nạp thời hằng delay1 giây
Call 0310h ;gọi chương trình con delay
Mvi c, 08h ;làm biến điếm cho chương trình xóa
Mvi a, 00h ;nạp 00 vào A
Vd3 sta 0a000h ;gởi ra led để xóa
Dcr c ;giảm biến đếm
Jnz vd3 ;quay lại vd3 nếu chưa xóa đủ 8 led
Mvi 0, 01h ;nạp thời hằng delay
Call 0310h ;gọi chương trình delay
Jmp vd1 ;quay lại làm lại chu kỳ kế.
.

.
Trường ĐH SPKT Luận văn tốt nghiệp


GVHD: Nguyễn Đình Phú SVTH: Nguyễn Trung Dũng

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 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 là 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ần 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 eáy in với tất cả các đường dẫn được mô tả như sau:

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
SLCTN
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ấy
Báo chọn máy in
Máy tính báo ra máy in tự nạp giấy
Báo các lỗi của máy in
Reset máy in
Chọn máy in
Nối đất

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

.
.
Trường ĐH SPKT Luận văn tốt nghiệp


GVHD: Nguyễn Đình Phú SVTH: Nguyễn Trung Dũng


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

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
ERROR


SLCT

PE
ACK
BUSY
Strobe

AF

INIT

SLCTIN
( Ngắt 8259 )


HÌNH 3.2

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

.
.
Trường ĐH SPKT Luận văn tốt nghiệp


GVHD: Nguyễn Đình Phú SVTH: Nguyễn Trung Dũng


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.
+ cho Busy = 1 để phát ký tự tiếp theo
+ quay về bước 1


.
.

×