Y3 16 t4 t4 x4 t5 xy t1 z t2 t2 t5

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: dx,%edx,2), %eax $4, %eax 4(%ecx,%eax), %eax %ecx, %edx 16(%ebp), %edx %edx, %eax # # # # # # # # —༉  —༉  —༉  —༉  —༉  ecx edx eax eax eax edx edx eax Instrucciones en orden diferente del código en C Algunas expresiones requieren múltiples instrucciones Algunas instrucciones abarcan múltiples expresiones Conseguimos exactamente el mismo código cuando compilamos: (x+y+z)*(x+4+48*y) =x =y = y*3 *= 16 (t4) = t4 +x+4 (t5) = x+y (t1) += z (t2) = t2 * t5 (rval) 14 ESTADO ¢༊  DEL PROCESADOR Información sobre el programa que se está ejecutando —༉  —༉  —༉  —༉  Datos temporal ( %eax, … ) Ubicación de la pila en tiempo de ejecución ( %ebp,%esp ) Ubicación del punto de control de código actual ( %eip, … ) Status ( CF, ZF, SF, OF ) %eax %ecx %edx Regsitros de Proposito General %ebx %esi %edi Tope de la pila actual %esp %ebp Marco de la pila actual Apuntador de intrucciones %eip CF ZF SF Códigos de OF Condición 15 CÓDIGOS DE CONDICIÓN: CONFIGURACIÓN IMPLICITA ¢༊  Registros de un solo bit Carry Flag (sin signo) —༉ SF Sign Flag (con signo) —༉ ZF Zero Flag —༉ OF Overflow Flag (con signo) —༉ CF ¢༊  Establecido implicitamente (pensar en ello como efecto secundario) por las opraciones aritméticas Ejemplo: addl/addq Src,Dest ↔ t = a+b CF set si acarreo el bit más significat (overflow sin signo) ZF set if t == 0 SF set if t < 0 (como con signo) OF set if CA2 (con signo) overflow (a>0 && b>0 && t<0) || (a<0 && b<0 && t>=0) ¢༊  No establecido para la instrucción lea 16 CÓDIGOS DE CONDICIÓN: CONFIGURACIÓN EXPLICITA ¢༊  Configuración comparación explícita por las Instrucción de Src2, Src1 —༉ cmpl b,a igual que calcular a-b sin establecer destino —༉ cmpl/cmpq si acarreo el bit más significativo (utilizado para las comparaciones sin signo) —༉ ZF set if a == b —༉ SF set if (a-b) < 0 (como con signo) —༉ OF set if CA2 (con signo) overflow (a>0 && b<0 && (a-b)<0) || (a<0 && b>0 && (a-b)>0) —༉ CF set 17 CÓDIGOS DE CONDICIÓN: EXPLICITA: PRUEBA ¢༊  Configuración de prueba CONFIGURACIÓN explícita mediante instrucciones —༉ testl/testq Src2, Src1 —༉ testl b,a igual que calcular a&b sin establecer destino —༉ Códigos de condición basados en el valor de Src1 & Src2 —༉ Útil para que uno de los operandos sea una máscara cuando a&b == 0 —༉ SF set cuando a&b < 0 —༉ ZF set 18 LEYENDO ¢༊  SetX —༉  —༉  LOS CÓDIGOS DE CONDICIÓN Instrucciones Establecer byte de orden inferior a 0 ó 1 basado en la combinaciones de códigos de condición No altera los 3 bytes restante SetX sete setne sets setns setg setge setl setle seta setb Condi;on ZF ~ZF SF ~SF ~(SF^OF)&~ZF ~(SF^OF) (SF^OF) (SF^OF)|ZF ~CF&~ZF CF Descrip;on Equal / Zero Not Equal / Not Zero Nega;ve Nonnega;ve Greater (Signed) Greater or Equal (Signed) Less (Signed) Less or Equal (Signed) Above (unsig...
View Full Document

Ask a homework question - tutors are online