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 />

regresa a @@10 hasta que el contador CX sea cero.<br />

Con el procedimiento NuevaLinea se exhibe en pantalla un retorno de carro con una<br />

nueva línea. Esto se logra mediante la interrupción 21H, servicio 2.<br />

3.2 Capturar el módulo anterior con el nombre CADENAS.ASM y crear el programa objeto<br />

mediante el siguiente comando.<br />

C>TASM /zi CADENAS<br />

3.3 Crear la biblioteca REM con el programa anterior mediante los comandos siguientes:<br />

C>TLIB /E REM -+CADENAS<br />

3.4 Procedimiento para contar caracteres no nulos en una cadena.<br />

%TITLE "RUTINAS PARA MANIPULAR CADENAS”<br />

IDEAL<br />

DOSSEG<br />

MODEL small<br />

CODESEG<br />

PUBLIC LargoCad<br />

; Hacer ES = DS antes de llamar a estas rutinas.<br />

ASCnulo EQU 0 ;ASCII para terminador<br />

;LargoCad CUENTA CARACTERES NO NULOS EN UNA CADENA<br />

;<br />

;Entrada: DI = dirección de la cadena<br />

;Salida: CX = número de caracteres no nulos en la cadena<br />

;Registros: CX<br />

PROC LargoCad<br />

ENDP LargoCad<br />

AUTOR: PROFESOR SALVADOR SAUCEDO FLORES<br />

EDICIÓN: PROFESOR PABLO FUENTES RAMOS<br />

push ax di ;Salva registros que usa<br />

xor al,a ;Carácter a buscar (nulo)<br />

mov cx,0ffffh ;Máximo 65,535 caracteres<br />

cld ;Auto incrementa DI<br />

repnz scasb ;Barre mientras [DI] 0 y CX0<br />

not cx ;Complemento a 1 de CX<br />

dec cx ;Menos 1, igual a largo de cadena<br />

pop di ax ;Repone registros<br />

ret<br />

END ;Fin de módulo MANCADE.ASM<br />

1-5

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

Saved successfully!

Ooh no, something went wrong!