11-15
MATH COPROCESSING
Example 11-1. Initialization Sequence for 80C187 Math Coprocessor
$mod186
name
example_80C187_init
;
;FUNCTION:
This function initializes the 80C187 numerics coprocessor.
;
;SYNTAX:
extern unsigned char far 187_init(void);
;
;INPUTS:
None
;
;OUTPUTS:
unsigned char - 0000h -> False -> coprocessor not initialized
;
ffffh -> True -> coprocessor initialized
;
;NOTE:
Parameters are passed on the stack as required by
;
high-level languages.
;
lib_80186
segment public ’code’
assume cs:lib_80186
public _187_init
_187_initproc far
push
bp
;save caller’s bp
mov
bp, sp
;get current top of stack
cli
;disable maskable interrupts
fninit
;init 80C187 processor
fnstcw [bp-2]
;get current control word
sti
;enable interrupts
mov
ax, [bp-2]
and
ax, 0300h
;mask off unwanted control bits
cmp
ax, 0300h
;PC bits = 11
je
Ok
;yes: processor ok
xor
ax, ax
;return false (80C187 not ok)
pop
bp
;restore caller’s bp
ret
Ok:
and
[bp-2], 0fffeh
;unmask possible exceptions
fldcw
[bp-2]
mov
ax,0ffffh
;return true (80C187 ok)
pop
bp
;restore caller’s bp
ret
_187_initendp
lib_80186ends
end
Содержание 80C186EA
Страница 1: ...80C186EA 80C188EA Microprocessor User s Manual...
Страница 2: ...80C186EA 80C188EA Microprocessor User s Manual 1995...
Страница 19: ......
Страница 20: ...1 Introduction...
Страница 21: ......
Страница 28: ...2 Overview of the 80C186 Family Architecture...
Страница 29: ......
Страница 79: ......
Страница 80: ...3 Bus Interface Unit...
Страница 81: ......
Страница 129: ......
Страница 130: ...4 Peripheral Control Block...
Страница 131: ......
Страница 139: ......
Страница 140: ...5 ClockGenerationand Power Management...
Страница 141: ......
Страница 165: ......
Страница 166: ...6 Chip Select Unit...
Страница 167: ......
Страница 190: ...7 Refresh Control Unit...
Страница 191: ......
Страница 205: ......
Страница 206: ...8 Interrupt Control Unit...
Страница 207: ......
Страница 239: ...INTERRUPT CONTROL UNIT 8 32...
Страница 240: ...9 Timer Counter Unit...
Страница 241: ......
Страница 265: ......
Страница 266: ...10 Direct Memory Access Unit...
Страница 267: ......
Страница 295: ...DIRECT MEMORY ACCESS UNIT 10 28...
Страница 296: ...11 Math Coprocessing...
Страница 297: ......
Страница 314: ...12 ONCE Mode...
Страница 315: ......
Страница 318: ...A 80C186 Instruction Set Additions and Extensions...
Страница 319: ......
Страница 330: ...B Input Synchronization...
Страница 331: ......
Страница 334: ...C Instruction Set Descriptions...
Страница 335: ......
Страница 383: ...INSTRUCTION SET DESCRIPTIONS C 48...
Страница 384: ...D Instruction Set Opcodes and Clock Cycles...
Страница 385: ......
Страница 408: ...Index...
Страница 409: ......