sábado, 31 de julio de 2010

Pensando En Java (Thinking In Java), en Español



Hola, buenas noches.
Les traigo este excelente libro: Pensando en Java. Es un muy buen libro, tanto para aquellos que quieren aprender este lenguaje, como para aquellos que quieren expandir sus conocimientos.

Espero que lo disfruten.

 

viernes, 30 de julio de 2010

Etiquetas HTML

Las etiquetas HTML presentes en la vida real...



Hay que ser todo un Geek para hacer algo así....

xD

lunes, 21 de diciembre de 2009

Pilas y Colas De Manera Grafica

A continuación les presento un código, hecho por mí, en el cual intento representar el funcionamiento de las Pilas y Colas estáticas y dinámicas, esperando que sea de ayuda para algunos.

El código esta hecho en Java con NetBeans





miércoles, 6 de mayo de 2009

Ensamblador - Convertir Minusculas a Mayusculas

Buenas noches...

El siguiente programa hace una conversion de minusculas a MAYUSCULAS. Utilizando varibales. Este programa fue conpilado con MASM32 utilizando DOSBox, el cual es un emuldor de MS-DOS.

Codigo:

Title Convertir minusculas a MAYUSCULAS

stacksg segment para STACK 'stack'

stacksg ends

datasg segment
PALABRA DB 64H DUP (?) ;SE DECLARA LA VARIABLE "PALABRA" DE TAMAÑO 100 (64H)
datasg ends

codesg segment
assume cs:codesg, ds:datasg, ss:stacksg
main proc far
prologo:
push ds
xor ax,ax
push ax
mov ax,datasg
mov ds,ax

LEA SI,PALABRA ; SE CARGA LA VARIBALE "PALABRA" EN 'SI'

INICIO:
MOV AH,01H ;SE CAPTURA EL CARACTER
INT 21H

CMP AL,0DH ;SE COMPARA CON ENTER
JE FINPALABRA ;SI ES IGUAL SALTA A 'FINPALABRA'

CMP AL,20H ;SE COMPARA CON EL ESAPACIO
JE ESPACIO ;SI ES IGUAL SALTA A ESPACIO

CMP AL,61H ;SE COMPARA CON a (MINUSCULA)
JB INICIO ;SI ES MENOR REGRESA A LA ETIQUETA INICIO

CMP AL,7AH ;SE COMAPRA CON z (MINUSCULA)
JA INICIO ;SI ES MAYOR SALTA A INICIO

;SI LA TECLA PRESIONADA ESTA ENTRE EL RAGO 61H Y 7AH

SUB AL,20H ;SE RESTA 20H A EL CARACTER ALMACENADO EN 'AL'
MOV [SI],AL ;SE MUEVE 'AL' A LA PRIMERA POSISION DE 'SI'
INC SI ;SE INCREMENTA 'SI'
JMP INICIO ;SE REGRESA A INCIO HASTA QUE SE PRESIONE ENTER

;SI SE PRECIONA UN ESPACIO
;SOLO SE INCREMENTE EL VALOR DE 'SI'
;Y SE REGRESA A INICIO

ESPACIO:
INC SI
JMP INICIO

FINPALABRA:

;PARA COMPROBAR SI LA CADENA ESTA VACIA
;SE HACE LO SIGUIENTE


MOV CX,0000H
CMP SI,CX ;SE COMPARA 'SI' CON 0 (CERO)
JE INICIO ;SI ES IGUAL REGRESA A INICIO

;SINO ESTA VACIA...
INC SI ;SE INCREMENTA 'SI'
MOV AL,'$' ;SE ASIGNA EL CARACTER DEL FIN DE LA CADENA A 'AL'
MOV [SI],AL ;SE CARGA EN 'SI'

;AQUI SOLO SE DESPLIEGA LA CADENA
;YA CONVERTIRDA EN MAYUSCULAS


MOV AH,09H
LEA DX,PALABRA
INT 21H

finalizar:
mov ah,4ch
int 21h
main endp
codesg ends
end main
end

martes, 5 de mayo de 2009

Ensamblador - Manejo de Variables

Manejo de Variables

Las variables son identificadores que hacen referencia a una posición de memoria donde se guarda algún valor útil para el programa y que puede ser modificado durante la ejecución de éste.

Las varibales se declaran en la segcion de datos (data segment).

Declaracion:

VARIABLE DB TAMAÑO DUP (VALOR)


Donde:

VARIABLE.- Es el nombre de la variable.
DB.- Significa que es de tipo byte.
TAMAÑO.- Es la longitud de la variable.
DUP (VALOR).- Es el valor por defecto para cada uno de los bytes de la variable.

Ejemplos de Declaración:

CADENA1 DB 14H DUP (?)

Crea una variable llamada CADENA1 de tipo byte con 20 posiciones
decimales y cada posición con cualquier valor.


CADENA2 DB 14H DUP (‘0’)

Crea una variable llamada CADENA2 de tipo byte con 20 posiciones
decimales y cada posición con el carácter ‘0’.

sábado, 25 de abril de 2009

Empilar, Desempilar Y Un Ejemplo

Instrucciones Push (Empilar) y Pop (Desempilar)

La instruccion Push se utiliza para empilar un registro, ya que no se puede empilar un valor de forma directa. Por ejemplo

PUS AX

Nota: Recuerde utilizar registros completos, por ejemplo: AX, BX, CX, DX

Lo mismo sucede a la hora de desmpilar con la instruccion Pop, la cual desempila un registro previamente empilado.

POP AX


Ejemplo con Codigo ASCII.

El siguiente codigo es un ejemplo de manejo de caracteres, el cual imprime todo el codigo ASCII en columnas de 2o caracteres. Espero que el codigo sea lo bastante claro =D

El codigo fue compilado con MASM32.

Title Codigo ASCII
STACKS SEGMENT PARA STACK 'STACK'
;DB 64 DUP (0)
STACKS ENDS

DATA SEGMENT
COLUMNA DB 0 ;SE INICIALIZA LA VARIABLE COLUMNA
FILA DB 0 ;SE INICIALIZA LA VARIABLE FILA
DATA ENDS

CODESG SEGMENT
ASSUME CS:CODESG,DS:DATA,SS:STACKS
MAIN PROC FAR
PUSH DS
MOV AX, DATA
MOV DS, AX

LIMPIAR_PANTALLA:
MOV AX, 0600H ;LIMPIAR PANTALLA
MOV BH, 07H
MOV CX,0000H
MOV DX,184FH
INT 10H

MOV CX,0226
MOV AH,' '

CICLO:
MOV AH,02H ;COLOCA EL CURSOR
MOV BH,0H
MOV DH,FILA
MOV DL,COLUMNA
INT 10H

INC FILA ;SE INCREMENTA LA FILA PARA AUMENTA LA FILA
CMP FILA,20 ;SE COMPARA EL NUM DE FILAS CON 20
JNE MOSTRAR ;SE IMPRIMEN LOS PRIMEROS 20 CARACTERES

MOV FILA, 0 ;SE VUELVE A INICIALIZAR LA FILA EN CERO
ADD COLUMNA,10 ;SE INCREMENTA LA COLUMNA
MOSTRAR:

MOV AH,0EH ;IMPRIMIR 1 SOLO CARACTER
INT 10H
INC AL ;INCREMENTA EN AL PARA EL SIGUIENTE CARACTER
LOOP CICLO
CURSOR:
MOV AH,02
MOV DL,40
MOV BH,40
INT 10H

FIN:
MOV AX, 4CH
INT 21H
MAIN ENDP
CODESG ENDS
END MAIN
END


Codigos de Ensamblador - Captura e Impresión De Texto

Leer carácter con Echo.

La lectura de un carácter con Echo permite que, el carácter es leído es impreso el mismo tiempo.

MOV AH,01H
INT 21H

Nota: El valor del carácter (en hexadecimal) es guardado en el registro AL

Leer carácter Sin Echo.

La lectura de un carácter Sin Echo simplemente captura el carácter pero no lo imprime. Se puede hacer mandando dos valores al registro AH: 07H ó 08H

MOV AH,07H
INT 21H

Nota: El valor del carácter (en hexadecimal) es guardado en el registro AL

Desplegar un carácter.

MOV AH,02H
MOV DL,caracter
INT 21H

Donde:
  • caracter debe de contener el valor en hexadecimal del carácter que se desea imprimir ó bien el mismo carácter encerrado entre apostrofes (ejemplo: MOV DL,'A'... ó MOV DL,41H)
Desplegar un mensaje.

MOV AH,09H
LEA DX,mensaje
INT 21H

Donde:
  • mensaje debe estar previamente declarado en el segmento de datos (mensaje DB 'HoLa MuNdO$'
  • Recuerden que todos los mensajes terminan con un símbolo de pesos ($)