I am learning x86 assembly out of curiosity. I\'m currently using a Linux based OS with the NASM assembler. I am having a difficult time understanding why
You don't have unrestricted RAM. Furthermore, you don't have unrestricted access to the part of your address space which is backed by RAM. Code pages are mapped read-only. And as a ring-3 program, you can't change that yourself.