我希望该数据从例如 0x100(内存位置)开始,然后是命令之前的所有内容……但我真的不确定!感谢您的帮助!
好的,详细说明我的问题:我将内存视为具有一个字节空间的长数组。该空间充满了十六进制数字。但是变量可以填充内存,例如 0x0000 - 0xffff。但是,您如何知道例如 0x002f 是一个命令(例如“mov”)或只是一个作为数据的数字?
最佳答案
一般来说,CPU是不知道的。它只是执行指令。然而,操作系统在帮助或内存管理单元的帮助下可能会将某些内存页面标记为可执行或不可执行,从而阻止 cpu 执行它。
关于c - cpu怎么知道内存中的数据是数据还是命令呢? (C 编程),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22222337/