cursos:ensamblador:avanzadas2

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
cursos:ensamblador:avanzadas2 [19-01-2024 08:34] sromerocursos:ensamblador:avanzadas2 [24-01-2024 17:25] (actual) sromero
Línea 2: Línea 2:
  
 En este capítulo vamos a ver algunas consideraciones relativas a optimizaciones y mejoras que no hemos querido incluír dentro de sus respectivos capítulos para evitar confundir al lector con código o ideas complejas en un momento en que está aprendiendo los fundamenos.. En este capítulo vamos a ver algunas consideraciones relativas a optimizaciones y mejoras que no hemos querido incluír dentro de sus respectivos capítulos para evitar confundir al lector con código o ideas complejas en un momento en que está aprendiendo los fundamenos..
 +
 +\\ 
 +===== Optimizaciones generales =====
 +
 +Veamos una serie de "optimizaciones" o construcciones de código algo más avanzadas que las que hemos visto hasta ahora para determinadas tareas:
 +
 +\\ 
 +**Copiar el flag Zero al Carry**
 +
 +<code z80>
 +    scf              ; CF = 1
 +    jr z, $+3        ; Si ZF=1, saltamos y dejamos CF=1
 +    ccf              ; Si ZF=0, al no saltar ejecutamos ccf
 +                     ; y hacemos CF=0
 +                     ; $+3 es la instrucción posterior al ccf
 +</code>
 +
 +**Copiar el flag de Carry al Zero flag**
 +
 +<code z80>
 +    ccf
 +    sbc a, a
 +</code>
 +
 +\\ 
 +**Realizar un ''NEG'' de un registro de 16 bits**
 +
 +<code z80>
 +    xor a
 +    sub Parte_baja_Registro
 +    ld Parte_baja_Registro, a
 +    sbc a, a
 +    sub Parte_alta_Registro
 +    ld Parte_alta_Registro, a
 +</code>
 +
 +Por ejemplo, para simular ''NEG HL'':
 +
 +<code z80>
 +    xor a
 +    sub l
 +    ld l, a
 +    sbc a, a
 +    sub h
 +    ld h, a
 +</code>
 +
  
 \\  \\ 
Línea 128: Línea 175:
     ex af, af'      ; Nos guardamos AF en AF'     ex af, af'      ; Nos guardamos AF en AF'
     rl (hl)     rl (hl)
-    ex af, af'      ; Recuperamos AF' en AF+    ex af, af'      ; Recuperamos AF desde AF'
     dec l           ; este bloque se repite 16 veces     dec l           ; este bloque se repite 16 veces
 </code> </code>
  • cursos/ensamblador/avanzadas2.1705653281.txt.gz
  • Última modificación: 19-01-2024 08:34
  • por sromero