martes, 17 de abril de 2018

macro del 9 - 1

imprime macro numero  ;Nuestra macro se llama imprimir, nuestro parámetro es numero
  mov ah,02h
  mov dl,numero  ;Indica que mueva al registro DL lo que pasamos como parámetro.
  add dl,30h  ;suma 30h para imprimir el número real.
  int 21h
endm

.model small
.stack 64
.data
  num db 0  ;declaramos nuestra variable.
.code
  mov cx,9
inicio:
  mov num,cl
  imprime num ;Llamamos al macro con el valor de nuestra variable.
loop inicio ;repite ciclo

  mov ah,04ch ;Finaliza el programa.
  int 21h
end




miércoles, 11 de abril de 2018

Programas Con Macro

Programa de macro que imprime el caracter

gotoxy macro fila,col 
    mov ah,02h    ; Se encarga de posicionar el cursor en pantalla
    mov dh,fila   ; Valor de la fila en la parte alta                                                 
    mov dl,col    ; Valor de la columna parte baja
    mov bh,0h
    int 10h       ; Interrupcion para ejecutar los cambios en modo video
endm  ; Finalizacion del macro
      ; Todo el bloque anterior de codigo funciona para posicionar el cursor en una fila y una columna
   
      ; La interrupcion int 10h es utilizada para despliegue en video, acepta el numero de funciones en el AH para el modo de pantalla   
     
pantalla macro letra
    mov ah,02h      ; Posicionamos el caracter
    mov dl,letra
    int 21h         ; Utilizamos esta interrupcion para mostrar el caracter que esta almacenado en el registro AH
endm

;La interrupcion 21h tiene varias funciones, para accesar a cada una de ellas es necesario que en el registro AH se encuentre el numero de funcion que se requiera
;Cuando tenemos el parametro 02H en nuestro registro AH la interrupcion 21h exhibe la salida
;Cuando tenemos el parametro 09H en nuestro registro AH la interrupcion 21h imprime la cadena (video)
;Cuando tenemos el parametro 40H en nuestro registro AH la interrupcion 21h despliega la escritura en dispositivo/archivo         
         
.model small
.data
.code
startup:
    mov ax,@data
    mov ds,ax
    mov ax,0003h
    int 10h
    gotoxy 10,10    ; Aqui se le asigna a nuestra macro el valor de la fila y columna donde se posicionara el cursor
    pantalla 41h 
    mov ah,01h
    int 21h         ; Cierre del programa
    mov ax,4c00h    ; Cierre del programa
    int 21h         ; Cierre del programa
end startup

Posicionar en pantalla
gotoxy macro fila,col
mov ah,02h
mov dh,fila
mov dl,col
mov bh,0h
int 10h
endm



























--------------------------------------------------------------------------------------------------------------------------

Programa que pide ubicacion del caracter

gotoxy macro fila,col 
    mov ah,02h    ; Se encarga de posicionar el cursor en pantalla
    mov dh,fila   ; Valor de la fila en la parte alta                                                 
    mov dl,col    ; Valor de la columna parte baja
    mov bh,0h
    int 10h       ; Interrupcion para ejecutar los cambios en modo video
endm  ; Finalizacion del macro
pantalla macro que
    mov ah,02h      ; Posicionamos el caracter
    mov dl,que
    int 21h         ; Utilizamos esta interrupcion para mostrar el caracter que esta almacenado en el registro AH
endm   

;La interrupcion 21h tiene varias funciones, para accesar a cada una de ellas es necesario que en el registro AH se encuentre el numero de funcion que se requiera


imprime macro eztryng  ;declaracion de macro con parametro eztryng
mov dx,offset eztryng  ;coloca mensajes en dx
mov ah,9               ;complemento para la interrupcion 21h para impresion de txto
int 21h                ;interrupcion DOS
endm                   ;fin de macro


.data
mensaje DB "INGRESE UN CARACTER: ",13,10,"$"
mensaje2 DB "INGRESE X del 0 al 9: ",13,10,"$"
mensaje3 DB "INGRESE Y del 0 al 9: ",13,10,"$"
caracter DB 40
varx DB ?
vary DB ?

vtext db 100 dup('$')


ENDS

.code
startup:
mov ax,@data  ;asignacion de data a ax
mov ds,ax     ;asignacion de datos al del segmento de datos  ds

imprime mensaje ;llama macro imprime con el parametro 'mensaje'
mov si,00h      ;limpia el apuntador SI


 leer:         
 mov ax,0000    ;limpia ax
 mov ah,01h     ;complemento para interrupcion 21h captura
 int 21h        ;interrupcion DOS

 mov caracter[si],al ;guarda el dato capturado en variable caracter
 inc si         ;incrementa si
 cmp al,0dh   
 ja coordenadas ; si esto se cumple  brinca a coordenadas
 jb leer        ;sino se  cumple vuelve reinicia el ciclo  leer

coordenadas:    ;Se declara el  metodo coordenadas
mov dx,offset caracter ;coloca se coloca el caracter ingresado en dx
mov ah,0ah           
int 21h                ;interrupcion DOS

imprime caracter       ;llama macro imprime con parametro caracter
imprime mensaje2       ;llama macro imprime con parametro mensaje2
mov ah,01h             ;complemento de interrupcion 21h Eco de un caracter
int 21h                ;interrupcion DOS
sub al,30h             ;resta 30h para convertir al valor numerico
mov bl,al              ;mueve al a bl
mov varx,al            ;guarda al en varx (coordenada x)

imprime mensaje3       ;se reinicia de nuevo el lo mismo
mov ah,01h
int 21h
sub al,30h
mov bl,al
mov vary,al         
mov ax,0003h           ;complemento interrupcion 10h modo texto
int 10h                ;interupccion de video

gotoxy vary,varx       ;llama macro gotxy con los parametros vary y varx como columna y fila
pantalla caracter[0]   ;llama macro pantalla con el caracter capturado como parametro

mov ah,01h             ;complemento de interrupcion 21h
int 21h                ;interrupcion DOS
mov ax,4c00h           ;complemento interrupcion 21h fin de programa
int 21h                ;interrupcion DOS
end startup            ;fin de funcion principal





Unidad 4: Operación y Mantenibilidad

Unidad 4: Operación y Mantenibilidad 4.1 Bitácoras de Trabajo del DBMS Una bitácora es una herramienta (archivos o registros) que pe...