Пр о ц е с с о р TMS 3 2 0C4 x
178
MPYF
R10, R1, R8
; R8 = vx[1]
SUBRF
2.0, R8
; R8 = 2.0 – vx[1]
MPYF
R8, R10, R1
; R1 = x[2] = x[1](2.0 – vx[1])
RND
R1
MPYF
R1, R0
; z = P(1/Q)
R0
PUSHF
R0
; сохранение z
MPYF
R0, R0, R1
; w = z
2
; Вычисление R = wa
0
/ (w + b
0
), где v = w + b
0
MPYF3
AR0++, R1, R0
; a
0
R0
ADDF
AR0++, R1
; w + b
0
RCPF
R1, R10
; x[0] = приближение 1/v
MPYF
R10, R1, R8
; R8 = vx[0]
SUBRF
2.0, R8
; R8 = 2.0 – vx[0]
MPYF
R8, R10
; R10 = x[1] = x[0](2.0 – vx[0])
MPYF
R10, R1, R8
; R8 = vx[1]
SUBRF
2.0, R8
; R8 = 2.0 – vx[1]
MPYF
R8, R10, R1
; R1 = x[2] = x[1](2.0 – vx[1])
RND
R1
MPYF
R1, R0
; R = wa
0
/ (w + b
0
)
R0
POPF
R1
; z
R1
MPYF
R1, R0
; zR0
R0
ADDF
R1, R0
; ln(M{x}) = z + R0
FLOAT
AR2, R2
; E{x}
R2
MPYF
AR0++, R2, R1
; R2L
1
R1
BUD
R11
ADDF
R1, R0
; R0 + R1
R0
MPYF
AR0++, R2, R1
; R2L
2
R1
ADDF
R1, R0
; ln(x) = ln(M{x}) + E{x}ln(2)
.data
LOG_ADR: .word
LOG
LOG
.float
0.7071067811865475244
; 1/
2
.float
–0.5527074855
; a
0
.float
–6.632718214
; b
0
.float
–2.1219444005e–4
; L
1
.float
0.693359375
; L
2
( L
1
+ L
2
= ln2 )
.float
0.4342944925
; log
10
e
.end
I...,168,169,170,171,172,173,174,175,176,177 179,180,181,182,183,184,185,186