#include <cstdlib>
#include <iostream>
#include <fstream>
//converts hex into base10
unsigned long convertHexToIntBase10( char * inputHex)
{
unsigned long hexValue = std:: strtoul ( inputHex, 0 , 16 ) ;
return hexValue;
}
int main( int argc, char * argv[ ] )
{
if ( argc < 3 ) {
std:: cerr << "Usage: MemoryPageListHex [Low Memory Adress] [High Memory Adress] in 4k Pages i.e. MemoryPageListHex 1bae50 1bb0e7 for 0x1bae50148 to 0x1bb0e7fe8" << std:: endl ;
return 0 ;
}
auto lowAdr = convertHexToIntBase10( argv[ 1 ] ) ;
auto highAdr = convertHexToIntBase10( argv[ 2 ] ) ;
std:: ofstream myfile;
myfile.open ( "MemoryAdress4k.txt" ) ;
for ( auto i= lowAdr; i< highAdr; i++ ) {
myfile << std:: hex << "0x" << i << " " ;
}
myfile.close ( ) ;
return 0 ;
}
I2luY2x1ZGUgPGNzdGRsaWI+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPGZzdHJlYW0+CgovL2NvbnZlcnRzIGhleCBpbnRvIGJhc2UxMAp1bnNpZ25lZCBsb25nIGNvbnZlcnRIZXhUb0ludEJhc2UxMChjaGFyKiBpbnB1dEhleCkKewogICAgdW5zaWduZWQgbG9uZyBoZXhWYWx1ZSA9IHN0ZDo6c3RydG91bChpbnB1dEhleCwgMCwgMTYpOwogICAgcmV0dXJuIGhleFZhbHVlOwp9CgppbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQp7CiAgICBpZihhcmdjIDwgMyl7CiAgICAgICAgc3RkOjpjZXJyIDw8ICJVc2FnZTogTWVtb3J5UGFnZUxpc3RIZXggW0xvdyBNZW1vcnkgQWRyZXNzXSBbSGlnaCBNZW1vcnkgQWRyZXNzXSBpbiA0ayBQYWdlcyBpLmUuIE1lbW9yeVBhZ2VMaXN0SGV4IDFiYWU1MCAxYmIwZTcgZm9yIDB4MWJhZTUwMTQ4IHRvIDB4MWJiMGU3ZmU4IiA8PCBzdGQ6OmVuZGw7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9CiAgICBhdXRvIGxvd0FkciA9IGNvbnZlcnRIZXhUb0ludEJhc2UxMChhcmd2WzFdKTsKICAgIGF1dG8gaGlnaEFkciA9IGNvbnZlcnRIZXhUb0ludEJhc2UxMChhcmd2WzJdKTsKICAgIHN0ZDo6b2ZzdHJlYW0gbXlmaWxlOwogICAgbXlmaWxlLm9wZW4gKCJNZW1vcnlBZHJlc3M0ay50eHQiKTsKICAgIGZvciAoYXV0byBpPWxvd0FkcjsgaTxoaWdoQWRyOyBpKyspewogICAgICAgIG15ZmlsZSA8PCBzdGQ6OmhleCA8PCAiMHgiIDw8IGkgPDwgIiAiOwogICAgfQogICAgbXlmaWxlLmNsb3NlKCk7CiAgICByZXR1cm4gMDsKfQ==