PRÁCTICA 13
PRÁCTICA 13
PRÁCTICA 13
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
LENGUAJE ENSAMBLADOR 80386 <strong>PRÁCTICA</strong> <strong>13</strong><br />
codeseg<br />
PUBLIC Inicia87<br />
PROC Inicia87<br />
push bx ax ;salva registros<br />
mov ax,-1 ;pone FFFFH en la pila<br />
push ax<br />
mov bx,sp ;la hace direccionable<br />
fninit ;trata de inicializar el coprocesador<br />
fnstsw [ss:bx] ;trata de traer palabra de estado<br />
pop ax ;si 8 bits bajos son cero,<br />
or al,al ;el coprocesador está presente<br />
jnz @@10 ;salta si no hay coprocesador<br />
fldcw [ss:bx+2] ;carga al coprocesador la palabra de control<br />
@@10:<br />
pop ax bx ;restaura registros<br />
ret ;y regresa el resultado en la bandera Z<br />
ENDP Inicia87<br />
end<br />
%TITLE “FALOG.ASM CALCULA ANTILOG COMÚN EN 80387”<br />
;<br />
; FALOG.ASM calcula el antilogaritmo en 80387<br />
;<br />
; Llamar con: ST(0) = argumentos<br />
;<br />
; Retorna: ST(0) = antilogaritmo de base 10<br />
;<br />
; Usa: registros del CPU se preservan, usa tres celdas de la pila del coprocesador<br />
;<br />
; Nota: Para obtener antilogaritmo natural, reemplazar “fldl2t” con la instrucción “fldl2e”.<br />
;<br />
; Estar seguro que el coprocesador ha sido iniciado con un llamado previo a INICIA87!<br />
IDEAL<br />
MODEL small<br />
Codeseg<br />
vieja equ [word bp-4] ;palabra original de control<br />
nueva equ [word bp-2] ;palabra nueva de control<br />
PUBLIC falog<br />
PROC falog<br />
push ax ;salva registros y<br />
push bp ;forma apuntador<br />
mov bp,sp ;para variables locales<br />
AUTOR: PROFESOR SALVADOR SAUCEDO FLORES<br />
EDICIÓN: PROFESOR PABLO FUENTES RAMOS<br />
<strong>13</strong>-2