I used debugger(windows) to view a text file(20 bytes only). books says it shows the whole 128bytes section and we have to decide where our files end. Why does it have to be 128? why not only the file size or 512 or a 256 or something?

Books calls the other area as memory garbage. But doesn't explain why 128bytes

Depends on the debugger. What IDE/debugger are you using? If you are using debug.exe (which is no longer distributed with MS-Windows) the I think you are correct. When you use the 'l' command to list memory contents debug.exe just gives you a memory dump without regard to what's in it. You could, I think, view the entire computer's RAM like that, although I never tried to do that.