Published using Google Docs
Vercion dos progrmas tasm.docx
Updated automatically every 5 minutes

Programa 1

; FUNCION : ESCRITURA DE UNA FRASE EN PANTALLA                                                                                                  

; Realizado originalmente por : prof. Juan Ju?rez Fuentes                                                                                              

; Realizado por Alejandro Vega Salas                                                                                                                                      

; COMPILADOR EN EL QUE SE EJECUTO: TASM 3.0                                                                                            

; Programa 1                                                                                                                                                              

; FECHA : 31/03/2016

 CR  EQU 13

                                                                                                                                                                                                     LF  EQU 0Ah                                                                                                                                                            

DATOS SEGMENT                                                                                                                                                      

MENSAJE DB CR,LF,'? Hola Mundo !',CR,LF,'$'                                                                                                      

DATOS ENDS

 PILA SEGMENT STACK                                                                                                                                                    

DB 64 DUP('PILA')                                                                                                                                                                  

PILA ENDS

CODIGO SEGMENT                                                                                                                                                  

pe01_hol PROC FAR                                                                                                                                                

ASSUME CS:CODIGO,DS:DATOS,SS:PILA                                                                                                                          

MOV AX,DATOS                                                                                                                                                      

MOV DS,AX                                                                                                                                                                  

LEA DX,MENSAJE                                                                                                                                                                

MOV AH,9                                                                                                                                                                    

INT 21H                                                                                                                                                                    

MOV AX,4C00H                                                                                                                                                            

INT 21H                                                                                                                                                                        

pe01_hol ENDP                                                                                                                                                        

CODIGO ENDS                                                                                                                                                                

END pe01_hol

Programa 2

; PROGRAMA :Ejemplifica el uso de constantes.                                                                                                          

; Realizado originalmente por : Prof. Juan Ju?rez Fuentes                                                                                              

; COMPILADOR EN EL QUE SE EJECUTO: TASM 3.0                                                                                                      

; Realizado por Alejandro Vega Salas                                                                                                                              

; FECHA : Abril 2016

CR EQU 13                                                                                                                                                                            

LF EQU 10                                                                                                                                                                            

IMPRIMIR EQU 9                                                                                                                                                              

FIN EQU 4C00H                                                                                                                                                                      

DOS EQU 21H

DATOS SEGMENT 21:                                                                                                                                              

TEXTO DB 'Ejemplo del uso de constantes.',CR,LF,'$'

DATOS ENDS                                                                                                                                                                                

PILA SEGMENT STACK                                                                                                                                                      

DB 64 DUP('PILA')                                                                                                                                                          

PILA ENDS

CODIGO SEGMENT                                                                                                                                                            

ASSUME CS:CODIGO,DS:DATOS,SS:PILA

INICIO: MOV AX,DATOS                                                                                                                                                        

MOV DS,AX                                                                                                                                                                      

MOV DX,OFFSET TEXTO                                                                                                                                              

MOV AH,IMPRIMIR                                                                                                                                                              

INT DOS                                                                                                                                                                        

MOV AX,FIN                                                                                                                                                                      

INT DOS                                                                                                                                                                  

CODIGO ENDS                                                                                                                                                              

END INICIO

Programa 3

; PROGRAMA : Limpia pantalla .                                                                                                                        

; Realizado originalmente por : Prof. Juan Ju?rez Fuentes                                                                                

; COMPILADOR EN EL QUE SE EJECUTO: TASM 3.0                                                                                              

; Realizado por Alejandro Vega Salas                                                                                                            

; FECHA : Abril 2016

FIN_4C00H EQU 4C00H                                                                                                                              

DOS_21H EQU 21H                                                                                                                              

BIOS_10H EQU 10H

PILA SEGMENT STACK                                                                                                                                        

DW 100 DUP('0')                                                                                                                                              

PILA ENDS                                                                                                                                                

CODIGO SEGMENT                                                                                                                                  

pe06_cls PROC FAR  

 ASSUME CS:CODIGO,SS:PILA                                                                                                                      

CALL LIMPIA_PANTALLA                                                                                                                                  

MOV AX,FIN_4C00H

pe06_cls ENDP                                                                                                                            

LIMPIA_PANTALLA PROC NEAR 41: MOV AX,0600H

MOV BH,0AH                                                                                                                                                

MOV CX,0000H                                                                                                                                            

MOV DX,484FH                                                                                                                                                    

INT BIOS_10H                                                                                                                                                

RET                                                                                                                                            

LIMPIA_PANTALLA ENDP  

CODIGO ENDS                                                                                                                                                          

END pe06_cls

Programa 4

; PROGRAMA : Posiciona el cursor en cordenada determinada.                                                                      

; Realizado originalmente por : Prof. Juan Ju?rez Fuentes                                                                              

; COMPILADOR EN EL QUE SE EJECUTO: TASM 3.0                                                                                          

; Realizado por Alejandro Vega Salas                                                                                                              

; FECHA : Abril 2016

CR EQU 13                                                                                                                                            

LF EQU 10                                                                                                                                            

TECLADO_8 EQU 8

IMPRIMIR_9 EQU 9                                                                                                                              

FIN_4C00H EQU 4C00H                                                                                                                        

DOS_21H EQU 21H                                                                                                                          

BIOS_10H EQU 10H                                                                                                                            

TAB EQU 09H                                                                                                                                                              

BELL EQU 07H

DATOS SEGMENT                                                                                                                                        

RENGLON DB 0                                                                                                                                        

COLUMNA DB 0                                                                                                                                          

MENSAJE DB CR,LF,'POSICION (x,y), del mensaje: Hola Mundo !',CR,LF,'$'                                  

DATOS ENDS

PILA SEGMENT STACK                                                                                                                                        

DW 100 DUP('0')                                                                                                                                              

PILA ENDS                                                                                                                                                

CODIGO SEGMENT                                                                                                                                  

pe07_cur PROC FAR  

 ASSUME CS:CODIGO,DS:DATOS,SS:PILA                                                                                                          

MOV AX,DATOS                                                                                                                                            

MOV DS,AX                                                                                                                                                          

LEA DX,MENSAJE                                                                                                                                        

CALL POSICIONA_CURSOR                                                                                                                                  

MOV AH,IMPRIMIR_9                                                                                                                                                  

INT DOS_21H                                                                                                                                                      

MOV AX,FIN_4C00H                                                                                                                                                  

INT DOS_21H                                                                                                                                          

pe07_cur ENDP                                                                                                                          

POSICIONA_CURSOR PROC NEAR

  MOV AH,02                                                                                                                                                                  

MOV BH,00                                                                                                                                                      

MOV DH,RENGLON                                                                                                                                  

MOV DL,COLUMNA                                                                                                                                      

INT BIOS_10H                                                                                                                                                  

RET                                                                                                                                        

POSICIONA_CURSOR ENDP                                                                                                                          

CODIGO ENDS 66:                                                                                                                                          

END pe07_cur  

Programa 5

; PROGRAMA : Posiciona el cursor en cordenada determinada.                                                                                                                                  

; Realizado originalmente por : Prof. Juan Ju?rez Fuentes                                                                                                                                

; COMPILADOR EN EL QUE SE EJECUTO: TASM 3.0                                                                                                                                                    

; Realizado por Alejandro Vega Salas                                                                                                                                                            

; FECHA : Abril 2016

 CR EQU 13 ; Constante CR (Retorno de carro)                                                                                                                                                                                                

LF EQU 10 ; Constante LF (Salto de línea)

 TECLADO_8 EQU 8                                                                                                                                                                                      

IMPRIMIR_9 EQU 9                                                                                                                                                                                    

FIN_4C00H EQU 4C00H                                                                                                                                                                                                          

DOS_21H EQU 21H                                                                                                                                                                                                          

BIOS_10H EQU 10H                                                                                                                                                                                                  

TAB EQU 09H                                                                                                                                                                                                    

BELL EQU 07H

  DATOS SEGMENT                                                                                                                                                                                              

RENGLON DB 0                                                                                                                                                                                                    

COLUMNA DB 0                                                                                                                                                                                            

MENSAJE DB CR,LF,'posicion (x,y), del mensaje: Hola Mundo ! '                                                                                                                                          

DB 'Despues de Borrar pantalla.',CR,LF,'$'                                                                                                                                                    

DATOS ENDS

  PILA SEGMENT STACK                                                                                                                                                                                                  

DW 100 DUP('0')                                                                                                                                                                                                            

PILA ENDS                                                                                                                                                                                                                    

CODIGO SEGMENT                                                                                                                                                                                      

pe08_clp PROC FAR

  ASSUME CS:CODIGO,DS:DATOS,SS:PILA                                                                                                                                                                  

MOV AX,DATOS                                                                                                                                                                                                            

MOV DS,AX                                                                                                                                                                                                                          

LEA DX,MENSAJE                                                                                                                                                                                                    

CALL LIMPIA_PANTALLA                                                                                                                                                                                          

CALL POSICIONA_CURSOR

 MOV AH,IMPRIMIR_9                                                                                                                                                                                                      

INT DOS_21H                                                                                                                                                                                                          

MOV AX,FIN_4C00H                                                                                                                                                                                                

INT DOS_21H

pe08_clp ENDP                                                                                                                                                                                

LIMPIA_PANTALLA PROC NEAR                                                                                                                                                                    

MOV AX,0600H

  MOV BH,0AH                                                                                                                                                                                                      

MOV CX,0000H                                                                                                                                                                                                    

MOV DX,484FH                                                                                                                                                                                                  

INT BIOS_10H                                                                                                                                                                                                          

RET                                                                                                                                                                                                

LIMPIA_PANTALLA ENDP

POSICIONA_CURSOR PROC NEAR                                                                                                                                                    

MOV AH,02                                                                                                                                                                                                          

MOV BH,00                                                                                                                                                                                                  

MOV DH,RENGLON                                                                                                                                                                                      

MOV DL,COLUMNA                                                                                                                                                                                                        

INT BIOS_10H                                                                                                                                                                                                              

RET                                                                                                                                                                                              

POSICIONA_CURSOR ENDP                                                                                                                                                                        

CODIGO ENDS

 END pe08_clp

Programa 6

; PROGRAMA : Borra pantalla y posiciona cursor.                                                                                        

; Realizado originalmente por : Prof. Juan Ju?rez Fuentes                                                                                  

; COMPILADOR EN EL QUE SE EJECUTO: TASM 3.0                                                                                      

; Realizado por Alejandro Vega Salas                                                                                                                      

; FECHA : Abril 2016

 CR EQU 13                                                                                                                                                          

LF EQU 10                                                                                                                                                

TECLADO_8 EQU 8                                                                                                                            

IMPRIMIR_9 EQU 9                                                                                                                        

FIN_4C00H EQU 4C00H                                                                                                                          

DOS_21H EQU 21H                                                                                                                          

BIOS_10H EQU 10H                                                                                                                                      

TAB EQU 09H                                                                                                                                            

BELL EQU 07H

DATOS SEGMENT                                                                                                                              

RENGLON DB 0                                                                                                                                

COLUMNA DB 0                                                                                                                                

MENSAJE DB CR,LF,'posicion (x,y), del mensaje: Hola Mundo ! '                                                        

DB 'Despues de Borrar pantalla.',CR,LF,'$'                                                                                              

DATOS ENDS

PILA SEGMENT STACK                                                                                                                                          

DW 100 DUP('0')

PILA ENDS

CODIGO SEGMENT                                                                                                                              

pe08_clp PROC FAR                                                                                                                            

ASSUME CS:CODIGO,DS:DATOS,SS:PILA                                                                                              

MOV AX,DATOS                                                                                                                                        

MOV DS,AX                                                                                                                                                

LEA DX,MENSAJE                                                                                                                                      

CALL LIMPIA_PANTALLA                                                                                                                        

CALL POSICIONA_CURSOR

MOV AH,IMPRIMIR_9                                                                                                                                              

INT DOS_21H

MOV AX,FIN_4C00H                                                                                                                                      

INT DOS_21H                                                                                                                                                

pe08_clp ENDP

LIMPIA_PANTALLA PROC NEAR                                                                                                                  

MOV AX,0600H

MOV BH,0AH                                                                                                                                                

MOV CX,0000H                                                                                                                                            

MOV DX,484FH                                                                                                                                              

INT BIOS_10H                                                                                                                                                

RET                                                                                                                                          

LIMPIA_PANTALLA ENDP

POSICIONA_CURSOR PROC NEAR                                                                                                            

MOV AH,02                                                                                                                                                      

MOV BH,00                                                                                                                                                        

MOV DH,RENGLON                                                                                                                                  

MOV DL,COLUMNA                                                                                                                          

INT BIOS_10H                                                                                                                                                      

RET                                                                                                                                      

POSICIONA_CURSOR ENDP                                                                                                                    

CODIGO ENDS

END pe08_clp

Programa 7

; PROGRAMA :Pide tres datos hasta agotar la longitud de cada uno.

; Realizado originalmente por : Prof. Juan Ju?rez Fuentes

; COMPILADOR EN EL QUE SE EJECUTO: TASM 3.0

; Realizado por Alejandro Vega Salas

; FECHA : Abril 2016

CR EQU 13

LF EQU 10

TECLADO EQU 8

IMPRIMIR EQU 9

FIN EQU 4C00H

DOS EQU 21H

BIOS EQU 10H

TAB EQU 09H

BELL EQU 07H

DATOS SEGMENT

NOMBRE DB 30 DUP(32),'$'

DIR DB 30 DUP(32),'$'

TLF DB 15 DUP(32),'$'

MENS1 DB 'NOMBRE : $'

MENS2 DB 'DIRECCION: $'

MENS3 DB 'TELEFONO : $'

ENTERR DB CR,LF,'$'

DATOS ENDS

PILA SEGMENT STACK

DB 64 DUP('PILA')

PILA ENDS

CODIGO SEGMENT

ASSUME CS:CODIGO,DS:DATOS,SS:PILA

INICIO:

MOV AX,DATOS

MOV DS,AX

CALL MODO_DE_VIDEO

MOV DX,OFFSET MENS1  'NOMBRE: '

CALL ESCRIBE

MOV SI,OFFSET NOMBRE

MOV CX,30

CALL PEDIR

CALL SALTO_DE_LINEA

MOV DX,OFFSET MENS2  'DIRECCION: '

CALL ESCRIBE

MOV SI,OFFSET DIR

MOV CX,30

CALL PEDIR

CALL SALTO_DE_LINEA

MOV DX,OFFSET MENS3 'TELEFONO: '

CALL ESCRIBE

MOV SI,OFFSET TLF

MOV CX,15

CALL PEDIR

MOV DX,OFFSET ENTERR

CALL ESCRIBE

CALL ESCRIBE

CALL ESCRIBE

MOV DX,OFFSET NOMBRE

CALL ESCRIBE

CALL SALTO_DE_LINEA

MOV DX,OFFSET DIR

CALL ESCRIBE

CALL SALTO_DE_LINEA

MOV DX,OFFSET TLF

CALL ESCRIBE

CALL SALTO_DE_LINEA

CALL SALIR

PEDIR PROC NEAR

BUCLE:

MOV AH,TECLADO

INT DOS

MOV [SI],AL

MOV AH,2

MOV DL,AL

INT DOS

INC SI

LOOPNZ BUCLE

RET

PEDIR ENDP

ESCRIBE PROC NEAR

MOV AH,IMPRIMIR

INT DOS

RET

ESCRIBE ENDP

SALTO_DE_LINEA PROC NEAR

MOV DX,OFFSET ENTERR

CALL ESCRIBE

RET

SALTO_DE_LINEA ENDP

MODO_DE_VIDEO PROC NEAR

MOV AX,3 ; Establecer modo 80x25 car. 16 col.

INT BIOS

RET

MODO_DE_VIDEO ENDP                                                                                                              

SALIR PROC NEAR                                                                                                                

MOV AX, FIN ;Mueve la instruccion para terminar el programa.                                                

INT DOS ;Ejecuta la interrupci?n.                                                                                            

RET                                                                                                                                    

SALIR ENDP                                                                                                                    

CODIGO ENDS                                                                                                                        

END INICIO

Programa 8

; PROGRAMA :Imprime un texto utilizando colores                                                                    

; Realizado originalmente por : Prof. Juan Ju?rez Fuentes                                                        

; COMPILADOR EN EL QUE SE EJECUTO: TASM 3.0                                                            

; Realizado por Alejandro Vega Salas                                                                                        

; FECHA : Abril 2016

CR EQU 13                                                                                                                                    

LF EQU 10                                                                                                                            

BIOS EQU 10H                                                                                                                                  

DOS EQU 21H                                                                                                              

TEXTO EQU 3                                                                                                                    

FIN EQU 4C00H

DATOS SEGMENT

TITULO DB 'ENSAMBLADOR'

COLORES DB 01001110B ; Atributo de 'E' los numeros binarios se pueden convertir a hexa

DB 01101111B ; Atributo de 'N' siendo dos digitos hexa el primero representa el

DB 00110001B ; Atributo de 'S' fondo y el segundo el texto.

DB 01011100B ; Atributo de 'A'

DB 00110001B ; Atributo de 'M'

DB 01011111B ; Atributo de 'B'

DB 01101011B ; Atributo de 'L'

DB 01011100B ; Atributo de 'A'

DB 01101111B ; Atributo de 'D'

DB 01001110B ; Atributo de 'O'

DB 00110001B ; Atributo de 'R'

DATOS ENDS

PILA SEGMENT STACK

DB 64 DUP('PILA')

PILA ENDS

CODIGO SEGMENT

pe14_col PROC FAR

ASSUME CS:CODIGO,DS:DATOS,SS:PILA

MOV AX,DATOS

MOV DS,AX

MOV AX,TEXTO

INT BIOS

MOV CX,11

XOR SI,SI

BUCLE:

PUSH CX

MOV DX,SI

ADD DX,35

MOV DH,12

CALL COLOCA

MOV AL,[SI+OFFSET TITULO]

MOV BL,[SI+OFFSET COLORES]

CALL COLOR

POP CX

INC SI

LOOPNZ BUCLE

MOV AH,8

INT DOS

XOR DX,DX

CALL COLOCA

MOV AX,FIN

INT DOS

pe14_col ENDP

COLOR PROC

MOV AH,9

XOR BH,BH

INT BIOS

RET

COLOR ENDP

COLOCA PROC

MOV AH,2

XOR BX,BX

INT BIOS

RET

COLOCA ENDP

CODIGO ENDS

END pe14_col

Programa 9

CR EQU 13

LF EQU 10

IMPRIMIR EQU 9

FIN EQU 4C00H

DOS EQU 21H

TAB EQU 09H

BELL EQU 07H

DATOS SEGMENT

ENCABEZADO DB

13,10,13,TAB,TAB,"====================================================="

DB 13,10,13,TAB,TAB," PROGRAMA QUE IMPRIME UN VALOR BINARIO"

DB

13,10,13,TAB,TAB,"=====================================================",13,10,"

$"

VALOR_ASCII DB '21314151', "$"

DATOS ENDS

PILA SEGMENT STACK

DB 64 DUP('0')

PILA ENDS

CODIGO SEGMENT

pe15_asc PROC NEAR

ASSUME CS:CODIGO,DS:DATOS,SS:PILA

MOV AX,DATOS

MOV DS,AX

LEA DX, ENCABEZADO

CALL ESCRIBE

LEA DX, VALOR_ASCII

CALL ESCRIBE

CALL SALIR

pe15_asc ENDP

ESCRIBE PROC

MOV AH,9

INT 21H

RET

ESCRIBE ENDP

SALIR PROC NEAR

MOV AX, FIN

INT DOS

RET

SALIR ENDP

CODIGO ENDS

END pe15_asc

Programa 10

CR EQU 13

LF EQU 10

IMPRIMIR EQU 9

FIN EQU 4C00H

DOS EQU 21H

TAB EQU 09H

BELL EQU 07H

DATOS SEGMENT

ENCABEZADO DB 13,10,13,TAB,TAB,"====================================================="

DB 13,10,13,TAB,TAB," PROGRAMA QUE IMPRIME VALORES NUMERICOS DEC Y HEXA"

DB 13,10,13,TAB,TAB,"=====================================================",13,10,"$"

VALOR_1 DW 41D, "$"

VALOR_2 DW 42D, "$"

VALOR_3 DW 43D, "$"

VALOR_4 DW 44D, "$"

VALOR_5 DW 45D, "$"

VALOR_6 DW 46, "$"

VALOR_7 DW 47, "$"

VALOR_8 DW 48, "$"

VALOR_9 DW 49, "$"

VALOR_10 DW 50, "$"

VALOR_11 DW 31H, "$"

VALOR_12 DW 32H, "$"

VALOR_13 DW 33H, "$"

VALOR_14 DW 34H, "$"

VALOR_15 DW 35H, "$"

VALOR_16 DW 36H, "$"  

VALOR_17 DW 37H, "$"

VALOR_18 DW 38H, "$" ;

VALOR_19 DW 39H, "$" ;

VALOR_20 DW 40H, "$" ;

DATOS ENDS

PILA SEGMENT STACK

DB 64 DUP('0')

PILA ENDS

CODIGO SEGMENT

pe16_dhe PROC NEAR

ASSUME CS:CODIGO,DS:DATOS,SS:PILA

MOV AX,DATOS

MOV DS,AX

LEA DX, ENCABEZADO

CALL ESCRIBE

LEA DX, VALOR_1

CALL ESCRIBE

LEA DX, VALOR_2

CALL ESCRIBE

LEA DX, VALOR_3

CALL ESCRIBE

LEA DX, VALOR_4

CALL ESCRIBE

LEA DX, VALOR_5

CALL ESCRIBE

LEA DX, VALOR_6

CALL ESCRIBE

LEA DX, VALOR_7

CALL ESCRIBE

LEA DX, VALOR_8

CALL ESCRIBE

LEA DX, VALOR_9

CALL ESCRIBE

LEA DX, VALOR_10

CALL ESCRIBE

LEA DX, VALOR_11

CALL ESCRIBE

LEA DX, VALOR_12

CALL ESCRIBE

LEA DX, VALOR_13

CALL ESCRIBE

LEA DX, VALOR_14

CALL ESCRIBE

LEA DX, VALOR_15

CALL ESCRIBE

LEA DX, VALOR_16

CALL ESCRIBE

LEA DX, VALOR_17

CALL ESCRIBE

LEA DX, VALOR_18

CALL ESCRIBE

LEA DX, VALOR_19

CALL ESCRIBE

LEA DX, VALOR_20

CALL ESCRIBE

CALL SALIR

pe16_dhe ENDP

ESCRIBE PROC

MOV AH,9

INT 21H

RET

ESCRIBE ENDP

SALIR PROC NEAR

MOV AX, FIN

INT DOS

RET

SALIR ENDP

CODIGO ENDS

END pe16_dhe

Programa 11

; PROGRAMA : Convierte un conjunto de caracteres ASCII a Binario                                                                    

; Realizado originalmente por : Prof. Juan Ju?rez Fuentes                                                        

; COMPILADOR EN EL QUE SE EJECUTO: TASM 3.0                                                            

; Realizado por Alejandro Vega Salas                                                                                      

; FECHA : Abril 2016

CR EQU 13

LF EQU 10

IMPRIMIR EQU 9

FIN EQU 4C00H

DOS EQU 21H

TAB EQU 09H

DATOS SEGMENT

ASCII DB 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'

ESPACIO DB CR,LF,"$"

BINARIO DB 64 DUP (?), "$"

MENSAJE1 DB CR,LF,TAB,"ANTES DE LA CONVERSION: ", "$"

MENSAJE2 DB CR,LF,TAB,"DESPUES DE LA CONVERSION: ", "$"

DATOS ENDS

PILA SEGMENT STACK 'STACK'

DW 128 DUP('P')

PILA ENDS

CODIGO SEGMENT

pe17_cbi PROC FAR

ASSUME CS:CODIGO, SS:PILA, DS:DATOS

MOV AX, DATOS

MOV DS, AX

LEA DX, MENSAJE1

CALL ESCRIBE

LEA DX, ESPACIO

CALL ESCRIBE

LEA DX, ASCII

CALL ESCRIBE

LEA DX, ESPACIO

CALL ESCRIBE

LEA DX, BINARIO

CALL ESCRIBE

LEA DX, ESPACIO

CALL ESCRIBE

LEA SI, ASCII

LEA DI, BINARIO

CALL ASCII2BIN

LEA DX, MENSAJE2

CALL ESCRIBE

LEA DX, ESPACIO

CALL ESCRIBE

LEA DX, ASCII

CALL ESCRIBE

LEA DX, ESPACIO

CALL ESCRIBE

LEA DX, BINARIO

CALL ESCRIBE

LEA DX, ESPACIO

CALL ESCRIBE

CALL SALIR

pe17_cbi ENDP

ASCII2BIN PROC NEAR

XOR AX, AX

MOV CX, 8

ASCII1:

MOV AL, [SI]

PUSH CX

MOV CX, 8

LOOP_SHIFT:

SHL AL, 1

JC BIN_UNO

MOV [DI], BYTE PTR '0'

JMP CICLO_SHIFT

BIN_UNO:

MOV [DI], BYTE PTR '1'

CICLO_SHIFT:

INC DI

LOOP LOOP_SHIFT

POP CX

INC SI

LOOP ASCII1

RET

ASCII2BIN ENDP

ESCRIBE PROC

MOV AH,IMPRIMIR

INT DOS

RET

ESCRIBE ENDP

SALIR PROC NEAR

MOV AX, FIN

INT DOS

SALIR ENDP

CODIGO ENDS

END pe17_cbi

Programa 12

; PROGRAMA : Programa que imprime números en Hexadecimal                                                                    

; Realizado originalmente por : Prof. Juan Ju?rez Fuentes                                                        

; COMPILADOR EN EL QUE SE EJECUTO: TASM 3.0                                                            

; Realizado por Alejandro Vega Salas                                                                                      

; FECHA : Abril 2016

CR EQU 13

LF EQU 10

IMPRIMIR EQU 9

FIN EQU 4C00H

DOS EQU 21H

TAB EQU 09H

DATOS SEGMENT

ENCABEZADO DB 13,10,13,10,TAB,TAB,"====================================================="

DB 13,10,13,TAB,TAB," PROGRAMA QUE IMPRIME NUMEROS EN HEXADECIMAL"

DB 13,10,13,TAB,TAB,"=====================================================",13,10,13,10,"$"

DATOS ENDS

PILA SEGMENT STACK 'STACK'

DB 64 DUP('0')

PILA ENDS

CODIGO SEGMENT

pe19_hex PROC NEAR

ASSUME CS:CODIGO, SS:PILA, DS:DATOS

ORG 100H

MOV AX,DATOS

MOV DS,AX

LEA DX, ENCABEZADO

CALL ESCRIBE

MOV CX, 200H

XOR DX, DX

CICLO:

CALL ESCRIBE_HEX

CALL ESCRIBE_CRLF

INC DX

LOOP CICLO

CALL SALIR

pe19_hex ENDP

ESCRIBE_HEX PROC NEAR

PUSH AX

PUSH CX

PUSH DX

MOV CX,4

OTRO_DIGITO:

PUSH CX

MOV CL,4

ROL DX,CL

CALL ESCRIBE_DIGITO_HEX

POP CX

LOOP OTRO_DIGITO

POP DX

POP CX

POP AX

RET

ESCRIBE_HEX ENDP

ESCRIBE_DIGITO_HEX PROC NEAR

PUSH AX

PUSH DX

AND DX,0FH

CMP DL,10

JAE ES_MAYOR_A_10

ADD DL,48

JMP IMPRIME_DIGITO

ES_MAYOR_A_10:

ADD DL,55

IMPRIME_DIGITO:

MOV AH,2

INT 21H

POP DX

POP AX

RET

ESCRIBE_DIGITO_HEX ENDP

ESCRIBE_CRLF PROC NEAR

PUSH AX

PUSH DX

MOV AH,2

MOV DL,13

INT 21H

MOV DL,10

INT 21H

POP DX

POP AX

RET

ESCRIBE_CRLF ENDP

ESCRIBE PROC

MOV AH,9

INT 21H

RET

ESCRIBE ENDP

SALIR PROC NEAR

MOV AX,FIN

INT DOS

RET

SALIR ENDP

CODIGO ENDS

END pe19_hex

Programa 13

; PROGRAMA :COMVIERTE UN NUMERO ASCII A BINARIO POR

; METODO D ELAS POTENCIAS. (CANTIDAD COMO CONSTANTE)                                                              

; Realizado originalmente por : Prof. Juan Ju?rez Fuentes                                                        

; COMPILADOR EN EL QUE SE EJECUTO: TASM 3.0                                                            

; Realizado por Alejandro Vega Salas                                                                                      

; FECHA : Abril 2016

CR EQU 13

LF EQU 10

IMPRIMIR EQU 9

FIN EQU 4C00H

DOS EQU 21H

TAB EQU 09H

BELL EQU 07H

DATOS SEGMENT

ENCABEZADO DB 13,10,13,10,TAB,TAB,"====================================================="

DB 13,10,13,TAB,TAB," PROGRAMA QUE CONVIERTE UN NUMERO ASCII A BINARIO"

DB 13,10,13,TAB,TAB,"=====================================================",13,10,"$"

VALOR_ASCII DB '33', "$"

VALOR_BINARIO DW 0, "$"

LONGITUD_ASCII DW 2, "$"

POTENCIA_10 DW 00000001B, "$"

DATOS ENDS

PILA SEGMENT STACK

DB 64 DUP('0')

PILA ENDS

CODIGO SEGMENT

pe23_asb PROC NEAR

ASSUME CS:CODIGO,DS:DATOS,SS:PILA

MOV AX,DATOS

MOV DS,AX

LEA DX, VALOR_ASCII

CALL ESCRIBE

MOV BX, 00001010B

MOV CX, LONGITUD_ASCII

LEA SI, VALOR_ASCII+1

ETIQUETA_1:

MOV AL, [SI]

AND AX, 000FH

MUL POTENCIA_10

ADD VALOR_BINARIO, AX

MOV AX, POTENCIA_10

MUL BX

MOV POTENCIA_10, AX

DEC SI

LOOP ETIQUETA_1

LEA DX, ENCABEZADO

CALL ESCRIBE

LEA DX, VALOR_BINARIO

CALL ESCRIBE

CALL SALIR

pe23_asb ENDP

ESCRIBE PROC

MOV AH,9

INT 21H

RET

ESCRIBE ENDP

SALIR PROC NEAR

MOV AX, FIN

INT DOS

RET

SALIR ENDP

CODIGO ENDS

END pe23_asb

Programa 14

; PROGRAMA : COMVIERTE UN NUMERO ASCII A BINARIO Y LA CANTIDAD SE CAPTURA.

; Realizado originalmente por : Prof. Juan Ju?rez Fuentes                                                        

; COMPILADOR EN EL QUE SE EJECUTO: TASM 3.0                                                            

; Realizado por Alejandro Vega Salas                                                                                      

; FECHA : Abril 2016

CR EQU 13

LF EQU 10

IMPRIMIR EQU 9

FIN EQU 4C00H

DOS EQU 21H

TAB EQU 09H

BELL EQU 07H

TECLADO EQU 8

DATOS SEGMENT

NUMERO_BINARIO DW 0,"$"

NUMERO_ASCII DB 6,0,6 DUP (?),"$"

M_ENCABEZADO DB 13,10,13,10,TAB,"============================================================"

DB 13,10,13,TAB,"PROGRAMA QUE CONVIERTE UN NUMERO ASCII (CAPTURADO) A BINARIO"

DB 13,10,13,TAB,"============================================================",13,10,"$"

M_ESPACIO DB 13,10,13,10,13,10,13,10,13,10,13,10,"$"

M_ASCII_ASCII DB 13,10,13,10,"NUMERO ASCII IMPRESO NORMALMENTE COMO LO HACE UNA PC (EN ASCII)",13,10,"$"

M_BINARIO_ASCII DB 13,10,13,10,"NUMERO BINARIO (YA CONVERTIDO), ",13,10,"IMPRESO NORMALMENTE COMO LO HACE UNA PC (EN ASCII): ","$"

Potencia DW 001H, 000AH, 0064H, 03E8H, 2710H, "$"

DATOS ENDS

PILA SEGMENT STACK 'STACK'

DW 128 DUP('P')

PILA ENDS

CODIGO SEGMENT

pe24_as2 PROC NEAR

ASSUME CS:CODIGO, SS:PILA, DS:DATOS

MOV AX, DATOS

MOV DS, AX

MOV AH, 0AH

MOV DX, Offset NUMERO_ASCII

INT 21h

MOV DI, Offset NUMERO_ASCII + 1

MOV CX, [DI]

MOV SI, Offset NUMERO_ASCII + 2

pe24_as2.asm 2 / 2

December 13, 2012 Crimson Editor

XOR CH, CH

MOV DI, Offset POTENCIA

DEC SI

ADD SI, CX

XOR BX, BX

STD

CICLO:

LODSB

SUB AL, 30h

CBW

MOV DX, [DI]

MUL DX

ADD DI, 2

ADD BX, AX

LOOP CICLO

MOV NUMERO_BINARIO,BX

LEA DX, M_ENCABEZADO

CALL ESCRIBE

LEA DX, M_ASCII_ASCII

CALL ESCRIBE

LEA DX, NUMERO_ASCII - 1

CALL ESCRIBE

LEA DX, M_BINARIO_ASCII

CALL ESCRIBE

LEA DX, NUMERO_BINARIO

CALL ESCRIBE

LEA DX, M_ESPACIO

CALL ESCRIBE

CALL SALIR

pe24_as2 ENDP

ESCRIBE PROC

MOV AH,IMPRIMIR

INT DOS

RET

ESCRIBE ENDP

SALIR PROC NEAR

MOV AX, FIN

INT DOS

SALIR ENDP

CODIGO ENDS

END pe24_as2

Programa 15

; PROGRAMA : COMVIERTE UN NUMERO ASCII A BINARIO Y LA CANTIDAD SE CAPTURA.

; Realizado originalmente por : Prof. Juan Ju?rez Fuentes                                                        

; COMPILADOR EN EL QUE SE EJECUTO: TASM 3.0                                                            

; Realizado por Alejandro Vega Salas                                                                                      

; FECHA : Abril 2016

CR EQU 13

LF EQU 10

IMPRIMIR EQU 9

FIN EQU 4C00H

DOS EQU 21H

TAB EQU 09H

BELL EQU 07H

DATOS SEGMENT

ENCABEZADO DB 13,10,13,10,TAB,"====================================================="

DB 13,10,13,10,TAB," PROGRAMA QUE CONVIERTE UN NUMERO HEXA A BINARIO"

DB 13,10,13,10,TAB,"====================================================="

DB 13,10,13,10,"$"

VALOR_ASCII DB 4 DUP (' '),13,10,"$"

VALOR_BINARIO DW 007AH,"$"

MENSAJE1 DB CR,LF,TAB, "IMPRIME VALOR BINARIO TOMADO DE HEXADECIMAL, "

DB 13,10,TAB,"PERO SI ES MUY ALTO NO ESCRIBE ASCII CONOCIDO: ", "$"

MENSAJE2 DB CR,LF,TAB, "IMPRIME EL VALOR ASCII YA CONVERTIDO DE HEXA A BINARIO: ", "$"

M_ESPACIO DB 13,10,13,10,13,10,13,10,"$"

DATOS ENDS

PILA SEGMENT STACK

DB 64 DUP('0')

PILA ENDS

CODIGO SEGMENT

pe25_anb PROC NEAR

ASSUME CS:CODIGO,DS:DATOS,SS:PILA

MOV AX,DATOS

MOV DS,AX

MOV CX, 0010

LEA SI, VALOR_ASCII+3

MOV AX, VALOR_BINARIO

ETIQUETA_1:

CMP AX,CX

JB FINALIZA

XOR DX,DX

DIV CX

OR DL,30H

MOV [SI],DL

DEC SI

JMP ETIQUETA_1

FINALIZA:

OR AL,30H

MOV [SI],AL

LEA DX, ENCABEZADO

CALL ESCRIBE

LEA DX, MENSAJE1

CALL ESCRIBE

LEA DX, VALOR_BINARIO

CALL ESCRIBE

LEA DX, M_ESPACIO

CALL ESCRIBE

LEA DX, MENSAJE2

CALL ESCRIBE

LEA DX, VALOR_ASCII

CALL ESCRIBE

CALL SALIR

pe25_anb ENDP

ESCRIBE PROC

MOV AH,9

INT 21H

RET

ESCRIBE ENDP

SALIR PROC NEAR

MOV AX, FIN

INT DOS

RET

SALIR ENDP

CODIGO ENDS

END pe25_anb