Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /// Function must be something like this:
- int check_register_storing()
- {
- __asm__ (
- pushad // Save registers
- and ebx, ebx // Set Zero
- and eax, eax
- and ecx, ecx
- and edx, edx
- );
- // Set test number.
- register int a = 8; // Initial value;
- int from_register = 0;
- asm(
- add eax, ebx // If, 'a' variable set on CPU register,
- add eax, ecx // Some of main usage registers must contain 8
- add eax, edx // Others must contain 0
- mov %from_register, eax
- popad // Return default parameters to registers
- }
- /// Check result
- printf( "Original saved number: %d, Returned number from main registers: %dn", a, from_register );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement