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

Xây dựng bộ điều khiển và nhận dạng tiếng nói phần 5

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

GVHD:Thầy Lê Tuấn Anh Tập Lệnh DSP56002
TẬP LỆNH DSP DSP56002

Chương này mô tả tập lệnh vi xử lí DSP56002 gồm 67 lệnh. Mỗi lệnh có
chiều dài là một hay hai từ. Trong số đó có 30 lệnh cho phép truyền một hay
hai dữ liệu song song. Tập lệnh đươc chia ra các nhóm sau: nhóm truyền dữ
liệu, số học, logic, thao tác bit, vòng lặp và nhóm điều khiển chương trình. Tập
lệnh chứa nhiều lệnh đònh hướng xử lí tín hiệu số.
A . DẠNG LỆNH:
1./Lệnh một từ:
Lệnh một từ tác động lên tất cả các chế độ đònh đòa chỉ của
DSP56002, ngoại trừ các chế độ đònh đòa chỉ tuyệt đối và dữ liệu tức thời. Mã
hợp ngữ nguồn cho loại lệnh một từ có thể nhận biết dựa vào bốn vùng: vùng
mã nguồn, vùng toán hạng, vùng dữ liệu tuyến tính X, vùng truyền dữ liệu
tuyến tính Y.
Vùng mã nguồn: vùng này thường chỉ cho phép tính toán ALU được thực
hiện, cũng như xác đònh phép truyền, đònh đòa chỉ tổng quát, điều khiển
chương trình.
Vùng toán hạng:xác đònh toán hạng được sử dụng bởi mã nguồn.
Vùng truyền dữ liệu: vùng truyền dữ liệu xác đònh việc lựa chọn tuyến
truyền và các chế độ đònh đòa chỉ tương ứng.

Ví dụ : MAC X0,Y0,B X:R(0)+,X0 Y:(R4)+,Y0
SVTH:Huỳnh Quốc Trâm 4-57

GVHD:Thầy Lê Tuấn Anh Tập Lệnh DSP56002
2./ Lệnh hai từ:
Đònh đòa chỉ tuyệt đối và các chế độ đònh đòa chỉ dữ liệu tức thời đều là
lệnh hai từ cung cấp một đòa chỉ tuyệt đối 16 bit đầy đủ hay một dữ liệu tức
thời 24 bit đầy đủ.
Ví dụ: MOVE #$123456,A0


MOVE #$2000,A0
B . CÁC THAO TÁC TRUYỀN DỮ LIỆU SONG SONG:
Ba mươi lệnh của DSP56002 có thể thực hiện phép truyền một hay hai dữ
liệu trong một chu kì lệnh đồng thời với mã nguồn của lệnh. Dữ liệu truyền
được từ thanh ghi đến thanh ghi, thanh ghi đến bộ nhớ và từ bộ nhớ đến thanh
ghi được cho phép. Nếu thanh ghi tích lũy A, B là thanh ghi nguồn thì phép
dòch hay phép giới hạn xảy ra khi truyền dữ liệu. Nếu A, B là thanh ghi đích
thì dấu mở rộng và zero tự động đẩy vào bit thấp nhất khi truyền dữ liệu. Khi
phép truyền hai dữ liệu được thực thi trong cùng một lệnh thì bản sao nguồn
được cho phép nhưng bản sao đích không được cho phép.
Ví dụ : SUBL B , A B , X:(R0) B , Y:(R4) ; cho phép
ADD B , A X1, B Y1, A ;không cho phép
C . CÁC LOẠI TRUYỀN DỮ LIỆU SONG SONG:
Các loại truyền song song là:
o Truyền dữ liệu ngắn tức thời
o Cập nhật thanh ghi đòa chỉ
o Truyền bộ nhớ X hay Y
o Truyền bộ nhớ X hay Y và thanh ghi
o Truyền bộ nhớ L
o Truyền bộ nhớ XY
1./TRUYỀN DỮ LIỆU NGẮN TỨC THỜI:
Thao tác truyền song song này truyền toán hạng ngắn tức thời 8 bit đến
thanh ghi đích. Toán hạng 8 bit có thể được biểu diễn như một số nguyên
không dấu hay số phân số có dấu phụ thuộc vào thanh ghi đích.
a./ Toán hạng tức thời số nguyên không dấu:
Một toán hạng ngắn tức thời được biểu diễn như một số nguyên không
dấu nếu thanh ghi đích là A2, A1, A0, B2, B1, B0, R7…R0, N7…N0. Dữ liệu 8
bit được chứa trong bit có trọng số thấp nhất của thanh ghi đích và bit cao của
thanh ghi đích tự động reset thành zero.
Ví dụ : ADD B,A #$81,B0 ;B0=$000081

b./ Toán hạng ngắn tức thời số phân số có dấu:
SVTH:Huỳnh Quốc Trâm 4-58

GVHD:Thầy Lê Tuấn Anh Tập Lệnh DSP56002
Một toán hạng ngắn tức thời 8 bit được biểu diễn như một số phân số
có dấu nếu thanh ghi đích là X0, X1, Y0,Y1, A hay B . Toán hạng 8 bit được
chứa trong bit có trọng số cao của thanh ghi đích, còn bit thấp của thanh ghi
đích tự động reset thành zero.
Ví dụ : ADD B,A #$81,B ;B0=$ff810000 000000
2./ Truyền dữ liệu từ thanh ghi đến thanh ghi:
Thao tác truyền song song truyền nội dung của thanh ghi nguồn đến
thanh ghi đích.
Ví dụ: ADD B,A B,X1
3./ Cập nhật thanh ghi đòa chỉ:
Thao tác truyền song song này cập nhật nội dung của thanh ghi đòa chỉ
Rn tùy thuộc chế độ đònh đòa chỉ thanh ghi.
Ví dụ: ADD B,A (R1)+N1
4./ Truyền dữ liệu bộ nhớ X hay Y:
Thao tác truyền dữ liệu song song truyền toán hạng đến một từ đến hay
đi đối với bộ nhớ X hoặc Y. Từ bộ nhớ X hay Y đến thanh ghi hoặc ngược lại .
Ví dụ: ADD A,B A,X:$100
ADD A,B Y:$100,A
5./ Truyền dữ liệu bộ nhớ X hay Y và thanh ghi:
Thao tác truyền song song truyền một toán hạng một từ đến hoặc đi đối
với bộ nhớ X hay Y và toán hạng một từ thanh ghi đến thanh ghi.
Ví dụ: ADD X,A A,X:(R3+N3) A,Y1
6./ Truyền dữ liệu bộ nhớ dài:
Thao tác truyền song song truyền một từ dài toán hạng đến hoặc từ bộ
nhớ L (X:Y). Hai thanh ghi dữ liệu ALU được nối kết với nhau tạo thành toán
hạng từ dài. Điều này cho phép một giá trò dữ liệu chính xác gấp đôi hay một

giá trò phức được truyền đến hay từ bộ nhớ L.
7./ Truyền dữ liệu bộ nh XY:
Thao tác truyền song song truyền hai từ đơn toán hạng đến hay từ bộ nhớ
X và Y .
Ví dụ: ADD X,B X:(R0) +,X1 Y0,Y:(R7)-
D . TẬP LỆNH DSP56002 :
Tập lệnh DSP56002 được chia thành các nhóm sau :
 Truyền dữ liệu
 Số học
 Logic
 Thao tác bit
 Vòng lặp
 Điều khiển chương trình
SVTH:Huỳnh Quốc Trâm 4-59

GVHD:Thầy Lê Tuấn Anh Tập Lệnh DSP56002
1./ Các lệnh truyền :
Lệnh truyền dữ liệu trên Bus dữ liệu X, bus dữ liệu Y, bus dữ liệu chương
trình và bus dữ liệu toàn cục. Các lệnh này xem như một dữ liệu ALU NOP
(không xử lí )với khả năng thực hiện các phép truyền song song. Lệnh truyền
tác động lên bit giới hạn L và bit chia tỉ lệ S ở thanh ghi mã điều khiển
(CCR), trong đó L là bit thứ 6 và S là bit thứ 7. CCR chiếm 8 bit thấp của
thanh ghi trạng thái (SR). Bit L được tác động nếu giới hạn xảy ra khi đọc
thanh ghi tích lũy dữ liệu ALU. Bit S được tác động nếu dữ liệu tăng thêm
được tác động khi thanh ghi tích lũy A và B được truyền trên cùng một bus.
Các lệnh truyền:
1.1. Lệnh LUA: Cập nhật đòa chỉ.
Ví dụ: LUA (R0)+N0,N1 ; Cập nhật thanh ghi đòa
chỉ R0 và chứa đòa chỉ cập nhật trong N1 .
1.2. Lệnh MOVE:Truyền dữ liệu

Ví dụ : MOVE X1,B
1.3.Lệnh MOVEC (hay MOVE): Truyền dữ liệu thanh ghi điều khiển
Ví dụ: MOVEC A,LC ; Truyền nội dung thanh ghi tích lũy đến
thanh ghi điều khiển vòng lặp.
Hay MOVE A,LC
1.4.Lệnh MOVEM (hay MOVE): Truyền nội dung đến bộ nhớ chương
trình và ngược lại.
Ví dụ :MOVE R3,P:(R2)-N2
Hay MOVEM R3,P:(R2)-N2
MOVE P:$0000,LC
Hay MOVEM P:$000,LC
1.5.Lệnh MOVEP : Truyền dữ liệu ngoại vi
Ví dụ : MOVEP X:$FFFE , A
2./ Các lệnh số học
Các lệnh số học dùng ALU dữ liệu để thực hiện thực hiện tất cả các loại
phép xử lí số học. Toán hạng nguồn cho các lệnh số học được chứa trong
thanh ghi nhập ALU dữ liệu hay thanh ghi tích lũy. Toán hạng dành cho kết
quả được tạo ra bởi sự thực thi các lệnh số học thì ở thanh ghi A hay B. Các
lệnh số học cho phép truyền song song xảy ra đồng thời với việc thực thi mã
lệnh. Thao tác truyền song song sử dụng bus dữ liệu X và Y đến ALU dữ liệu
đối với việc dùng trong các lệnh tuần tự và cũng có thể truyền kết quả tạo bởi
thực thi lệnh trước kế đó từ ALU dữ liệu đến bộ nhớ X hay Y.
Lệnh số học thực thi trong một chu kì lệnh và có thể ảnh hưởng đến tất cả
các bit trong thanh ghi mã lệnh điều kiện. Những lệnh số học:
- ABS Giá trò tuyệt đối
SVTH:Huỳnh Quốc Trâm 4-60

GVHD:Thầy Lê Tuấn Anh Tập Lệnh DSP56002
- ADC Cộng với cờ
- ADD Cộng

- ADDL Dòch trái sau đó cộng
- ADDR Dòch phải sau đó cộng
- ASL Dòch trái
- ASR Dòch phải
- CLR Xóa
- CMP So sánh
- CMPM So sánh độ lớn
- DEC Giảm một
- DIV Chia
- INC Tăng một
- MAC Nhân / Tích lũy
- MACR Nhân / Tích lũy và làm tròn
- MPY Nhân
- MPYR Nhân và Làm tròn
- NEG Lấy phần bù
- NORM Chuẩn hóa
- RND Làm tròn
- SBC Trừ với cờ nhớ
- SUB Trừ
- SUBL Dòch trái sau đó trừ
- SUBR Dòch phải sau đó trừ
- TCC Truyền có điều kiện
- TFR Truyền
- TST Kiểm tra
2.1. Các lệnh cộng và trừ số học :

Lệnh Thao tác Cú pháp Nguồn Đích
ADC S+D+C→ D ADC S , D [pm] X , Y A , B
ADD S+D → D ADD S , D [pm]
A

X , X1 , X0
Y , Y1 , Y0
B
A , B
A , B
ADDL S+2D→ D ADDDL S, D [pm] A
B
B
A
ADDR S+D/2→ D ADDR S , D [pm] A
B
B
A
SBC D-S-C→ D SBC S , D [pm] X , Y A , B
A B
SVTH:Huỳnh Quốc Trâm 4-61

×