http://www.codeproject.com/Articles/43438/Connect-C-to-MySQL
lunes, 25 de noviembre de 2013
Preguntas
1. ¿Qué es el acceso a dispositivos de almacenamiento?
Dispositivo de almacenamiento de acceso directo
es cualquier tipo de dispositivo de almacenamiento secundario que tiene un
tiempo de acceso bajo en proporción a su capacidad.
2.Como
se hace el acceso a disco usando lenguaje ensamblador:los
datos se registran sobre la superficie del disco en una serie de
circunferencias concentricas llamadas pistas (track).
varias pistas , una por cada cara del disco (generalmente 2) , componen un cluster. cada pista esta divida en porciones iguales
llamadas sectores. un sector es la unidad basica del almacenamiento en un disco. el tamamaño de un sector se mide en bytes y depende
de las caracteristicas del disco.
un ejemplo de las 3 rutinas son : que permiten lectura y escritura absoluta de sectores, asi como la determinacion del espacio libre
disponible en un disco.
varias pistas , una por cada cara del disco (generalmente 2) , componen un cluster. cada pista esta divida en porciones iguales
llamadas sectores. un sector es la unidad basica del almacenamiento en un disco. el tamamaño de un sector se mide en bytes y depende
de las caracteristicas del disco.
un ejemplo de las 3 rutinas son : que permiten lectura y escritura absoluta de sectores, asi como la determinacion del espacio libre
disponible en un disco.
3. mencione y describa las unidades básicas de
adaptador de video
Los mas comunes adaptadores de video son:
El
cotrolador de video: esta unidad “ es el caballo de batalla”,
genera las señales de rastreo del
monitor para el modo seleccionado, texto o grafrico . EL procesador de la computadora
envía instrucciones a los registros del
controlador y lee ahí la informacion de estado.
El
video del BIOS: que actua como una iterfaz con el
adaptador de video, contiene rutinas, como para establecer el cursor y desplegar caracteres.
El
área de despliegue de video en memoria contiene la información que el monitor
va a mostrar.Las interrupciones que manejan el
despliegue en pantalla de forma directa transfieren a esta área sus datos. Las
localidades del adaptador de video depende de los modos de video que se están usando. Para los adaptadores principales, a continuación
están las direcciones del inicio de los segmentos de despliegue de video:
A000:[0]
utiliza para descipcion de fuentes cunado esta en modo de texto y para graficos
de alta resolución para EGA,MCGA y VGA.
B000:[0]Modo
de texto monocromático para MDA, EGA y VGA.
B100:[0]
para HCG
B800:[0]
Modos de texto para CGA,MCGA, EGA y VGA y modos de graficos para CGA,EGA , MCGA
y VGA.
domingo, 24 de noviembre de 2013
Acceso a discos en lenguaje ensamblador
Dispositivo de almacenamiento de acceso directocualquier tipo de dispositivo de almacenamiento secundario que tiene un tiempo de acceso
bajo en proporción a su capacidad.
bajo en proporción a su capacidad.
Como se hace el acceso a disco usando lenguaje ensamblador:los datos se registran sobre la superficie del disco en una serie de circunferencias concentricas llamadas pistas (track).
varias pistas , una por cada cara del disco (generalmente 2) , componen un cluster. cada pista esta divida en porciones iguales
llamadas sectores. un sector es la unidad basica del almacenamiento en un disco. el tamamaño de un sector se mide en bytes y depende
de las caracteristicas del disco.
un ejemplo de las 3 rutinas son : que permiten lectura y escritura absoluta de sectores, asi como la determinacion del espacio libre
disponible en un disco.
un ejemplo podria ser: rutina_absoluteRead: transfiere de un o mas sectores al buffer especificado accesando directamente a los sectores logicos.
en caso de error se enciende el bit de acarreo y Ax con el codigo de error.
martes, 12 de noviembre de 2013
lunes, 11 de noviembre de 2013
ACTIVIDAD #12
En un lenguaje de su conocimiento debe Hacer un programa para imprimir 100 veces un mensaje
1. Sin usar procedimientos
2. Usando llamadas a procedimientos
3. Incluya una funcion de tiempo que imprima el tiempo de inicio y el tiempo al final para medir el tiempo de ejecución
1. Sin usar procedimientos
2. Usando llamadas a procedimientos
3. Incluya una funcion de tiempo que imprima el tiempo de inicio y el tiempo al final para medir el tiempo de ejecución
- Usando llamadas a procedimientos

Sin usar procedimientos
domingo, 10 de noviembre de 2013
Esta directiva resulta muy potente y a
diferencia de la directiva #define se pueden crear macros más extensas, lo que
nos evitará tener que ejecutar reiteradamente fragmentos de código idénticos.
Cuando una macro es invocada, esta es copiada por el ensamblador en el lugar de
la invocación dentro del código fuente. La macro se declara con la directiva
MACRO, y termina con la directiva ENDM.
Creación de una macro denominada activar:
activar macro
CLRF PORTA
BSF PORTB,2
endm
Internas.
Para definir una macro, se utiliza la directiva
MACRO. El formato de esta directiva es :
(nombre_de_macro) MACRO
(lista_parámetros)
Una macro consta de
tres partes esenciales:
a) CABECERA: Contiene el nombre de la macro, la
pseudo-op MACRO y opcionalmente, variables ficticias que serán pasadas desde la
macro.
b) CUERPO: Contiene el código real que será
insertado en cualquier programa que llame al nombre de la macro.
c) FIN: Debe
incluir la sentencia ENDM.
Ejemplo de una macro
sencilla:
INICIO MACRO ; Define macro
MOV AX, DATA ; cuerpo de
MOV DS, AX ; la definición
MOV ES, AX ; de la macro
ENDM
Internas.
Una macro interna
es aquella que se declara y se llaman dentro del mismo programa.
Externas o Bibliotecas de Macros.
Una de
las facilidades que ofrece el uso de las macros es la creación de bibliotecas,
las cuales son grupos de macros que pueden ser incluidas en un programa desde
un archivo diferente.
La creación de estas
bibliotecas es muy sencilla, unicamente tenemos que escribir un archivo con
todas las macros que se necesitarán y guardarlo como archivo de texto.
Para llamar a estas
macros solo es necesario utilizar la instrucción Include NombreDelArchivo, en
la parte de nuestro programa donde escribiriamos normalmente las macros, esto
es, al principio de nuestro programa (antes de la declaración del modelo de
memoria).
Suponiendo que se guardó
el archivo de las macros con el nombre de MACROS.TXT la instrucción Include se
utilizaría de la siguiente forma:
;Inicio del programa
Include MACROS.TXT
.MODEL SMALL
.DATA
;Aqui van los datos
.CODE
Inicio:
;Aqui se inserta el código del programa
.STACK
;Se define la pila
End Inicio
;Termina nuestro programa
Include MACROS.TXT
.MODEL SMALL
.DATA
;Aqui van los datos
.CODE
Inicio:
;Aqui se inserta el código del programa
.STACK
;Se define la pila
End Inicio
;Termina nuestro programa
;
************************************************************
; macros.asm ;
; "MACROS para 16F84" ;
;
************************************************************
callz
macro subbrutina
btfsc
STATUS,Z
call subrutina
endm
callnz macro subrutina
btfss STATUS,Z
call subrutina
endm
movff
macro f2,f1 ;(atención, se destruye W)
movf f1,w
movwf f2
endm
movlf
macro file,literal ;(atención, se destruye W)
movlw literal
movwf file
endm
;Atención, para usar estas macros ya
debe estar activo el banco 1
CONF_PORTA macro
dato
movlw dato
movwf TRISA
endm
CONF_PORTB macro
dato
movlw dato
movwf TRISB
endm
;configurar Option Register:
CONF_OPTION macro dato
movlw dato
movwf OPTION_REG
endm
;configurar el registro de
interrupciones:
CONF_INTCON macro dato
movlw dato
movwf INTCON
endm
SET_BANK_0 macro
BCF STATUS,RP0
endm
SET_BANK_1 macro
BSF STATUS,RP0
endm
;enable y disable all the mascarable interrupts (16F84):
EI macro
bsf INTCON,GIE
endm
DI macro
bcf INTCON,GIE
endm
#define
iEnable EI
#define
iDisable DI
;arrancar el timer:
RESET_TIMER macro
bcf INTCON,T0IF
endm
; inicializar timer antes de hacer
RESET_TIMER para que arranque.
INIT_TIMER macro
dato
movlw dato
movwf TMR0
endm
jmp macro
salto
goto salto
endm
ret macro
return
endm
;Complemento a 1 de W:
comw macro
xorlw 0xff
endm
;Instrucciones de salto tipo Z80
jz
macro _salto ;salta si zero
btfsc STATUS,Z
goto _salto
endm
jnz
macro _salto ;salta si no zero
btfss
STATUS,Z
goto _salto
endm
jc
macro _salto ;salta si carry
btfsc
STATUS,C
goto _salto
endm
jnc
macro _salto ;salta si no carry
btfss
STATUS,C
goto _salto
endm
;
************************************************************
; FIN
;
************************************************************
Un procedimiento es un conjunto de instrucciones
que tienen la finalidad de ejecutar una tarea específica dentro de un programa.
Los procedimientos son muy similares a las macros.
Un procedimiento se declara una sola vez en el
código fuente y cuando el programa se ensambla y ejecuta, el procedimiento se
coloca en memoria para que pueda ser utilizado por el programa.
Las principales ventajas en el uso de
procedimientos son:
- Permiten una codificación más limpia y compacta.
- Código fuente es más pequeño.
- Permiten el ahorro de memoria, esto es porque un mismo
procedimiento puede ser llamado varias veces en el mismo programa y
s&olo requiere memoria una vez.
;
A continuación se describen los pasos necesarios
para la ejecución de un procedimiento:
- 1. Se encuentra la llamada Call.
- 2. El microprocesador almacena en la Pila el contenido del IP.
- 3. Se coloca en el IP el valor del desplazamiento correspondiente
al Procedimiento.
- 4. El microprocesador ejecuta las instrucciones del procedimiento.
- 5. El procedimiento termina cuando se encuentra con la instrucción
Ret.
- 6. Se saca de la Pila el valor original del IP y se continua el
flujo del programa
Los procedimientos no nos permiten el paso de
parámetros, pero podemos hacer uso de"parámetros falsos" empleando
los registros de propósito general antes
de que el procedimeinto sea llamado.
El siguiente procedimiento coloca el cursor en las
coordenadas establecidas en DI y DH:
Procedimientos externos.
Los
procedimientos externos, a diferencia de los internos, se declaran en módulos o
programas separados al programa donde el procedimiento es llamado, en otras
palabras, la llamada al procedimiento se encuentra en un programa y el
procedimiento en otro.
Para poder
utilizar procedimientos externos, es necesario que sean declarados como
públicos en el programa donde se encuentran y que sean llamados como externos
en el programa donde serán usados. Se debe contar con tres directivas de
ensamble: .PUBLIC para declarar los procedimientos como públicos, .EXTERN para
indicar que el procedimiento que se va a usar está fuera del programa y
.INCLUDE para enlazar el programa que contiene los procedimientos con el
programa que los llama.
PUBLIC
PROC1
; Se define como público
PROC1 PROC FAR ; comienzo del procedimiento (lejano)
(instrucciones) ; Instrucciones del procedimiento
RET ;Instrucción para retornar
PROC1 ENDP ; Final del procedimiento
PROC1 PROC FAR ; comienzo del procedimiento (lejano)
(instrucciones) ; Instrucciones del procedimiento
RET ;Instrucción para retornar
PROC1 ENDP ; Final del procedimiento
Para llamar a un procedimiento se utiliza la
instrucción CALL:
CALL
nombre_procedimiento
Por ejemplo
Este programa muestra la forma de utilizar procedimientos y datos externos en
los programas por medio de las directivas de inclusión include y public.
.MODEL TINY
.INCLUDE proc2.ASM ;Incluir el archivo proc2.asm
;el cual contiene la variable de cadena
;Cad1 y los procedimientos externos
;usados en este programa.
.DATA
Cad2 db 'Esta es una cadena de prueba 2...',13,10,'$'
.CODE
INICIO: ;Punto de entrada al programa
Mov Dl,20 ;X=20
Mov Dh,10 ;Y=10
Call GotoXY ;GotoXY 20,10
Lea DX,Cad2 ;DX->Cad2 en Proc3.asm
Call Imprime_Cad ;Imprime Cad2
Lea DX,Cad1 ;DX->Cad1 en Proc2.asm
Call Imprime_Cad ;Imprime Cad1
Mov AX,04C00h ;Fin del programa
Int 21h ;
END INICIO
END
Procedimientos internos.
Los
procedimientos internos son aquellos que se declaran y semismo programa,
también son llamados procedimientos locales. Un
ejemplo de procedimiento interno es el siguiente:
;Procedimiento: GotoXY
;Descripción: Coloca el cursor una posición especifica de la pantalla
;Parámetros: Dl=X,Dh=Y
;**********************************************************************
PROC GotoXY
xor bh,bh
mov ah,02h
int 10h
ret
endp GotoXY
;Descripción: Coloca el cursor una posición especifica de la pantalla
;Parámetros: Dl=X,Dh=Y
;**********************************************************************
PROC GotoXY
xor bh,bh
mov ah,02h
int 10h
ret
endp GotoXY
domingo, 3 de noviembre de 2013
Se pretende realizar un programa en lenguaje ensamblador equivalente al siguiente código en C:
#include <iostream.h>
main()
{
int a[] = {12, 5, 34, 75, 10, 25};int n = 6;
int max, i;
for (max = i = 0; i < n; i++)
if (a[i] > max)
max = a[i];
cout << max << end1;
}
Este programa calcula el máximo de los elementos del array a, almacenádolo en la variable max.
Suscribirse a:
Entradas (Atom)







.bmp)
.bmp)




.bmp)
.bmp)