PRÁCTICA 1
PRÁCTICA 1
PRÁCTICA 1
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
LENGUAJE ENSAMBLADOR 80386 <strong>PRÁCTICA</strong> 1<br />
push di ;Salva registros<br />
push si<br />
; SI controla los dígitos guardados en la pila<br />
@@10:<br />
@@20:<br />
@@30:<br />
@@40:<br />
xor si,si ;Contador de dígitos a cero<br />
jcxz @@20 ;Si CX = 0 brinca a ponerlo a 1<br />
xor dx,dx ;Extiende AX a 32 bits<br />
div bx ;AX = DX. AX/BX, DX = residuo<br />
call DigitoHex ;Convierte DL a dígito hexadecimal<br />
push dx ;Salva dígito en la pila<br />
inc si ;Cuenta dígitos salvados<br />
loop @@10<br />
inc cx ;Pone CX = 1 por si no se hizo<br />
or ax,ax ;AX = 0? (todos los dígitos)<br />
jnz @@10 ;Si AX > 0 continua la conversión<br />
mov cx,s ;CX = contador de caracteres en pila<br />
jcxz @@40 ;Omite sgte bucle si CX=0000<br />
cld ;Autoincrementa DI en STOSB<br />
pop ax ;Trae siguiente dígito en AL<br />
stosb ;Pone dígito en cadena y avanza DI<br />
loop @@30 ;Repite el bucle<br />
mov [byte di],ASCnulo ;Pone cero al fin de cadena<br />
pop si di dx ;Repone registros<br />
ret ;Regresa<br />
ENDP NumAsc<br />
;BinAscDec CONVIERTE VALOR BINARIO A CADENA ASCII DECIMAL<br />
;<br />
;Entrada: Misma que BinAscHex<br />
;Salida: Ninguna<br />
;Registros: AX, CX (indirectamente)<br />
PROC BinAscDec<br />
push bx ;Salva BX en la pila<br />
mov bx,10 ;Base para conversión<br />
call NumAsc ;Pasa a ASCII<br />
pop bx ;Repone BX<br />
ret ;Regresa a programa fuente<br />
AUTOR: PROFESOR SALVADOR SAUCEDO FLORES<br />
EDICIÓN: PROFESOR PABLO FUENTES RAMOS<br />
1-9