domingo, 18 de marzo de 2018
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
Í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).
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
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.
sábado, 10 de marzo de 2018
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
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
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
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
.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
.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
.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
Suscribirse a:
Entradas (Atom)
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...
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgI6uq3863OGq4hz1j9vn-yLnokEKWkQVRTfdc1Hpcb0sWZKDBLPPcuipQUyLMi0u9b3WficKXIvHqKTlruxiORmLfZI1m7ya3ZvoLd5YM7RQ6VGPITS6RcwsRyVCVnVZLD_27PAXZga7i/s400/bita56.jpg.png)
-
Programa del video suma: Programa1 en EMU8086 y Turboassembler:
-
Características Es muy liviano, cerca de 2 MB para el motor de la base y el driver JDBC embebido. Está basado en Java, JDBC y estándares...
-
EN Emu8086: .model small .stack 64 .data mensaje db 0AH, 0dh," Letrero cinco veces " , "$" .code inicio: mov cx,...