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 />
;SacaCadena/SacaCadena2 ESCRIBE CADENA A SALIDA ESTÁNDAR<br />
;<br />
;Entrada: DI = dirección de cadena(s)<br />
; CX = número de caracteres a escribir (sólo SacaCadena2)<br />
;Salida: Cadena cad copiadas al dispositivo de salida estándar<br />
;Registros: CX (sólo para SacaCadena2)<br />
PROC SacaCadena<br />
call LargoCad ;Pone CX = largo de cadena<br />
PROC SacaCadena2 ;Punto alternativo de entrada<br />
@@10:<br />
push ax bx di ;Salva registros a usar<br />
mov bx,07 ;Handle para salida estándar<br />
mov al,[di] ;DS:DX apunta a dirección de cadena<br />
mov ah,0eh ;BIOS escribe a "teletipo"<br />
in 10h ;Llama a DOS (retorna con AX = bytes<br />
inc di<br />
loop @@10 ;escritos)<br />
pop di bx ax ;Repone registros<br />
ENDP SacaCadena2 ;Fin de rutina alternativa<br />
ENDP SacaCadena ;Fin de rutina normal<br />
;NuevaLinea EMPIEZA OTRA LÍNEA EN DISPOSITIVO ESTÁNDAR<br />
;<br />
;Entrada: Ninguna<br />
;Salida: Retorno de carro y nueva línea a la salida<br />
;Registros: AH y DL<br />
PROC NuevaLinea<br />
mov ah,2 ;Rutina de DOS para sacar un carácter<br />
mov dl,rc ;Pone retorno de carro en DL<br />
int 21h ;Manda y exhibe retorno de carro<br />
mov dl,nl ;Pone salta línea en DL<br />
int 21h ;Manda a nueva línea<br />
ENDP NuevaLinea<br />
END ;fin de módulo CADENAS.ASM<br />
El procedimiento SacaCadena llama a otro procedimiento para contar los caracteres de la<br />
cadena a exhibir, este procedimiento nos regresa en CX el número de caracteres a exhibir.<br />
Mediante la interrupción 10H servicio 0EH exhibimos letra por letra. La instrucción LOOP<br />
AUTOR: PROFESOR SALVADOR SAUCEDO FLORES<br />
EDICIÓN: PROFESOR PABLO FUENTES RAMOS<br />
1-4