Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - ctap07b9

#1
Si, los 8 espacios de operandos son por los 8 registros
de proposito general ordenados con numeros de menor
a mayo AX,CX,DX,BX,SP,BP,SI,DI
( numeros hexadecimales)
40 inc ax
41 inc cx
42 inc dx
43 inc bx
44 inc sp
45 inc bp
46 inc si
47 inc di

si empiezas con 40+8 entonces es la instruccion "dec"
si empiezas con 50 entonces es la instruccion "push"
si empiezas con 50+8 entonces es la instruccion "pop"

Pero no todo es tan rigido, por ejemplo.

0000 add [bx+si],al
0001 add [bx+di],al
0002 add [bp+si],al
0003 add [bp+di],al
0004 add [si],al
0005 add [di],al
0006 add [0x0000],al
0007 add [bx],al

No es lineal con los registros de proposito general.

Creo que las tablas son totalmente necesarias.
Además hay que determinar si la CPU opera en 16 o 32 bits
porque los prefijos querrán decir una cosa u otra.
#2
No queda otra que entender los PDFs que INTEL o AMD presentan en su web.
Es un tema complicado por el arrastre que los procesadores x86 han acumulado.
Muchos prefijos a entender.

Por ejemplo lo primero que interpreta la CPU es la instrucción que
suelen saltar de 8 en 8 unidades , dependiendo del valor :

0000 add [bx+si],al
0800 or [bx+si],al
1000 adc [bx+si],al
1800 sbb [bx+si],al
2000 and [bx+si],al
2800 sub [bx+si],al
3000 xor [bx+si],al
3800 cmp [bx+si],al
40 inc ax


esos 8 espacios permiten decidir operandos o no.
Pero no todo es tan predecible, hay muchas variaciones.
y prefijos como los nuevos 0F que designan instrucciones modernas.

Animo y que no decaiga el interés.

#3
Cita de: fabian7593 en 25 Septiembre 2013, 04:08 AM
hola yo tengo experiencia en desarrollo de video juegos en c++ SDL , si alguien esta interesado en realizar algo conmigo no duden en contactarme o dejarme un msj por aca :)

Ok, me interesa. Algún correo ?
#4
Si te interesa hacer un programa en Amstrad,
podemos comentarlo, y ver que partes se
pueden desarrollar o mejorar.
#5
Hola,

La pregunta es naturalmente interesante, por ello me parece totalmente
lógico que la viertas en este foro.

Pensar es un acción aparentemente humana. Un acción amplia y ambigua
con gran cantidad de matices. ¿ Es pensar igual que reflexionar ? ,¿e igual
que decidir ?

Las máquinas han demostrado ser capaces decidir. Analizar los datos
y verificar cual es la opción a tomar en función del actual estado del
programa, y este estado puede cambiar y por tanto la decisión siguiente
ser diferente a la anterior.

Estas decisiones pueden ser simples o complicadas en función de la
información y algoritmos residentes en el programa, y su aparencia
humana surgiría si se alcanzara ciertos volumenes de información y
algoritmos complejos. Además de una constante entrada de datos nuevos
para conformar el actual entorno exterior al programa.

Pero si las decisiones se repitieran por falta de información y/o
complejidad en el algoritmo entonces un humano podría pensar que está
ante un programa informático y no ante un humano pensante.
Fundamental es entonces que el programa tenga acceso a la datos fuera
del mismo y los acumule para posibles nuevas decisiones. Aquí entrarían
conceptos como análisis de la información, asociación de la misma en
estructuras que permitan acceso recursivo. Creo que entonces el concepto
POO juega un papel clarificador.

Luego la conclusión a la que llegamos es que si es posible generar un
programa que emule un ser humano, la dificultad radica en que se necesita
una estructura tal de entrada de datos, asociación de los mismos para
generar objetos, y una complejidad en los algoritmos que creo todavía no
se ha llegado en la actualidad.
                                   
#6
La solución para crear arreglos/matrices es la función DIM

Ejemplo:

DIM a(5,10): REM crea un matriz de dos dimensiones (5x10)

a(3,5)=9.9: REM introducimos 9.9 en la posicion matriz a(3,5)
#7
Me encanta ensamblador, pero pierdo en rapidez de programación, los errores se pagan muy caro sobretodo en terminos de tiempo.

Aprendí c++ pero me resulta dificil mezclar ensamblador.

Con Euphoria en cambio encuentro facilidad para intercalar ensamblador y captura errores que no veo en FASM. Por lo que es el que más me gusta.
#8
Hola yo estoy desarrollando un engine que más tarde puede devenir un juego,
alquién se anima a programar conjuntamente ?

https://www.youtube.com/user/javier07b9