Una revelación sobre la natura de los macros
Lo siento, pero esta entrada va a ser un poco técnico... ^^;
Pero lo que descubrí ahora me entusiasma muchísimo. Estoy escribiendo un ensamblador para el 65816. Supongamos que tenemos una instrucción así:
adc #12
Al encontrar tal instrucción, normalmente el ensamblador produce inmediatamente el opcode correspondiente: 69 0C. Pero, ¿y si esta instrucción está en el cuerpo de un macro? No se puede producir nada hasta la invocación. Necesitamos guardar esta instrucción, pero, ¿cómo hacerlo si no hay ninguna representación intermedia?
Y se me ocurrió la solución: ¡meter el código que emite el opcode en una clausura! De esta forma un macro es simplemente una serie de clausuras. Al invocar el macro, sólo hay que llamar todas las clausuras. ¡Voilà! Ahí tienes los opcodes.
¡Es magia!
Pero lo que descubrí ahora me entusiasma muchísimo. Estoy escribiendo un ensamblador para el 65816. Supongamos que tenemos una instrucción así:
adc #12
Al encontrar tal instrucción, normalmente el ensamblador produce inmediatamente el opcode correspondiente: 69 0C. Pero, ¿y si esta instrucción está en el cuerpo de un macro? No se puede producir nada hasta la invocación. Necesitamos guardar esta instrucción, pero, ¿cómo hacerlo si no hay ninguna representación intermedia?
Y se me ocurrió la solución: ¡meter el código que emite el opcode en una clausura! De esta forma un macro es simplemente una serie de clausuras. Al invocar el macro, sólo hay que llamar todas las clausuras. ¡Voilà! Ahí tienes los opcodes.
¡Es magia!
- 10
- 0
- 1
Journals Statistics
| Total | 111 entries |
|---|---|
| This Month | 0 entries |
| This week | 0 enrties |
Latest entry
| Los Magos Blancos son inútiles (2) |
| Una revelación sobre la natura de los macros (1) |
| 蛙と息子の話 (9) |
| アメリカにも地震があります (5) |
| Terremoto (2) |
Latest comments
| Mar 25th lorcon |
| Dec 20th |
| Dec 03rd Negu |
| Nov 11th |
| Nov 09th Sarry |
Entries by Month
| 2012 |
|---|
| - March (1) |
| 2011 |
| - December (1) |
| - November (3) |
| - October (1) |
| - September (1) |
| - July (1) |
| - June (1) |
| - May (2) |
| - April (2) |
| - March (1) |
| - February (3) |
| 2010 |
| - December (1) |
| - November (3) |
| - October (5) |
| - September (1) |
| - August (5) |
| - July (2) |
| - June (4) |
| - May (5) |
| - April (2) |
| - March (5) |
| - February (5) |
| 2009 |
| - December (1) |
| - November (4) |
| - October (2) |
| - September (5) |
| - August (11) |
| - June (1) |
| - May (1) |
| - March (4) |
| - February (2) |
| - January (1) |
| 2008 |
| - December (1) |
| - November (3) |
| - October (6) |
| - September (3) |
| - August (1) |
| - July (4) |
| - June (6) |

Lo siento, pero esta entrada va a ser un poco técnica...
Es que lo que acabo de descubrir me entusiasma muchísimo. ("Es que" para no repetir "pero")
Al invocar al macro, sólo hay que llamar a todas las clausuras.