04.06.2013 Views

PRÁCTICA 13

PRÁCTICA 13

PRÁCTICA 13

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!