elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


  Mostrar Mensajes
Páginas: 1 2 [3]
21  Programación / Programación C/C++ / Re: como llenar un array y leer sus elementos en: 11 Julio 2018, 12:52 pm
En ese codigo no estas asignando ningún valor ni a mayor ni a menor  :-\
22  Programación / ASM / Re: ¿como aprender ensamblador? en: 11 Julio 2018, 12:49 pm
Como bien dice el compa de arriba , es recomendable que empieces con un lenguaje de alto nivel , una vez hecho eso te resultará mucho más sencillo entender y aprender como dios manda un lenguaje asm , el lenguaje , pues tienes para elegir de sobra , son bastantes similares y una vez domines uno , entenderas sin lugar a dudas el 90% de la sintaxis de otros , ya que es bastante similar
23  Programación / Programación General / Re: 3 en raya .asm 6809 en: 18 Mayo 2015, 19:22 pm
Nadie sabe nada al respecto? ya consigo imprimir el primer movimiento , pero no consigo que me lea un bra programa para que lea e imprima los siguientes el codigo sin adjuntar subrutinas etc de momento va asi:
Código:
       	 	; definimos una constante

fin    .equ 0xFF01
pantalla .equ 0xFF00
teclado .equ 0xFF02


tabla:
.ascii "         "


        ; definimos una constante
pantalla .equ 0xFF00
ldx #tabla

programa:
lda teclado
cmpa #'1
beq uno
bne compara2
compara2:
cmpa #'2
beq dos
bne compara3
compara3:
cmpa #'3
beq tres
bne compara4
compara4:
cmpa #'4
beq cuatro
bne compara5
compara5:
cmpa #'5
beq cinco
bne compara6
compara6:
cmpa #'6
beq seis
bne compara7
compara7:
cmpa #'7
beq siete
bne compara8
compara8:
cmpa #'8
beq ocho
bne compara9
compara9:
cmpa #'9
beq nueve






uno:
lda #'\n
sta pantalla
ldy #tabla
lda #'X
sta ,x
bra imprime_cadena


dos:
lda #'\n
sta pantalla
ldy #tabla
lda #'X
sta 1,x
bra imprime_cadena

tres:
lda #'\n
sta pantalla
ldy #tabla
lda #'X
sta 2,x
bra imprime_cadena

cuatro:
lda #'\n
sta pantalla
ldy #tabla
lda #'X
sta 3,x
bra imprime_cadena

cinco:
lda #'\n
sta pantalla
ldy #tabla
lda #'X
sta 4,x
bra imprime_cadena

seis:
lda #'\n
sta pantalla
ldy #tabla
lda #'X
sta 5,x
bra imprime_cadena

siete:
lda #'\n
sta pantalla
ldy #tabla
lda #'X
sta 6,x
bra imprime_cadena

ocho:
lda #'\n
sta pantalla
ldy #tabla
lda #'X
sta 7,x
bra imprime_cadena

nueve:
lda #'\n
sta pantalla
ldy #tabla
lda #'X
sta 8,x
bra imprime_cadena





imprime_cadena:
pshs a
ldb #9
imprime_cadena_inicio:
lda #'|
sta pantalla
lda ,x+
sta pantalla
beq reset_cadena
decb
cmpb #6
beq imprime_espacio
cmpb #3
beq imprime_espacio
cmpb #0
beq imprime_espacio

beq imprime_espacio

bra imprime_cadena_inicio


reset_cadena:
puls a
rts
jmp programa


imprime_espacio:
lda #'\n
sta pantalla
bra imprime_cadena_inicio




acabar:        ; el programa acaba
        clra
        sta fin

.area flag (ABS)
        .org 0xFFFE     ; vector de RESET
        .word programa
24  Programación / Programación General / 3 en raya .asm 6809 en: 12 Mayo 2015, 16:23 pm
Hola chicos , estoy tratando de simular en el 6809 el típico juego de 'el gato' o más conocido como 3 en raya. Bien , el problema me surge a la hora de que en la práctica se me especifica que debo de crear el tablero y que este se autorefresque es decir , no lo puedo imprimir una y otra vez con los nuevos movimientos , el tablero se me ha ocurrido recrearlo imprimiendo direcciones de memoria seguidas , ya que me facilitaria el imprimirlas con su valor en ascii , es decir , cuando del teclado lee un 1 , hace un salto a esta subrutina y en ella con un ld , almacena el valor 88 , (en ascii una X) a la vez que en la direccion siguiente almacena un 48 (un 0 en ascii)

obviamente no voy a copiar todo el codigo porque seria muy extenso por aqui dejo el modulo jugador vs maquina , esperando que me den alguna idea para refrescar el tablero.
OJO no pido código.

Código:
jugador_maquina:

  lda teclado
cmpa #1
bne compara2
jsr siesuno
bra jugador_maquina

compara2:

cmpa #2
bne compara3
jsr siesdos
bra jugador_maquina

compara3:
cmpa #3
bne compara4
jsr siestres
bra jugador_maquina

compara4:
cmpa #4
bne compara5
jsr siescuatro
bra jugador_maquina

compara5:
cmpa #5
bne compara6
jsr siescinco
bra jugador_maquina

compara6:
cmpa #6
bne compara7
jsr siesseis
bra jugador_maquina

compara7:
cmpa #7
bne compara8
jsr siessiete
bra jugador_maquina

compara8:
cmpa #8
bne compara9
jsr siesocho
bra jugador_maquina

compara9:
cmpa #9
bne Valorerroneo
jsr siesnueve
bra jugador_maquina

valorerroneo:
jsr imprime valor_erroneo
25  Programación / Programación General / Re: Licenciatura o ingeniería ( programación de juegos) en: 17 Enero 2015, 17:22 pm
Estudio Ingeniería Informática en la Universidad de Salamanca

Al menos en Salamanca se estudia física electrónica y aparte otra materia que es cálculo en la ingeniería además de álgebra lineal y otras materias.

26  Programación / Programación General / Ayuda con modulo verilog en: 12 Enero 2015, 17:12 pm
Verán ,ando trabajando en un contador con biestables que realiza una cuenta, el problema es que como resultado tengo 2 bucles de 0->8 y otro de 7->15 , el tema es por si alguien puede echarme un cable y decirme como puedo iniciar el contador en un número que no esté en bucle , el 2 por ejemplo , por aqui dejo el codigo fuente del programa que tengo hecho hasta ahora.. Mencionar que no pido ningún codigo solo el como hacerlo.

*Edit : Todo resuelto , despues de investigar un buen rato alcance la solucion :D
Código:
//Modulo del biestable JK
module JKdown(output reg Q, output wire QN, input wire J, input wire K,   input wire C);
  not(NQ,Q);

  initial
  begin
    Q=0;
  end    

  always @(posedge C)
    case ({J,K})
      2'b10: Q=1;
      2'b01: Q=0;
      2'b11: Q=~Q;
    endcase
endmodule


//Módulo que contiene el contador y la circuitería auxiliar.
module contador (output wire[3:0] Q, input wire C);
 //Cables correspondientes a las salidas negadas de los biestables.
  wire [3:0] nQ;
  
  wire rand;
 
  
  // J2, K2
  and (rand, Q[0], nQ[3]);
  
  JKdown jk0 (Q[0], nQ[0], Q[1], Q[1], C);
  JKdown jk1 (Q[1], nQ[1], Q[0], Q[0], C);
  JKdown jk2 (Q[2], nQ[2], rand, rand, C);
  JKdown jk3 (Q[3], Q[3], 1'b1, 1'b1, C);

endmodule


//Módulo para probar el circuito.
module test;
  reg C;
  wire [3:0] Q;
  contador counter (Q,C);

  always
  begin
    #9 C=~C;
    
  end

  initial
  begin
  
   $monitor($time, "Q[3:0]=%b", Q[3:0]);
    
  //Iniciar cuenta en 2
    counter.jk3.Q=0;
    counter.jk2.Q=0;          
    counter.jk1.Q=1;
    counter.jk0.Q=0;

    C=0;
    #300 $finish;
  end
endmodule



[MOD]: Utiliza las etiquetas para insertar código.
Páginas: 1 2 [3]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines