Advertisement
Guest User

Untitled

a guest
Feb 21st, 2018
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.70 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(int argc, char *argv[]){
  5.  
  6.     // some systems see unsigned int as 2 or 4 bytes
  7.     uint32_t virtualAddress, pageNumber, offset;
  8.  
  9.     if(argc < 2)
  10.     {
  11.         printf("Didnt pass a virtual address in decimal\n");
  12.         exit(0);
  13.     }
  14.    
  15.     virtualAddress = atoi(argv[1]); // reading in as an int but storing as unsigned int
  16.    
  17.     pageNumber = virtualAddress >> 12; // shift to get page ##
  18.     offset = virtualAddress & 0xfff; // bit mask to extract first 12 bits  
  19.  
  20.     printf("Passed address %d contains: \n", virtualAddress);
  21.  
  22.     printf("Page number = %d \n", pageNumber);
  23.  
  24.     printf("Offset = %d\n", offset);
  25.  
  26.     return 0;
  27. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement