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 />
fimul [int10] ;si, mantisa*10<br />
dec [exp] ;y decrementa exponente<br />
jmp @@20<br />
@@30:<br />
fcom [fp1e18] ;¿es la mantisa < 1.0e18?<br />
fstsw [status]<br />
fwait<br />
mov ax,[status]<br />
sahf<br />
jb @@40 ;si, proceder<br />
fidiv [int10] ;no, mantisa / 10<br />
inc [exp] ;e incrementa exponente<br />
jmp @@30<br />
@@40:<br />
fbstp [mant] ;salva mantisa en BCD<br />
fwait<br />
mov di,si ;direcciona cadena ASCII<br />
mov ,’+’ ;asume es positivo<br />
test [signo],200h ;verifica banderas de FXAM<br />
jz @@50 ;brinca, valor es positivo<br />
mov al,’-‘<br />
@@50:<br />
stosb ;salva símbolo + o –<br />
mov al,’0’ ;salva cero delantero<br />
stosb<br />
mov al,’.’ ;pone punto decimal<br />
stosb<br />
mov bx,8 ;apunta a últimos dígitos BCD<br />
@@60:<br />
mov al,[byte bx+mant] ;convierte byte BCD a<br />
shr al,1 ;dos dígitos ASCII<br />
shr al,1<br />
shr al,1<br />
shr al,1<br />
call digit ;convierte nibble alto<br />
mov al,[byte bx+mant]<br />
call digit ;convierte nibble bajo<br />
dec bx ;procesa valores BCD<br />
jns @@60 ;hasta convertir 18 dígitos<br />
mov al,’E’ ;pone la E para exponente<br />
stosb<br />
mov bx,[exp] ;prueba signo del exponente<br />
mov al,’+’<br />
or bx,bx<br />
jns @@70 ;brinca, exponente es positivo<br />
mov al,’-‘<br />
neg bx ;valor absoluto del exponente<br />
@@70:<br />
stosb ;salva signo del exponente<br />
AUTOR: PROFESOR SALVADOR SAUCEDO FLORES<br />
EDICIÓN: PROFESOR PABLO FUENTES RAMOS<br />
<strong>13</strong>-8