Created
February 13, 2021 19:31
-
-
Save dutchand/c8fa187786d0b6cb7717c1f31310c331 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
STACK SEGMENT PARA STACK 'STACK' | |
DB 256 DUP(00H) | |
STACK ENDS | |
DATA SEGMENT PARA PUBLIC 'DATA' | |
ENTRADANUM DB 'ENTRE 20 N',163,'MEROS DE DOS CIFRAS: $' | |
SALIDAMAYOR DB 'LA MAYOR N',163,'MEROS DE DOS CIFRAS: $' | |
SALIDAMENOR DB 'LA MENOR N',163,'MEROS DE DOS CIFRAS: $' | |
SALIDADIF DB 'LA DIFERENCIA ES: $' | |
CANTNUM EQU 20 | |
ARREGLO DB CANTNUM DUP(?) | |
MAYOR DB 00H | |
MENOR DB 00H | |
NEWLINE DB 0DH,0AH, '$' | |
;Esta MACRO visualiza en el display una CADENA finaliza en '$' | |
DISPLAY_CADENA MACRO STRING | |
PUSH AX | |
PUSH DX | |
MOV AH, 09H | |
MOV DX, OFFSET STRING | |
INT 21H | |
POP DX | |
POP AX | |
ENDM | |
;Esta MACRO visualiza en el display un CARACTER | |
DISPLAY_CHAR MACRO CHAR | |
PUSH AX | |
PUSH DX | |
MOV AH, 02H | |
MOV DL, CHAR | |
INT 21H | |
POP DX | |
POP AX | |
ENDM | |
;Esta MACRO obtiene un CARACTER del teclado y lo visualiza en el display | |
GET_CHAR MACRO | |
MOV AH, 01H | |
INT 21H | |
ENDM | |
;Esta MACRO inicializa el SEGMENTO de datos | |
INICIAR MACRO | |
MOV AX, DATA | |
MOV DS, AX | |
MOV ES, AX | |
ENDM | |
;Esta MACRO sale al DOS con codigo de error cero | |
EXIT MACRO | |
MOV AX, 4C00H | |
INT 21H | |
ENDM | |
DATA ENDS | |
CODE SEGMENT PARA PUBLIC 'CODE' | |
MAIN PROC FAR | |
ASSUME CS:CODE | |
INICIAR | |
ASSUME DS:DATA | |
ASSUME ES:STACK | |
DISPLAY_CADENA NEWLINE | |
DISPLAY_CADENA ENTRADANUM | |
MOV DI, OFFSET ARREGLO | |
CLD | |
MOV CX, CANTNUM | |
;LLenar EL ARREGLO | |
CONT: | |
GET_CHAR | |
DISPLAY_CHAR' ' | |
STOSB | |
LOOP CONT | |
CALL MAYORP | |
MOV MAYOR, AL | |
CALL MENORP | |
MOV MENOR, AL | |
DISPLAY_CADENA NEWLINE | |
DISPLAY_CADENA SALIDAMAYOR | |
;Imprimir la mayor | |
MOV AH, 02H | |
MOV DL, MAYOR | |
INT 21H | |
DISPLAY_CADENA NEWLINE | |
DISPLAY_CADENA SALIDAMENOR | |
;Imprimir la menor | |
MOV DL, MENOR | |
INT 21H | |
DISPLAY_CADENA NEWLINE | |
DISPLAY_CADENA SALIDADIF | |
;imprimir la dif. | |
MOV AL, MAYOR | |
SUB AL, MENOR | |
ADD AL, 30H | |
MOV DL, AL | |
INT 21H | |
EXIT | |
MAIN ENDP | |
MAYORP PROC NEAR | |
push cx | |
push si | |
mov cx, 20 | |
mov si, offset ARREGLO | |
mov al, [si] | |
inc si | |
Do: cmp al, [si] | |
jl sw | |
inc si | |
loop Do | |
jmp fin | |
sw: mov al, [si] | |
inc si | |
loop Do | |
fin: pop si | |
pop cx | |
ret | |
mayorp endp | |
MENORP PROC NEAR | |
push cx | |
push si | |
mov cx, 20 | |
mov si, offset ARREGLO | |
mov al, [si] | |
inc si | |
Do1:cmp al, [si] | |
jg sw2 | |
inc si | |
loop Do1 | |
jmp fin2 | |
sw2: mov al, [si] | |
inc si | |
loop Do1 | |
fin2:pop si | |
pop cx | |
ret | |
menorp endp | |
CODE ENDS | |
END MAIN | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
STACK SEGMENT PARA STACK 'STACK' | |
DB 1024 DUP(00H) | |
STACK ENDS | |
DATA SEGMENT PARA PUBLIC 'DATA' | |
MSG1 DB 'ESTA ACTUANDO AHORA LA INTERRUPCION$' | |
DATA ENDS | |
CODE SEGMENT PARA PUBLIC 'CODE' | |
TRABAJO PROC FAR | |
ASSUME CS:CODE | |
MOV AX,DATA | |
MOV DS,AX | |
ASSUME DS:DATA | |
;**** INICIO DEL PROGRAMA *** | |
CALL INICINT | |
CALL PRINCIPAL | |
MOV AH,4CH | |
INT 21H | |
TRABAJO ENDP | |
;Inicio del las subrutinas | |
;;;;;;;;;;;;;;;;;;;; | |
INICINT PROC NEAR | |
MOV AL,1BH;ICW1 | |
OUT 20H,AL | |
MOV AL,09H;ICW2 | |
OUT 21H,AL | |
MOV AL,0DH;ICW4 | |
OUT 21H,AL | |
RET | |
INICINT ENDP | |
;;;;;;;;;;;;;;;;;;;; | |
ATENTING3 PROC NEAR | |
PUSH DX | |
PUSH AX | |
push bx | |
push cx | |
MOV AH,9 | |
MOV DX,OFFSET MSG1 | |
INT 21H | |
MOV AL,20H | |
OUT 20H,AL | |
pop cx | |
pop bx | |
POP AX | |
POP DX | |
IRET | |
ATENTING3 ENDP | |
;;;;;;;;;;;;;;;;;;;; | |
PRINCIPAL PROC NEAR | |
CLI | |
MOV AH,35H | |
MOV AL,09H | |
INT 21H | |
PUSH ES | |
PUSH BX | |
MOV DX,OFFSET ATENTING3 | |
MOV BX,SEG ATENTING3 | |
MOV DS,BX | |
MOV AH,25H | |
MOV AL,09H | |
INT 21H | |
STI | |
N2:IN AL,60H | |
CMP AL,1CH | |
JNZ N2 | |
FIN: | |
IN AL,61H | |
OR AL,80H | |
OUT 61H,AL | |
AND AL,7FH | |
OUT 61H,AL | |
POP DX | |
POP DS | |
MOV AH,25H | |
MOV AL,09H | |
INT 21H | |
RET | |
PRINCIPAL ENDP | |
CODE ENDS | |
END TRABAJO | |
Author
dutchand
commented
Feb 13, 2021
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment