Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- unsigned char dia(unsigned char mes,unsigned char *dias){
- unsigned char salida(0);
- asm(
- "nop \n\t"
- "movl %[dias],%%ebx \n\t" /* recupera la direccion de dias en rbx 64bits o ebx32 bits */
- "movb %[mes],%%al \n\t"/* al contiene el mes */
- "xlat \n\t" /*xlat ebx tiene la base y al el desplazamiento */
- "movb %%al,%[salida] \n\t"
- :[mes]"=r"(mes),[salida]"=d"(salida)
- :[dias]"m"(dias)
- :"%ebx"
- );
- return salida;
- }
- int main(){
- unsigned char dias[]={31,28,31,30,31,30,31,31,30,31,30,31 };
- enum mes {enero,febrero,marzo,abril,mayo,junio,
- julio,agosto,septiembre,ocubre,noviembre,diciembre};
- for (unsigned char d=enero ;d<=diciembre;++d){
- cout <<"numero de dias mes "<<(int) d<<" = "<<(int)dia(d,&dias[0])<<endl;
- }
- return 0;
- }
- /*Escriba un programa en el que se utilice la instruccion XLAT para recuperar
- * de una tabla el numero de dias que tiene un mes cualquiera.
- * La tabla con los dias se define en C/C++ como un vector de tipo unsigned char,
- * Dejando el resultado de la traduccion en una variable accesible para el resto
- * del programa , a fin de poder imprimir el resultado en pantalla*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement