15.05.2013 Views

PRÁCTICA 1

PRÁCTICA 1

PRÁCTICA 1

SHOW MORE
SHOW LESS

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

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

Saved successfully!

Ooh no, something went wrong!