Está en la página 1de 3

.MODEL SMALL .STACK .DATA Cadena DB 20,0,20 DUP ('0') ; . . . ;Funcion de la Int 21 para capturar una cadena.

MOV AH, 0AH ;DX debe poseer la direccion del bufer. MOV DX, OFFSET Cadena ;Por seguridad. PUSH DX ;Se realiza la captura del dato INT 21H ;Recupero DX POP DX . . . Aunque este extracto de cdigo es de un viejo programa que tena por ah guardado, es para manejo de cadenas, te puede ilustrar rpidamente la mecnica de la INT 21H. maXTer diciembre 2, 2004, 11:23 AM Hola Laneros gracias por su colaboracin, en la noche posteo el codigo resultante. maXTer diciembre 4, 2004, 10:35 PM aqui esta el codigo include 'emu8086.inc' ORG 100h ; JMP START ; INICIALIZACION DE LAS VARIABLES UTILIZADAS EN EL PROGRAMA: num1 DW ? num2 DW ? num3 DW ? START: CALL PTHIS DB 13, 10, 'PROGRAMA QUE EVALUA Y ARROJA EL MENOR DE TRES NUMEROS:', 13, 10 DB 13, 10, 'DIGITE EL PRIMER NUMERO: ', 0 CALL scan_num ; ESCANEA O RECOGE EL PRIMER NUMERO ; Y SE GUARDA EN LA VARIABLE NUM1: MOV num1, CX

; ESCANEA O RECOGE EL SEGUNDO NUMERO CALL PTHIS ; Y SE GUARDA EN LA VARIABLE NUM2: DB 13, 10, 'DIGITE EL SEGUNDO NUMERO: ', 0 CALL scan_num MOV num2, CX

; ESCANEA O RECOGE EL TERCER NUMERO CALL PTHIS ; Y SE GUARDA EN LA VARIABLE NUM3: DB 13, 10, 'DIGITE EL TERCER NUMERO: ', 0 CALL scan_num MOV num3, CX

MOV MOV MOV CMP JGE CMP JGE

AX,num1 ; SE INICIA EL PROCEDIMIENTO DE COMPARACION BX,num2 CX,num3 AX,BX BANDERA1 AX,CX BANDERA2

; MUESTRA EL RESULTADO EN CASO ; DE QUE LA VAR1 SEA LA MENOR EN PANTALLA: CALL PTHIS DB 13, 10, 'EL NUMERO MENOR ES: ', 0 MOV AX, num1 CALL print_num JMP BANDERASALIR ; BANDERA 1 BANDERA1: CMP BX,CX JGE BANDERA2 ; MUESTRA EL RESULTADO EN CASO DE QUE LA VAR2 SEA LA MENOR. CALL PTHIS DB 13, 10, 'EL NUMERO MENOR ES: ', 0 MOV AX,BX CALL print_num JMP BANDERASALIR ; BANDERA 2 BANDERA2: CALL PTHIS DB 13, 10, 'EL NUMERO MENOR ES: ', 0

MOV AX,CX ; MUESTRA EL RESULTADO EN CASO DE QUE CALL print_num ; LA VAR3 SEA LA MENOR. JMP BANDERASALIR

BANDERASALIR: RET

;================================= ; SE DEFINEN FUNCIONES QUE SE CARGAN DEL ARCHIVO emu8086.inc DEFINE_SCAN_NUM ; SCAN_NUM ALMACENA EL VALOR ; RECIBIDO EN PANTALLA EN EL REGISTRO CX DEFINE_PRINT_NUM ; PRINT_NUM MUESTRA EN PANTALLA ; LO QUE SE ENCUENTRE EN EL REGISTRO AX DEFINE_PRINT_NUM_UNS DEFINE_PTHIS ; FUNCION QUE IMPRIME CADENAS DE TEXTO ; QUE SE ESPECIFICAN BAJO ESTA. ;================================= END

También podría gustarte