2012-07-01 11 views
5

estoy solicitando ayuda para escribir código ensamblador de 32 bits para un simple "tatuaje programa“.Código Asamblea de escritura para un tatuaje

quisiera hacerse un tatuaje. Después de pensarlo, he decidido que yo Me gustaría un tatuaje que use código ensamblador y trate con mi hija, Alisha. Mi idea es presentar un "cálculo ilógico", uno que desafíe las leyes del lenguaje ensamblador. Quiero rendir homenaje a lo ilógico que parece tener un niño. alguien como yo ... alguien que está acostumbrado a 1s y 0s.

estoy pensando en el uso de registros de 32 bits basados ​​en x86 como EAX, EBX, ECX y, por supuesto, y algunos empujones y pops.

El tatuaje NO tendría los comentarios (nada entre paréntesis), pero incluiría el inicio: notación.

start: 
    mov eax, 53656C66h (ASCII for "Self") 
    mov ebx, 57696665h (ASCII for "Wife") 
    add ebx, eax 

    push ebx 
    push 3F81DBh   (Decimal 4162011 = daughter's birth date) 

    pop ecx    (The first pop would give my daughter's birth date) 
    pop ecx    (the second pop would NOT give the answer of eax added to ebx, 
          but would rather give my daughter’s nickname) 
    ??? ecx 

Mi idea es reemplazar ??? con la instrucción de leer y luego mostrar que el valor en ecx es ahora 416c69h (ASCII para "Ali", el apodo de mi hija). Creo que esta idea sería increíble, y publicaré fotos del tatuaje si lo consigo (por supuesto).

Mi idea es que la última explosión desafiaría la lógica de la computadora. En esencia, tener un hijo desafía la "lógica" que conocemos, así que este fue mi intento de igualar la belleza del nacimiento.

¿Alguna otra idea?

+0

bx es un registro de 16 bits. El valor 5769666579h tiene 31 bits de largo ... Tal vez deberías considerar otra idea ... – Macmade

+0

Buen punto Macmade. Acabo de cambiar a usar los registros extendidos. En realidad, ACSII usa 7 bits por char, ¿verdad? Lo que significa que necesitaría usar 64 bits para mantener "Alisha" en ASCII. Podría usar "Ali", ya que ese es su apodo. – user1435743

+2

¿No te gustaría hacerte un tatuaje de 64 bits? – hirschhornsalz

Respuesta

4

Lo que es un poco raro es que el programa no hace nada, realmente. ¿Por qué no escribir el código que da como resultado el nombre de su hija como resultado de combinar cosas como su nombre, la de su esposa y alguna codificación de su fecha de nacimiento? ¿Quizás a través de una serie de instrucciones XOR con algunos valores significativos?

+0

Mi idea era que el último pop desafiaría la lógica de la computadora normal. En lugar de devolver la respuesta de 5769666579h + 4d65h, devolvería el nombre de mi hija. Sin embargo, realmente me gusta tu idea. Ahora, solo necesito averiguar cómo hacer algunos XOR para derivar "Ali" en hex de "Me" y el nick/nombre de mi esposa. También necesito descubrir cómo adaptar mejor estas cosas en los registros ... Preferiría seguir con 32 bits en este punto. – user1435743

+0

¿Quiero comenzar movs o debo cargar los registros en lugar de moverme en un valor? No estoy seguro de cuál es la mejor forma de llenar un registro vacío en ensamblaje. En otras palabras, me gustaría comenzar el programa trayendo "Yo" (ASCII como hex) y "Esposa" (ASCII como hex). Una vez que agregue los valores, me gustaría comenzar a XORing con cosas como fecha de nacimiento/fechas especiales/etc. para obtener el nombre de mi hija de los XOR. ¡Esto será complicado! – user1435743

+0

Puedes hacer 'mov eax, 'Wife'', esto será entendido por el ensamblador. – hirschhornsalz

Cuestiones relacionadas