domingo, 18 de marzo de 2018

Programa de Emu8086 y TurboAsembler de letra de colores







Análisis de tema visto en clase

Los temas visto en clase fue a un archivo que la maestra nos proporciono sobre como esta compuesto las SGDB ademas su estructura fisica y sus procesos



En general, un sistema de bases de datos relacional tienen tres capas:

La capa de aplicación es la parte más externa del sistema y es la interface a través de la que los usuarios se comunican con el sistema.


La funcionalidad central del sistema está en la capa lógica. Es donde se realizan todas las operaciones del sistema. 


Finalmente, la capa física es donde están almacenados los datos.


- Arquitectura física de una base de datos en SQL Server:

La unidad fundamental del almacenamiento de datos en SQL Server es la página. El espacio en disco asignado a un archivo de datos (.mdf o .ndf) de una base de datos se divide lógicamente en páginas numeradas de forma contigua de 0 a n. Las operaciones de E/S de disco se realizan en el nivel de página. Es decir, SQL Server lee o escribe páginas de datos enteras.


·                     Estructuras lógicas de la base de datos:

En todas las bases de datos relacionales disponemos de estas estructuras lógicas para organizar la información:

Tablas: Compuestas de filas y columnas en las que se almacenan los datos relevantes de cada base de datos. 

Restricciones: Se definen al crear las tablas, pero se almacenan aparte. Están disponibles en el diccionario de datos y marcan las reglas que han de cumplir los datos para que se consideren válidos. 

Índices: Se trata de una lista ordenada de claves que permite acceder a los valores de una o más columnas de una tabla de forma veloz. 

Vistas: Son consultas almacenadas que nos permiten mostrar de forma personalizada los datos de una o varias tablas. 

Procedimientos y funciones: Código del lenguaje procedimental de la base de datos utilizado para ejecutar acciones sobre las tablas (incluidos los triggers). 




·                     Estructuras físicas de la base de datos:

En una base de datos almacenamos información relevante para nuestro negocio u organización,a base de datos está conformada por dos tipos de archivos:


·                     Archivos de datos: Contiene los datos de la base de datos internamente, está compuesto por páginas enumeradas secuencialmente que representa la unidad mínima de almacenamiento. Cada página tiene un tamaño de 8kb de información. 

                Existen diferentes tipos de páginas, a tener en cuenta:

·          Páginas de datos:Es el tipo principal de páginas y son las que almacenan los registros de datos.

·          Páginas de espacio libre (PFS Page Free Space): Almacenan información sobre la ubicación y el tamaño del espacio libre.
·          Paginas GAM and SGAM: Utilizadas para ubicar extensiones.
·          Páginas de Mapa de Ubicaciones de índices (IAM – Index Allocation Map): Contiene información sobre el almacenamiento de páginas de una tabla o índice en particular.
·          Páginas Índices: Utilizada para almacenar registros de índices.

·                     ·  Archivo de Registro de Transacciones: El propósito principal del registro de transacciones es la recuperación de datos a un momento en el tiempo o complementar una restauración de copia de respaldo completa (full backup).          Este archivo no puede ser leído por herramientas de usuario de SQL aunque existen herramientas de terceros que leen este archivo para recuperar los cambios efectuados.
·         Data File: Los datafiles son los archivos físicos en los que se almacenan los objetos que forman parte de un tablespace.




2.1.3 Requerimientos para instalación de la base de datos:

Antes de instalar cualquier SGBD es necesario conocer los requerimientos de hardware y software, el posible software a desinstalar previamente, verificar el registro de Windows y el entorno del sistema, así como otras características de configuración especializadas como pueden ser la reconfiguración de los servicios TCP/IP.

                   



2.1.4 Instalación del software de BD en modo transaccional:

Debido al constante crecimiento de datos que generan las empresas hoy en día, se ha vuelto muy necesaria la búsqueda de nuevas plataformas para almacenar y analizar la información, ambientes que consuman menos recursos, que sean más escalables y que provean una alta disponibilidad.

Una base de datos en modo transaccional significa que la BD será capaz de que las operaciones de inserción y actualización se hagan dentro de una transacción, es un componente que procesa información descomponiéndose de forma unitaria en operaciones indivisibles, llamadas transacciones

Una transacción es un conjunto de líneas de un programa que llevan insert o update o delete. 

Se usan los siguientes métodos:
·                      Begin TRans para iniciar la transacción
·                      CommitTrans para efectuar los cambios con éxito
·                      RollbackTrans para deshacer los cambios

2.1.5 Variables de Ambiente y archivos importantes para instalación:

Variable: Es un espacio en memoria al cual se le da un nombre Hay variables específicas que se crean al momento de entrar al sistema, pero también hay variables que pueden ser definidas por el usuario. 
Variables de Ambiente: Se usan para personalizar el entorno en el que se ejecutan los programas y para ejecutar en forma correcta los comandos del shell.
A continuación se comentan las opciones más utilizadas de la sección mysqld (afectan al funcionamiento del servidor MySQL), se almacenan en el archivo my.cnf (o my.ini)
basedir = ruta: Ruta a la raíz MySQL
console: Muestra los errores por consola independientemente de lo que se configure para log_error.
datadir = ruta: Ruta al directorio de datos.
default-table-type = tipo: Tipo de la Tabla InnoDB o, MyISAM.

2.1.6 Procedimiento general de instalación de un DBMS:

MySQL Enterprise Edition:

MySQL Enterprise Edition incluye el conjunto más completo de características avanzadas y herramientas de gestión para alcanzar los más altos niveles de escalabilidad, seguridad, fiabilidad y tiempo de actividad. Reduce el riesgo, costo y complejidad en el desarrollo, implementación y administración de aplicaciones críticas de negocio MySQL.

El MySQL Enterprise incluye las siguientes opciones:

Backup: Realiza copias de seguridad de bases de datos MySQL en línea, de los subconjuntos de tablas InnoDB, y la recuperación mediante puntos de restauración.


Alta Disponibilidad: Es proporcionada con soluciones certificadas que incluyen replicación de MySQL.

Escalabilidad: Permite alcanzar el rendimiento sostenido y la escalabilidad de cada vez mayor de usuarios, consulta, y las cargas de datos


MySQL Enterprise Security: Proporciona listas para utilizar los módulos de autenticación externos para integrar fácilmente las infraestructuras existentes de seguridad, incluyendo Pluggable Authentication Modules y el directorio activo de Windows


MySQL Enterprise Monitor:Supervisa continuamente su base de datos y de forma proactiva le asesora sobre cómo implementar las mejores prácticas de MySQL, incluyendo consejos y alertas de seguridad


MySQL Query Analyzer: Mejora el rendimiento de las aplicaciones mediante el control de rendimiento de las consultas y precisa localización de código SQL que está causando una desaceleración.


MySQL Workbench: Cuenta con ofertas de modelado de datos, desarrollo de SQL y herramientas de administración integral para la administración del servidor de configuración del usuario, y mucho más.





2.1.7 Procedimiento para Configuración de un DBMS:
Para configurar nuestro DBMS podemos acceder a las siguientes pantallas, para Oracle o MySQL.

El esquema de una base de datos (en inglés, Database Schema) describe la estructura de una Base de datos, en un lenguaje formal soportado por un Sistema administrador de Base de datos (DBMS). En una Base de datos Relacional, el Esquema define sus tablas, sus campos en cada tabla y las relaciones entre cada campo y cada tabla.



2.1.8 Comandos Generales de Alta y Baja del DBMS:

Una tabla es un sistema de elementos de datos (atributo - valores) que se organizan que usando un modelo vertical - columnas (que son identificados por su nombre)- y horizontal filas. Una tabla tiene un número específico de columnas, pero puede tener cualquier número de filas.

MySQL

MySQL soporta varios motores de almacenamiento que tratan con distintos tipos de tabla. Los motores de almacenamiento de MySQL incluyen algunos que tratan con tablas transaccionales y otros que no lo hacen:

MyISAM: trata tablas no transaccionales. Proporciona almacenamiento y recuperación de datos rápida, así como posibilidad de búsquedas fulltext. MyISAM se soporta en todas las configuraciones MySQL.

Los motores de almacenamiento InnoDB y BDB proporcionan tablas transaccionales. BDB se incluye en la distribución binaria MySQL-Max en aquellos sistemas operativos que la soportan. InnoDB también se incluye por defecto en todas las distribuciones binarias de MySQL 5.0.

Estructura de memoria ,archivo y procesos -Temas vistos en clases y analizados


Arquitectura : 


ESTRUCTURA DE LA MEMORIA:




Es la estructura de memoria compartida que contienen datos e información de control para una
instancia de una base de datos, cada instancia tiene sus propias estructuras de memoria y se
localiza en la memoria virtual del computador. Las estructuras de memoria se denominan System
Global Area (SGA) la cual es un área compartida por todos los usuarios y se divide en tres partes:

3.4. Fondo común compartido (Shared pool): Se utiliza durante el procesamiento de comandos.
Tiene dos zonas:
– Library Cache: almacena información relacionada a la instrucción de SQL:
– – Data Dictionary Cache (Dictionary Cache o Row Cache): almacena la información de uso
más frecuente sobre el diccionario de datos. Esta información incluye definición de
columnas, usuarios, passwords y privilegios. Esta información es usada durante tiempo de
compilación.

3.5. Arear de Memoria rápida (Dtabase buffer cache): mantiene los bloques de datos leídos
directamente de los archivos de datos. Cuando se procesa una consulta, el servidor busca los
bloques de datos requeridos en esta estructura. Si no se encuentra, el proceso servidor lee el
bloque de la memoria secundaria y coloca una copia. Está organizada en dos listas:
– Lista de sucios: bloques que han sufrido modificaciones y no han sido escritos en disco.
– Lista de menos recientemente usados: mantiene los bloques libres, los bloques a los que se
está accediendo actualmente y los bloques sucios que aún no han sido remitidos a la lista
de sucios.

3.6. Área de registro de rehacer (Redo log buffer): es un buffer circular que mantiene todos los
cambios que han sido realizados sobre la base de datos por operaciones de insert, update,
delete, create, alter y drop. Las entradas de este buffer contienen toda la información
necesaria para reconstruir los cambios realizados a la base de datos por medio de cualquier
instrucción (el bloque que ha sido cambiado, la posición de cambio y el nuevo valor). El uso es
estrictamente secuencial.

 ARCHIVOS:

Los archivos que maneja Oracle, se clasifican en cuatro grupos:




2.1 Los Archivos de Datos (Datafiles): sirve para el almacenamiento físico de las tablas, índices y
procedimientos, estos son los únicos que contienen los datos de los usuarios de la base de datos.

2.2 Archivos de Control (control files): tiene la descripción física y dirección de los archivos para el
arranque correcto de la base de datos

2.3 Archivos de Rehacer (redo log files): tienen los cambios que se han hecho a la base de datos
para recuperar fallas o para manejar transacciones. Debe esta conformado por dos grupos como
mínimo y cada grupo debe esta en discos separados. El principal propósito de estos archivos es de
servir de respaldo de los datos en la memoria RAM.

2.4 Archivos fuera de línea (archived files): archivos opcionales donde se pueda guardar
información vieja de los archivos de rehacer, convenientes para respaldos de base de datos




LOS PROCESOS:


Los procesos son programas que se ejecutan para permitior el acceso a los datos, se cargan en
memoria y son transportados para los usuarios. Se clasifican en tres grupos:




5.1. Procesos de Base o de Soporte: se encargan de traer datos desde y hacia la estructura de
memoria (SGA), cada uno tiene su propia área de memoria; los procesos de este tipo son los
siguientes:

- Database Writer (DBWR): se encarga de copiar los bloques desde el buffer cache hasta la
memoria secundaria.

- Log Writer (LGWR): escribe las entradas desde el Log Buffer a disco. La escritura de
bloques del Redo Log Buffer a disco ocurre secuencialmente y bajo las siguientes reglas:
– Cuando el Redo Log está lleno en un 33% o más.
– Cuando oucrre un time-out (cada tres segundos).

– Antes de que el DBWR escriba algún bloque modificado a disco.
– Cuando una transacción se compromete.

- Checkpoint (CKPT): encargado de notificar al DBWR para que se escriban en los archivos
de datos todos los bloques contenidos en la lista de sucios. Este proceso es invocado en
intervalos de tiempo determinados. El CKPT es opcional, si no existe las funciones son
realizadas por el LGWR.

- System Monitor (SMON): Encargado de realizar un proceso de recuperación rápida cada
vez que una instancia es inicializada. Esta labor incluye limpieza de las estructuras de datos
de soporte a la ejecución de consultas y llevar a la base de datos a un estado estable
previo a la ejecución de aquellas transacciones que no hayan culminado exitosamente.
También se encarga de desfragmentar el espacio físico de almacenamiento uniendo
bloques de datos libres en la memoria secundaria.

- Process Monitor (PMON): lleva la pista de los procesos de la base de datos y efectúa
labores de limpieza (liberar recursos y bloques ocupados en los cache’s) si alguno de ellos
termina prematuramente.

- Archiver (ARCH): copia las bitácoras activas cuando éstas se encuentran llenas. Este
proceso se encuentra activo sólo cuando el DBMS se encuentra operando en modo
ARCHIVELOG, el único modo que admite recuperación de los datos frente a fallas del
sistema.

- Recoverer (RECO): resuelve transacciones distribuidas que se encuentran pendientes
debido a la red o a fallas ocurridas en la base de datos distribuida.

- Dispatcher (Dnnn): se crea por cada sesión de trabajo activa; es responsable de enrutar
los requerimientos desde el proceso usuario, al cual se encuentra asociado, hacia los
procesos servidores y retornar la respuesta al proceso de usuario adecuado. Estos
procesos se crean solo cuando se ejecuta con la opción multithreading.

5.2. Procesos de Usuario: se encarga de ejecutar el código de aplicación del usuario y manejar el
perfil del usuario con sus variables de ambiente. Estos procesos no se pueden comunicar

directamente con la base de datos, por lo que la comunicación la establecen mediante
procesos de servidores.

5.3. Procesos de Servidores: estos procesos ejecutan las órdenes SQL de los usuarios y llevan los
datos del buffer caché para que los procesos de usuario puedan tener acceso a los datos.





miércoles, 7 de marzo de 2018

Base de datos de Banco Con Commit

create database Bancos;
use Bancos;

create table sucursal(id_cuenta int primary key, id_usuarios_fk int, saldo int );
create table clientes (id_cliente int primary key, nombre_clie varchar(50),telefono varchar(15));

alter table sucursal add foreign key( id_usuarios_fk)
references clientes (id_cliente)
on update cascade on delete cascade;

insert into clientes values(1,"Armando","12345"),(2,"Pedro","12356"),(3,"Luz","14725");
insert into sucursal values(1,4,6000),(2,5,7000),(3,6,3000);

begin;
update sucursal set saldo = saldo + 2000 where id_cuenta=1;
commit;

select *from sucursal;
select * from clientes;



https://www.youtube.com/watch?v=Tgx1OpXcbzA&feature=youtu.be

Aportacion de Eduardo Aquino Loop

 mov ah, 09h ;imprimimos el mensaje 2 parte 1

 mov dx,offset mensaje2  ;imprimimos el mensaje 2 parte 2

 int 21h  ;imprimimos el mensaje 2 parte 3

 mov ah,01     ;pausa y espera a que el usuario presione una tecla

 int 21h           ;interrupcion para capturar

 sub al,30h     ;lo que el usuario presiono se guarda en al y se le resta 30h para convertirlo a un numero

 mov n2,al     ;Guardamos lo que el usuario preciono el n2


 mov cl,al ; movemos lo que esta en al a cl para decirle al ciclo cuantas vueltas va a dar

 sub cl,1 ;le restamos 1 para que no de una vuelta de mas


call ciclo ;llamada a ciclo


ciclo:  ;Funcion

 call ciclo1 ;llamada el procediemto 1


ciclo1 proc near : ;procedimiento ciclo

  mov al,n1 ;potencia parte 1

  mov bh,n3 ;potencia parte 2

  mul bh ;potencia parte 3


  mov n1,al


  loop ciclo1 ;loop a la funcion ciclo


  mov ax,4c00h ;fin parte 1

  int 21h; fin parte 2



fin: ;funcion fin

 mov ax,4c00h      ;funcion que termina el programa

 int 21h

end inicio



















En TurboAsembler

datos segment
    mensaje db 10,13"Dame un numero",10,13,"$"
    mensaje2 db 10,13 ,"Dame un la potencia",10,13,"$"
    n1 db 0
    n2 db 0
    n3 db 0
datos ends
   
codigo segment
    assume ds:datos,cs:codigo

inicio:     ;función inicio
 mov ax,datos ;Movemos el segmento data a ax
 mov ds,ax ; Movemos lo que esta en ax a ds
 mov dx,offset mensaje ;Imprimimos el primer mensaje parte 1
 mov ah, 09h ;Imprimimos el primer mensaje parte 2
 int 21h ;Imprimimos el primer mensaje parte 3

 mov ah,01     ;pausa y espera a que el usuario presione una tecla
 int 21h        ;interrupción para capturar
 sub al,30h   ;lo que el usuario presiono se guarda en al y se le resta 30h para convertirlo a un numero
 mov n1,al ;Movemos lo que esta en al a la variable n1
 mov n3,al  ;Movemos lo que esta en al a la variable n3

 mov ah, 09h ;imprimimos el mensaje 2 parte 1
 mov dx,offset mensaje2  ;imprimimos el mensaje 2 parte 2
 int 21h  ;imprimimos el mensaje 2 parte 3
 mov ah,01     ;pausa y espera a que el usuario presione una tecla
 int 21h           ;interrupcion para capturar
 sub al,30h     ;lo que el usuario presiono se guarda en al y se le resta 30h para convertirlo a un numero
 mov n2,al     ;Guardamos lo que el usuario preciono el n2

 mov cl,al ; movemos lo que esta en al a cl para decirle al ciclo cuantas vueltas va a dar
 sub cl,1 ;le restamos 1 para que no de una vuelta de mas

call ciclo ;llamada a ciclo

ciclo:  ;Funcion
 call ciclo1 ;llamada el procediemto 1

ciclo1 proc near ;procedimiento ciclo
  mov al,n1 ;potencia parte 1
  mov bh,n3 ;potencia parte 2
  mul bh ;potencia parte 3

  mov n1,al
  loop ciclo1 ;loop a la funcion ciclo
  mov ax,4c00h ;fin parte 1
  int 21h; fin parte 2
  ciclo1 endp
  
fin: ;funcion fin
 mov ax,4c00h      ;funcion que termina el programa
 int 21h
 
codigo ends
end inicio

lunes, 5 de marzo de 2018

Aportaciones De Armando Morreal en loop

En Emu8086:

org 100h

.data
    mensaje db "Programa que utiliza loop e imprime del 0 al 9",13,10,"$"

.code   
inicio:
    mov ax,@data
    mov ds, ax
    mov dx,offset mensaje
    mov ah,09h
    int 21h

MOV DL, "0";se transfiere la letra 0 al registro de datos en el byte bajo
MOV CX, 10;se transfiere 10 al registro contador
PRINT_LOOP:;va a imprimir hasta acabar las 26 interaciones
MOV AH, 02;se transifiere 02 al acumulador de byte alto
INT 21h; se realiza la interrupcion del dato ascii leido desde el teclado
INC DL;siguiente caracter numerico
LOOP PRINT_LOOP;continua hasta acabar las 10 vueltas

ret



En TurboAsembler:



.model small
.stack 64

datos segment
.model small
.stack 64

datos segment
    mensaje db "Programa que utiliza loop e imprime del 0 al 9",13,10,"$"
datos ends

codigo segment
  assume cs:codigo, ds:datos
inicio:
    mov ax,datos
    mov ds, ax
    mov dx,offset mensaje
    mov ah,09h
    int 21h

MOV DL, "0";se transfiere la letra 0 al registro de datos en el byte bajo
MOV CX, 10;se transfiere 10 al registro contador
PRINT_LOOP:;va a imprimir hasta acabar las 26 interaciones
       MOV AH, 02;se transifiere 02 al acumulador de byte alto
       INT 21h; se realiza la interrupcion del dato ascii leido desde el teclado
       INC DL;siguiente caracter numerico
LOOP PRINT_LOOP;continua hasta acabar las 10 vueltas 
codigo ends

end inicio



Aportacion de Nuetra Maestra :D en loops

EN Emu8086 :

.model small
.stack 64

.data         
                ;   Mensaje1 db "instrucciones de repeticion

.code 


inicio:

   
    mov al,'>'  ;   Caracter inicial
    mov cx,10   ;   Numero de veces a repetir el ciclo
leer_car:
   
     mov ah,0EH ;   Funcion para imprimir el caracter AL
     int 10h    ;   Llama al BIOS
     
    ;mov ah, 01     Aqui pide el dato y lo imprime 
     mov ah,01  ;   Pausa y espera a que el usuario precione una tecla
     int 21h    ;   Interrupcion para capturar

     
     cmp al,'S' ;   El caracter leeido la int 16h lo guarda en al
   
loopz leer_car  ;   Toma en cuenta la comparacion del cmp, si se cumple continua

 
                ;   Coloco el fin de la linea para que baje una linea y lo baje
    mov ah,0EH  ;   Funcion del bios para imprimir caracter
    mov al,10
    int 10h
 
    MOV AL,13
    INT 10H
 
 
 
  mov ah,04ch   ;   Al terminar finaliza el programa.
  int 21h
 end inicio



En TurboAsembler:

             ;   Uso del LOOPZ, REPETICION BASADA EN
                ;   Comparacion si es igual a 0

                ;   Interrupcion para leer en el teclado INT16H

                ;   Cuando usamos la int 16H , el parametro a usar es AH = 0
                ;   Y el caracter leido quedara en AL= Caracter leido


.model small
.stack 64

.data          
                ;   Mensaje1 db "instrucciones de repeticion

.code  


inicio:

    
    mov al,'>'  ;   Caracter inicial
    mov cx,10   ;   Numero de veces a repetir el ciclo
leer_car:
    
     mov ah,0EH ;   Funcion para imprimir el caracter AL
     int 10h    ;   Llama al BIOS
      
    ;mov ah, 01     Aqui pide el dato y lo imprime  
     mov ah,01  ;   Pausa y espera a que el usuario precione una tecla
     int 21h    ;   Interrupcion para capturar

       
     cmp al,'S' ;   El caracter leeido la int 16h lo guarda en al
     
loopz leer_car  ;   Toma en cuenta la comparacion del cmp, si se cumple continua

   
                ;   Coloco el fin de la linea para que baje una linea y lo baje
    mov ah,0EH  ;   Funcion del bios para imprimir caracter
    mov al,10
    int 10h 
   
    MOV AL,13
    INT 10H
   
   
   
  mov ah,04ch   ;   Al terminar finaliza el programa.
  int 21h
 end inicio





Aportaciones de David Mendoza con Loop

En Emu8086:

.model small
.stack 64

.data
mensaje db "Ingresa el numero de veces que se repetira el mensaje (1-9)",13,10,'$'
repetir db 13,10,"Repitiendo el ciclo $"

.code
inicio proc far
   
    mov ax, @data
    mov ds, ax
   
    mov ah, 09
    lea dx, mensaje
    int 21h

    mov ah, 01
    int 21h
    sub al, 30h
   
    mov cl, al
   
    ciclo:
        mov ah, 09
        lea dx, repetir
        int 21h
    loop ciclo

    mov ax,4c00h
    int 21h
inicio endp
end





EN TurboAsembler : 


;Turbo Assembler     

.model small
.stack 64       ; Se pone el stack 

datos segment
    mensaje db "Ingresa el numero de veces que se repetira el mensaje (1-9)",13,10,'$'
    repetir db 13,10,"Repitiendo el ciclo $"
datos ends

codigo segment                              
    assume cs:codigo, ds:datos
inicio:
    
    mov ax, datos
    mov ds, ax
    
    mov ah, 09
    lea dx, mensaje
    int 21h

    mov ah, 01  ;   Leer un caracter desde el teclado con la interrupcion 21h
    int 21h
    sub al, 30h ;   Se le resta 30h para convertirlo a digito      
    mov cl, al   
    
    ciclo:
        mov ah, 09
        lea dx, repetir
        int 21h
    loop ciclo 

    mov ax,4c00h
    int 21h                                
codigo ends
end inicio








Programa Letrero 5 Veces - EMU8086 / Turbo Assembler

EN Emu8086:

.model small
.stack 64
.data

mensaje db 0AH, 0dh," Letrero cinco veces " , "$"  

.code  

inicio: 

 mov cx, 0005

ciclo: 

 mov ax, @data
 mov ds, ax
 mov dx, offset mensaje
 mov ah, 09h


int 21h

loop ciclo

 mov ah, 04ch
 int 21h
 end inicio





En TruboAsembler :

.model small
.stack 64
.data

mensaje db 0AH, 0dh," Letrero cinco veces " , "$"  

.code  

inicio: 

 mov cx, 0005

ciclo: 

 mov ax, @data
 mov ds, ax
 mov dx, offset mensaje
 mov ah, 09h


int 21h

loop ciclo

 mov ah, 04ch
 int 21h

 end inicio











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...