Formato de las instrucciones Prefijos de: Instrucción Bytes: 0,1 Direccionamiento Tamaño de Tamaño de Segmento dirección operandos 0,1 0,1 0,1 F3h REP 67h F3h REPE/REPZ F2h REPNE/REPNZ F0h LOCK 66h 2Eh CS 36h SS 3Eh DS 26h ES 64h FS 65h GS Código mod-r/m operación 1,2 0,1 SIB Desp Dato Inmed 0,1 0,1,2,4 0,1,2,4 Ejemplo de tabla de códigos de operación para MOV MOV r/m, reg MOV reg, r/m MOV r/m, inmed MOV reg, inmed 1000 100w 1000 101w 1100 011w 1011 wreg Universidad de Oviedo / Dpto. de Informática mod-reg-r/m mod-reg-r/m mod-000-r/m inmed inmed Arquitectura de Computadores Codificación de los modos de direccionamiento d0 MEM+ d8 d32 REG 000 001 010 011 100 101 110 111 EAX ECX EDX EBX ESP EBP ESI EDI Mod reg 00 01 10 11 AX CX DX BX SP BP SI DI AL CL DL BL AH CH DH BH r/m 000 001 010 011 100 101 110 111 00 01 10 11 SS [EAX]+d [ECX]+d [EDX]+d [EBX]+d ------ SIB [EBP]+d [ESI]+d [EDI]+d Universidad de Oviedo / Dpto. de Informática 1 2 4 8 000 001 010 011 100 101 110 111 EAX ECX EDX EBX ----EBP ESI EDI indice 000 001 010 011 100 101 110 111 EAX ECX EDX EBX ESP EBP ESI EDI base Excepción mod=00 Desp 32 bits Sin registro Base Excepción mod=00 y r/m=101 Acceso directo a mem Arquitectura de Computadores Códigos especiales para instrucciones que usan AL o EAX La arquitectura IA-32 proporciona códigos especiales para aquellas instrucciones que utilizan el registro AL o EAX en un operando y el direccionamiento directo a memoria en otro operando. Estos código resultan más compactos que los que se obtendrían utilizando el caso general de codificación. Instrucciones para las que existe código especial y su código asociado mov mov mov mov al, [etiquetaByte] eax, [etiquetaDWord] [etiquetaByte], al [etiquetaDWord], eax Î Î Î Î A0 A1 A2 A3 XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX Nota: XX XX XX XX representa la dirección (desplazamiento) a la que hace referencia la etiqueta, expresada con 32 bits. Universidad de Oviedo / Dpto. de Informática Arquitectura de Computadores