Kaiser de Emperana
Puntuación de reacción
832

Mensajes de perfil Última actividad Publicaciones Acerca

  • Holaaaa! ¿Como andas wachin?
    Che, me voy a Córdoba de vacaciones en diciembre pero no tengo ni pajonera idea de qué hacer allá 😂 vos me darías una mano? jajaja
    Jefecito dime tú: ¿qué sonidos son los que oigo yo?
    Jefecito dime tú: ¿por qué yo en la nube voy?
    Dime: ¿por qué huele el aire así?
    Dime: ¿por qué yo soy tan feliz?
    Jefecitooooo.
    ¡Nunca yo de ti me alejaré!
    M
    Hola si, dos de jamón y queso y dos de carne
    Sin aceitunas ni pasas
    ¿Tienes esto pero en "formato" asm?
    Mi pc es bastante vieja y no funcionan los programas para compilar ese tipo de cosas... (entre otros motivos)
    Saludos, Kaiser de Empanada Emperana, ¿cómo estás?
    Kaiser de Emperana
    Kaiser de Emperana
    Hey, Boo.
    Bien, bien. Vos?
    No sabía que te pasabas por el foro jaja
    H.B.P
    H.B.P
    Pues pasando tranquilamente la tarde. Y bueno, los tiempos cambian y las aguas se calman un poquito.
    Hola! disculpa las molestias. Soy Facu, aunque podés llamarme BOT también. Estoy iniciándome en la creación de HackROMs y vi la herramienta que creaste (LGPE). Me pareció muy interesante y útil pero tengo algunas dudas sobre como utilizarla. ¿podrías ayudarme a despejar esas dudas?
    Lo del audio se me olvidó completamente, y mira que me da asco xD.
    Y en cuanto a lo de la facilidad de añadir los gráficos, se me olvido ponerle el doble tick a Essentials. Tampoco creo que haya mucho diferencia, porque en indexar tardas 30s, además todo eso lo tuve en cuenta ya en otro apartado.
    He estado leyendo y se me ha ocurrido que lo de los punteros tiene que ver con "little endian", es eso cierto?
    Uff y aquí dice disque "nop" si no hace nada para qué se pone?


    .thumb
    .align 2


    main:
    push {lr}
    ldr r0, is_in_array_routine
    b jump
    nop

    is_in_array_routine:
    .word 0x08XXXXXX

    bx_r0:
    bx r0
    nop

    jump:
    bl bx_r0
    cmp r0, #0
    beq (. + 0xe)


    En una página leí: "You can use NOP for padding, for example to place the following instruction on a 64-bit boundary in ARM, or a 32-bit boundary in Thumb." Qué quiere decir?

    Perdona inundarte con preguntas, cómo aprendiste a hacer todo eso en assembler? me podrías indicar un lugar para empezar con un nivel básico - intermedio? he estado haciendo los tutoriales del índice en orden xD
    Oye, yo pensé que estaba entendiendo y luego vi esto:


    .equ opts_quantity, 3


    .thumb
    .align 2

    main:
    mov r2, #0
    ldr r0, selected_option_func
    ldr r0, [r0]
    mov r3, pc
    add r3, r3, #(menu_options_array - pc_value)
    pc_value:

    loop:
    ldr r1, [r3]
    cmp r1, r0
    beq return_0
    add r2, r2, #1
    add r3, r3, #4
    cmp r2, #opts_quantity
    bne loop
    mov r0, #1
    b return

    return_0:
    mov r0, #0
    return:
    bx lr

    .align 2
    selected_option_func:
    .word 0x020370f0

    menu_options_array:
    .word 0x0806f4e9 @ Save
    .word 0x0806f541 @ Exit
    .word 0x0806f555 @ Retire


    cómo es que restas una label a un array? (donde dice add r3, r3, #(menu_options_array - pc_value)) Y es así como se definen arrays?
    Ah, ya ví jajajajaja. No sé por qué te di antes +gracias, pero hasta ahora entiendo la gracia xD

    https://whackahack.com/foro/404054-post607.html

    Sabes por qué las rutinas solo se pueden insertar en espacios de memoria múltiplos de 4? Por qué se pone el offset +1, Y por qué los punteros se ponen al revés de como es la dirección en memoria? Vi que al escribir la rutina los pongo normal pero al compilar se permutan.

    Perdona tantas preguntas :v
    Por qué es necesario que se usen registros > 3 para hacer push? Si no se hace push se perdería la info de los registros que tenían antes de llamarse la rutina, no? o es una convención considerar que esos registros cambian después de un bl?

    Muchas gracias!
  • Cargando…
  • Cargando…
  • Cargando…
Arriba