Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int main(int argc, char *argv[]){
- // some systems see unsigned int as 2 or 4 bytes
- uint32_t virtualAddress, pageNumber, offset;
- if(argc < 2)
- {
- printf("Didnt pass a virtual address in decimal\n");
- exit(0);
- }
- virtualAddress = atoi(argv[1]); // reading in as an int but storing as unsigned int
- pageNumber = virtualAddress >> 12; // shift to get page ##
- offset = virtualAddress & 0xfff; // bit mask to extract first 12 bits
- printf("Passed address %d contains: \n", virtualAddress);
- printf("Page number = %d \n", pageNumber);
- printf("Offset = %d\n", offset);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement