Tag: CPU-REGISTERS
1) ¿Cuál es el valor inicial de SS, SP, BP? ¿Son nulos (0x0) o, por ejemplo, SP se establece inmediatamente en 0xFFFE? 2) Cuando escribimos un código en ensamblador sin utilizar las instrucciones pop y push, ¿se establece el puntero de pila en algún valor?
Me estoy adentrando en el aprendizaje de código ensamblador y tengo un par de preguntas sobre este fragmento. Supongamos que %r8 es un array de caracteres, %r9 es un array de enteros y %r10 es un array de enteros largos. test: mov $128, %axh movzx $128, %bx movq $64, 4(%r8) . . . Read more
“`cpp “`cpp include include struct Registers { Registers() : af(0), f((reinterpret_cast(&af))), a((reinterpretcast<uint8t *>(&af) + 1)) { } std::uint16_t af; std::uint8_t& f; std::uint8_t& a; }; int main() { Registers r; r.af = 0x00FF; r.a = 0xAA; std::printf(“AF: %04X A: %02X F: %02X\n”, r.af, r.a, r.f); return 0; } “`cpp Independientemente de . . . Read more
¿Qué puedo hacer para tomar solo los dígitos correctos del número? Intenté con “byte ptr” pero cambió el valor. ¿Es posible eliminar los 2 dígitos de la izquierda en un registro? Editar: El número está escrito dentro de un registro, así que por izquierda y derecha me refiero al byte . . . Read more
El libro indica lo siguiente: La sección 6.01 introdujo una extensión a la notación de transferencia de registro. Podemos usar esto para describir la ejecución de una instrucción. Por ejemplo, la instrucción LDD se describe como: ACC ← [[CIR(15:0)]] La instrucción está en el CIR y solo es necesario examinar . . . Read more