Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 49 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
49
Dung lượng
138,63 KB
Nội dung
Bµi 9
§ång xö to¸n
8087
(Co-Processor)
!"#$
%&'()*)+
, /!)*)+
"0123&
1. Giíi thiÖu
4543&6789
:;<$=>!?1@
5ABC6
(DEFG"9BC"
$2H.>!?1
@8@I"JIK
H.>!?1@IDI
L"
M@43&!/!N
!/!H.>!?1@
<OPH$Q@
$5J;RS
;"D0P6
&JQ@T3%)U$OHI43&8
929!"!BC
&J)U$O"843&;!
"V
MW X H =! )*)+ $;
)*)U
&YAZ%I+[F\]
B/!
-K@2
<
-K@2
/!
@
XH
-^!
>
DQ
&
F;00_
)*)+5µH
6
`
+
+
`
`
`
)
U
`*
**
)*))
5µH6
U**
**
U**
**
**
+**
**
`U**
***
+**
X.P
),
)*
`,
)*
%,
`*
+*
,,*
%,
+*
2. C¸c kiÓu d÷ liÖu ®ång xö lý
to¸n.
?H.>!?1@abbb
-D0`)*CcQabbbdS;
?QeH.N
?abbbIH.Nf>!@2
E
X.$@2<
X.$@2/!
F1d012I"f
faM[Iag$;["HhOKg
?;1
Q@$iaX_HR
?>!?1@abbb
jX.abbb>!?1@2
<
X.>!?1@2<H
RQQeH.N5H.
K0$;H.8<6
kW"==!KE
lU
≤3≤
m)
kW"= !!KE
I*
l)
≤3≤I%*
m)
&V:EX.Nn
Xn!S!Q
M Xn!S!
M>E*lH.8<IlH.
K0
l* BP0_
l* BP !!K5=
"=6
XX.0_BP="=
*
*
kW"=E I)*
l)
≤3≤
I%**
)
lU
≤3≤
)
F#,5T2R$OH.$>!?1.=^
H.o$;H.G9!5pXB,Uk["6
,, %) %+ % *
* * * * * *
[q"@>p> -@(
l*IU, EX. !!K
**** E[dQr
**** E[d"NS!
,, %) %+ % *
* * * * * * *
p>BP1V BP !!K
-@(
lIU, EX. !!K
***** E[dQr
********** E[d"NS!
Q81H.NH>!?1
@
X.N891;H.=
!K
X.=!K89Qe8^
:3333bssss
Mf"=t;*uH.8
<It;uH.K0
% BPH.0_ssss89@V0v
H.+AF2H.0_<Hq$;89
qQl*
, BP="=333389qQ
l*
[...]... 7 1-0 Bit 7 3-7 8=0 bit 79 chứa dấu Số thực tạm thời được 8087 sử dụng nội bộ * Các dạng dữ liệu khác Độ dài Khoảng giá trị Word integer 16 -3 2768 X +32768 Short Integer 32 -2 .10 9 X +2.10 9 Long Integer 64 -9 .10 18 X +9. 10 18 Packed Decimal số BCD) 80 Single Real 32 1.18.10 -3 8 X 3.40.10 38 Double Real 64 2,23 10 -3 08 X 1, 79. 10 308 Temporary 493 2 X 1,18.10 493 2 -9 9 99 X +99 99 ... giảm thiểu số transistor của bộ đồngxử lý toán Ví dụ: Chuyển số 9, 75 10 thành số dấu phẩy động chính xác đơn (số thực ngắn) Giải: 9, 75D=1001,11B= 1,00111E3 Bit 31: =0 (Số dương) Bit 30 - 23: 1000 0010 số mũ (3+7FH=82H) Bit 2 2-0 : 00111000000 0000 - Phần định trị Xếp cùng: 0100 0001 0001 1100 0000 0000 0000 Ví dụ: Chuyển số -9 6.27 10 thành số chính xác đơn FP Giải: 96 ,27D =110.0000,0100.0101.0001.1110.1B... các máy 386 về trước, cần có các bộ ĐXL: 8087, 80287, 80387 hoặc tương đương Từ 486 về sau, ĐXL được tích hợp sẵn trong CPU Với 486SX đòi hỏi có bộ đồngxử lý toán 487SX Chỉ dẫn định nghĩa dạng dữ liệu của 8087 DW (Define word - Số 16 bit) DD (Define double word-32 bit) - từ kép, biểu diễn: Số thực ngắn (độ chính xác đơn) Số nguyên ngắn DQ (Define quad word-64 bit) từ bốn, biểu diễn: Số thực... Real 80 3,37.10 - Số nguyên 15 S 0 Độ lớn Số nguyên ngắn 31 0 S Độ lớn Số nguyên dài 63 62 0 Phần định trị S Số thập phân nén 79 78 S 72 71 X 0 Độ lớn D71-D0 Số thực ngắn 31 30 S 23 22 0 Phần định trị Số mũ Số thực dài 63 S 62 52 51 Số mũ 0 Phần định trị Số thực tạm thời 79 S 78 64 Số mũ 63 62 I 0 Phần định trị Hình 12.1 Các dạng dữ liệu của 80x87 3 lập trình với đồngxử lý toán ở các máy 386 về trước,... ENDP CODESG END ENDS STAR ;Khởi tạo ;Nạp ;RxR ;Nạp số PI ;Nhân PI với ;Cất điện tích 4 Tổ chức Đồngxử lý toán8087 * Tổ chức khối Đơn vị điều khiển CU (Control Unit): Điều khiển bus Điều khiển đơn vị số học Đơn vị số NU (Numerical Unit) Thực hiện phép tính dấu phẩy động trong mạch tính luỹ thừa và mạch tính phần định trị ... ST(0) Ví dụ 2: Viết chương trình hợp ngữ cho 8087tính diện tích hình tròn với bán kính R .8087 STACKSG SEGMENT DW 32 DUP (?) STACKSG ENDS DATASG ORG R ORG AREA DATESG SEGMENT 00H DD 10H DD ENDS 91 .67 ? CODESG SEGMENT START PROC FAR ASSUME CS:CODESG.DS:DATASG.SS:STACKSG MOV AX,DATASG MOV DS,AX CALL CIRC_AREA MOV AH.4CH INT 21H START ENDP CIRC_AREA PROC NEAR FINT 8087 FLD R bán kính FMUL ST(0),ST(0) FLD... 31 bằng 1 là số âm Số mũ :Các bit 30 - 23 bằng 1000.0101 (6+7HF=85H) Số dấu phẩy động IEEE chính xác kép Số dấu phẩy động chính xác kép còn được gọi là số thực dài Biểu diễn số âm và dương trong dải 23x10 -3 08 Xđến 1,7x10 +308 Tổng cộng 64 bit Bit 63: Bit dấu Bit 6 2-5 2 (11 bit): Phần mũ 63 S 62 52 0 Số mũ 51 Phần định trị Khoảng giá trị: 2,23 10 -3 08 X 1, 79. 10 308 Chuyển sang dạng số chính xác... 80x87 luôn bắt đầu bằng chữ F để phân biệt với các lệnh của bộ vi xử lý 80x86 2 8087 khởi tạo để đỉnh ngăn xếp luôn là thanh ghi số 7 3 Thanh ghi ST(0) luôn trỏ đến đỉnh ngăn xếp 4 ST(0) là đỉnh ngăn xếp, ST(1) là thanh ghi kế tiếp, ST(2) là thanh ghi thứ 3 kể từ thanh ghi ST * Ví dụ Viết chư ng tr ình cho 8087 nạp 3 giá trị X, Y và Z, tính tổng v cất kết quả 000 001 010 011 100 101 ST(0) 110 ST(0)... FADD c) FST d) ST(2)=(STO+ST2 SUM ) Hình: Thứ tự thực hiện các FSTP SUM Giải STACKSG SEGMENT DW 32DUP(?)(DANH KO GIAN NHO 32B) STACKSG ENDS DATASG X DD SEGMENT ORG 00H 9. 75 DINH NGHIA CAC GIA TRI ORG Y Z DD ORG DD ORG 10H 13. 093 75 20H 29. 0 390 625 30H CODESG START SEGMENT PROC FAR ASSUME CS:CODESG, DS:DATASG, SS:STACKSG MOV AX,DATASG MOV DS,AX CALL CSUM GOI CT TINH TONG) MOV AH,4CH INT 21H START ENDP CSUM... Ví dụ: Chuyển đổi số 152.1875 10 thành số chính xác kép Giải: 152.1875D=10011000.0011B=1.00110000 011E7 Bit 63=0 - Số dương Bit 6 2- 52=100.0000.0110 (7+3FFH=406H) Bit 5 1-0 =00110000011000 000 0010 0000 0110 0011 0000 0110 0000 0000 0000 4 0 6 3 0 6 0 0 0 Các dạng d ữ liệu khác của 8087 Số nguyên: Hỗ trợ các số 16, 32 và 64 bit, các số này tương ứng với số nguyên dạng từ, dạng ngắn và dạng dài . Bµi 9
§ång xö to¸n
8087
(Co-Processor)
. $;
)*)U
&YAZ%I+[F]
B/!
- K@2
<
- K@2
/!
@
XH
-^ !
>
DQ
&
F;00_
)*)+5µH
6
`
+
+
`
`
`
)
U
`*
**
)*))
5µH6
U**
**
U**
**
**
+**
**
`U**
***
+**
X.P
),
)*
`,
)*
%,
`*
+*
,,*
%,
+*
2.