c - cpu怎么知道内存中的数据是数据还是命令呢? (C 编程)

标签 c memory

我希望该数据从例如 0x100(内存位置)开始,然后是命令之前的所有内容……但我真的不确定!感谢您的帮助!

好的,详细说明我的问题:我将内存视为具有一个字节空间的长数组。该空间充满了十六进制数字。但是变量可以填充内存,例如 0x0000 - 0xffff。但是,您如何知道例如 0x002f 是一个命令(例如“mov”)或只是一个作为数据的数字?

最佳答案

一般来说,CPU是不知道的。它只是执行指令。然而,操作系统在帮助或内存管理单元的帮助下可能会将某些内存页面标记为可执行或不可执行,从而阻止 cpu 执行它。

关于c - cpu怎么知道内存中的数据是数据还是命令呢? (C 编程),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22222337/

相关文章:

c++ - 增加 float 值

c - getsockopt 返回与 setsockopt 中设置的不同的 IP_TOS 值

c - 3n+1猜想中的最大循环长度

c - 这段代码有什么作用?内存分配

ios - 调试 - 如何分析 react native 内存使用情况

java - 修复 Android 内存不足问题

c - 整数计算未按预期工作

c++ - 在启动期间崩溃时如何使用 gdb 调试可执行文件?

c++ - STL+内存管理问题

objective-c - 在运行时检测僵尸