究竟是什么触发了内存读取访问冲突异常硬件/操作系统?

问题描述

考虑一个表示 3 字节无符号整数的自定义数据结构。 在小端汇编中,可以简单地通过双字指针将 4 个字节加载到寄存器中,例如,对 3 个字节的整数执行加法,将低位字存储在内存地址“x”处,将结果右移 16 并存储内存地址 x + 2 处的低字节。 加载的较慢的非未定义行为版本是首先将寄存器“​​a”清零,将低位字加载到寄存器“a”,将第三个字节加载到寄存器“b”,将“b”左移 16 和或将“a”和“b”注册到另一个寄存器中。

所以现在让我们假设给定的 3 字节整数位于程序空间或数据段的“边缘”;直觉上,你会通过将整数地址解引用为双字来非法访问内存,不是吗?或者更一般地说:读取内存时何时会发生内存访问冲突;它只是正在考虑的基地址还是(baseAddress + lengthInBytes)?搜索了数周的答案,我还没有找到答案,这就是为什么我要问社区...

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...