miércoles, 3 de abril de 2019

3. Programas en Turbo Assembler (parte 2)


Programa 5: 

Limpia la pantalla.

Código:

FIN_4C00H EQU 4C00H
DOS_21H EQU 21H
BIOS_10H EQU 10H

PILA SEGMENT STACK
    DW 100 DUP('0')
PILA ENDS

CODIGO SEGMENT 
    CLS PROC FAR
    ASSUME CS: CODIGO, SS: PILA
    CALL LIMPIA_PANTALLA
    MOV AX, FIN_4C00H
    INT DOS_21H
    CLS ENDP    

    LIMPIA_PANTALLA PROC NEAR
    MOV AX, 0600H
    MOV BH, 0AH
    MOV CX, 000H
    MOV DX, 484FH
    INT BIOS_10H
    RET
    LIMPIA_PANTALLA ENDP
   
CODIGO ENDS
END CLS 



Resultado:




Programa 6:

Posición del cursor

Código:

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:GRIS', CR, LF,'$'
DATOS ENDS

PILA SEGMENT STACK
    DW 100 DUP('0')
PILA ENDS

CODIGO SEGMENT
    PC 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
    
    PC ENDP
    POSICIONA_CURSOR PROC NEAR
    MOV AH, 02
    MOV DH, 00
    MOV DH, RENGLON
    MOV DL, COLUMNA
    INT BIOS_10H
    RET
    POSICIONA_CURSOR ENDP
CODIGO ENDS
END PC


Resultado:




Programa 7: 

BORRA PANTALLA Y POSICIONA CURSOR.

Código:


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:GRIS '
            DB 'DESPUES DE BORRAR PANTALLA', CR, LF, '$'
        DATOS ENDS
        
                PILA SEGMENT STACK
                    DW 100 DUP('0')
                PILA ENDS
                
                CODIGO SEGMENT
                    CLSP 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
                    
                    CLSP ENDP
                    
                    LIMPIA_PANTALLA PROC NEAR
                    MOV AX, 0600H
                    MOV BH, 0AH
                    MOV CX, 000H
                    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 CLSP

Resultado: 




Programa 8: 

PIDE 3 CADENAS.

Código:


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
                    INICIO PROC FAR
                    ASSUME CS:CODIGO, DS:DATOS, SS:PILA
                    MOV AX, DATOS
                    MOV DS, AX
                    CALL MODO_DE_VIDEO
                    MOV DX, OFFSET MENS1
                    CALL ESCRIBE
                    MOV SI, OFFSET NOMBRE
                    MOV CX, 5
                    CALL PEDIR
                    CALL SALTO_DE_LINEA
                    
                    MOV DX, OFFSET MENS2
                    CALL ESCRIBE
                    MOV SI, OFFSET DIR
                    MOV CX, 8
                    CALL PEDIR
                    CALL SALTO_DE_LINEA
                    
                    MOV DX, OFFSET MENS3
                    CALL ESCRIBE
                    MOV SI, OFFSET TLF
                    MOV CX, 10
                    CALL PEDIR 
                    CALL SALTO_DE_LINEA
                    
                    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
                   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
                   INT BIOS
                   RET
                   MODO_DE_VIDEO ENDP
                   
                   SALIR PROC NEAR
                   MOV AX, FIN
                   INT DOS
                   RET
                   SALIR ENDP
                   
               CODIGO ENDS
               END INICIO


Resultado:



Referencia:

No hay comentarios:

Publicar un comentario

3. Colores Modificado 9

Modificación del programa # 9 " Colores " Por mi compañero Ambrocio isaias Laureano CR EQU 13 ;Declaro retorno de carro LF...