用标签数据填充 x86_64 指针前十六位?

2024-01-07

由于当前的 x86_64 实现仅能够使用 48 位“虚拟”地址空间来降低 MMU 复杂性,因此前 16 位是否可用于实现安全标签数据。当前的实现是否限制这种使用(即使知道IP和其他段寄存器是完整的六十四位)并将指针的前十六位限制为仅包含虚拟地址而不包含其他数据?


你不能。当前要求前 16 位全部相同(例如,0x0000… or 0xffff…) — 不符合此模式的地址总是会导致错误。未来的版本可能在此范围内具有“真实”地址空间,因此将这些位用于标签并不安全。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用标签数据填充 x86_64 指针前十六位? 的相关文章

  • 大师系统要求

    我们将使用 Virtuoso 来存储 RDF 三重计数一开始将为 1 亿 我需要知道典型的 RAM CPU 磁盘等应该是什么 查询将使用 SPARQL 并且查询会有点复杂 请提供您的意见 Virtuoso 版本 6 x 三元组 四元组 的平
  • 为什么这个“std::atomic_thread_fence”起作用

    首先我想谈一下我对此的一些理解 如有错误请指正 a MFENCE在x86中可以保证全屏障 顺序一致性可防止 STORE STORE STORE LOAD LOAD STORE 和 LOAD LOAD 重新排序 这是根据维基百科 https
  • 通过 C 将线程固定到 cpuset 中的核心

    我有 cgroup cpuset set1 set1有2 5 8 我想将一个进程绑定到该 cpuset 然后将该进程中的一个线程固定到核心 4 cpuset 的名称 线程名称以及我应该将线程绑定到的核心位于 m 配置文件中 是否有任何 C
  • 一条指令可以同时处于两种寻址模式吗?

    我在书中读到了以下内容从头开始编程 处理器有多种不同的访问数据的方式 称为 寻址模式 最简单的模式是立即模式 其中 要访问的数据嵌入在指令本身中 例如 如果我们想将寄存器初始化为 0 而不是给出 计算机要从中读取 0 的地址 我们将指定立即
  • C++ 中的 CPUID 实现

    我想知道这里是否有人有一些可以从任何托管 net 语言引用的 C CPUID 实现的好示例 另外 如果情况并非如此 我是否应该注意 X86 和 X64 之间的某些实现差异 我想使用 CPUID 来获取运行我的软件的机器上的信息 崩溃报告等
  • 为什么 SSE 对齐读取 + 随机播放在某些 CPU 上比未对齐读取慢,而在其他 CPU 上则不然?

    在尝试优化有限差分代码所需的未对齐读取时 我更改了未对齐的负载 如下所示 m128 pm1 mm loadu ps H k 1 进入这个对齐的读取 随机播放代码 m128 p0 mm load ps H k m128 pm4 mm load
  • CPU缓存:两个地址之间的距离是否需要小于8字节才能具有缓存优势?

    这似乎是一个奇怪的问题 假设缓存行的大小为 64 字节 此外 假设 L1 L2 L3 具有相同的缓存行大小 this https stackoverflow com a 15333156 8385554帖子说英特尔酷睿 i7 就是这种情况
  • 为什么不能执行 mov [eax], [ebx] [重复]

    这个问题在这里已经有答案了 我可以做这个 mov eax ebx 和这个 mov eax ebx 甚至这个 mov eax ebx 但不是这个 错误C2415 mov eax ebx 只是wtf 为什么 它与 ptr1 ptr2 相同 为什
  • 为什么 Solaris 汇编器生成的机器代码与 GNU 汇编器在这里不同?

    我为 amd64 编写了这个小汇编文件 对于这个问题来说 代码的作用并不重要 globl fib fib mov edi ecx xor eax eax jrcxz 1f lea 1 rax ebx 0 add rbx rax xchg r
  • 在 x86 Intel VT-X 非根模式下,是否可以在每个指令边界传递中断?

    除了不将中断传送到虚拟处理器的某些正常指定条件 cli if 0 等 之外 客户机中的所有指令实际上都是可中断的吗 也就是说 当传入的硬件中断先传递给 LAPIC 然后传递给处理器时 据说会发生一些内部魔法 将其转换为虚拟中断给来宾 使用虚
  • Visual Studio 2017 上的简单装配程序

    386 model flat c stack 100h printf PROTO arg1 Ptr Byte data msg1 byte Hello World 0Ah 0 code main proc INVOKE printf ADD
  • 近调用/跳转表并不总是在引导加载程序中工作

    一般问题 我一直在开发一个简单的引导加载程序 并在某些环境中偶然发现了一个问题 在这些环境中 此类指令不起作用 mov si call tbl SI Call table pointer call call tbl Call print c
  • Nasm 打印到下一行

    我用 nasm Assembly 编写了以下程序 section text global start start Input variables mov edx inLen mov ecx inMsg mov ebx 1 mov eax 4
  • Intel 64 和 IA-32 上的 MESI 有何意义

    MESI 的要点是保留共享内存系统的概念 然而 对于存储缓冲区 事情就变得复杂了 一旦数据到达 MESI 实现的缓存 下游内存就会保持一致 然而 在此之前 每个核心可能对内存位置 X 中的内容存在分歧 具体取决于每个核心的本地存储缓冲区中的
  • 如何知道寄存器是否是“通用寄存器”?

    我试图了解寄存器必须具备什么标准才能被称为 通用寄存器 我相信通用寄存器是一个可以用于任何用途的寄存器 用于计算 将数据移入 移出等 并且是一个没有特殊用途的寄存器 现在我读到了ESP寄存器是通用寄存器 我猜是ESP寄存器可以用于任何事情
  • 如何在 icarus verilog 中包含文件?

    我知道基本的 include filename v 命令 但是 我试图包含另一个文件夹中的模块 现在 该模块还包括同一文件夹中存在的其他模块 但是 当我尝试在最顶层运行该模块时 出现错误 C Users Dell Desktop MIPS
  • linux x86 汇编语言 sys_read 调用的第一个参数应为 0 (stdin)

    我正在编写一个简单的汇编程序来从标准输入读取 如 scanf 这是我的代码 section bss num resb 5 section txt global start start mov eax 3 sys read mov ebx 0
  • 如何在程序中将自己缝合到自己的尾部,无限循环地封装 64KB 代码段?

    如果指令的顺序执行经过偏移量 65535 则8086将从同一代码段中的偏移量 0 处获取下一个指令字节 接下来的 COM 程序利用这一事实 不断将其整个代码 总共 32 个字节 缝合到自己的尾部 环绕在 64KB 代码段中 你可以称之为二元
  • 是否可以在VM内使用VMX CPU指令?

    VM guest 内部的进程是否有可能使用 VMX AMD V VT x CPU 指令 然后由外部 VMM 处理而不是直接在 CPU 上处理 Edit 假设外部VM使用VMX本身来管理其虚拟客户机 即它在Ring 1中运行 如果可能的话 是
  • 是否可以在Linux上将C转换为asm而不链接libc?

    测试平台为Linux 32位 但也欢迎 Windows 32 位上的某些解决方案 这是一个c代码片段 int a 0 printf d n a 如果我使用 gcc 生成汇编代码 gcc S test c 然后我会得到 movl 0 28 e

随机推荐

  • R - ggplot2 将日期作为 x 轴字符的问题

    我是 R 和 ggplot2 的新手 我不知道如何解决我尝试创建的图表的问题 这是图表目前的样子 我在 x 轴上有日期 但由于某种原因 它们不适用于年份 而只能按月和日排序 这是我正在使用的数据的屏幕截图 正如您所看到的 这里的顺序看起来是
  • 合并 PHP 关联数组

    我有多个arrays我正在努力merge他们 想象一下下面的代码 arr1 a array a b c arr2 a array d e f arr3 a array g h i arr1 b array a b c arr2 b arra
  • Java 数组存储值

    我试图存储在 for 循环结构上输入的值以供以后使用 但它只能在 for 循环结构内部被识别 我需要程序的其余部分识别存储的值 但不知何故我收到错误 找不到符号 public class TryArray public static voi
  • 将 2 列中的精确串联值分组?

    我有一个包含 2 列纬度和经度的表 并且想要对完全匹配进行分组 just tandem2 列上的值 表行 Points Table time lat long 113 2 1 5 8 114 2 1 5 6 Set as Group 115
  • IE7 导致“文本 - 空文本节点”的原因

    我正在使用 IE Web 开发人员工具栏来解决问题 列表项下方出现空白 我无法从逻辑上找出原因 使用网络开发工具栏 我看到在下面的示例 1 中 文本 Google 下方输出了一个 文本 空文本节点 具有讽刺意味的是 在第二个例子中 在 Go
  • Stylecop 配置文件在哪里?

    我已经通过 NuGet 安装了 Stylecop 我希望禁用一些规则 并且我知道这可以通过我读到的配置文件来完成 但是 我在任何地方都找不到该文件 并且似乎很少有文档描述在何处创建该文件 我该如何制作文件 Edit 由于这个问题几年后似乎仍
  • 如何禁用elasticsearch中的自动索引创建?

    我需要禁用一个索引的自动索引创建 但需要允许另一个索引 如何禁用 elasticsearch 仅针对特定索引自动创建索引 我试过 action auto create index false 在elasticsearch yml文件中 但它
  • 如何在grails中安装和使用httpbuilder插件

    如何在 Grails 中安装和使用 httpbuilder 插件 将 httpbuilder 0 5 1 添加到应用程序依赖项将导致错误 特别是 您会收到如下错误 java lang LinkageError loader constrai
  • 如何在 Angular js 中设置 XSRF 保护?

    我正在使用 angularJs 资源和球衣休息 API 开发一个应用程序 我想在我的项目中实现xsrf保护 请建议一个更好的例子 我这里有一个例子 但它使用 ColdFusion http www bennadel com blog 256
  • 有什么命令可以显示 Tomcat 下当前正在运行多少个应用程序?

    想知道有什么命令行工具可以显示 Tomcat 状态吗 您可以在应用程序之外使用大多数管理器应用程序 URL 因此 要生成正在运行的应用程序的列表 您可以发出 wget 在 Linux 中 命令 wget http hostname port
  • Mod 重写尾部斜杠问题

    关于这个主题似乎没有太多信息 所以我将概述我的具体问题 然后也许我们可以将问题和答案塑造成更通用的东西 我有这个重写规则 RewriteEngine On RewriteBase bookkeepers RewriteCond REQUES
  • Spring 3.1 Hibernate 4 继承异常 [无法转换为 org.hibernate.mapping.RootClass]

    嗨 我刚刚开始使用 Spring Hibernate4 和 maven 基本上我的类层次结构是 HUmanMicroTask 从 MicroTask 扩展 将来可能还会有其他几个从 MicroTask 扩展的类 我试图为每个具体类一个表 这
  • Angular-ngRoute:强制 ng-view 内容,之后允许导航

    在使用 ngRoute 时 我想配置 Angular 以便 ng view 的当前内容保留为当前路由的内容 并允许用户导航到不同的路由 然后渲染各自的模板 Plunker http plnkr co edit z4qGEh7u8OsbnYU
  • ImportError:没有名为“Tkinter”的模块[重复]

    这个问题在这里已经有答案了 由于某种原因 我无法使用Tkinter or tkinter 在 Python 3 模块上 在 python shell 中运行以下命令后 import Tkinter 或者在 Python 3 中 import
  • Android O 后台服务限制

    In the 迁移指南 https developer android com preview features background html migration建议我们使用NotificationManager startService
  • android XML 布局中的 ImageView 具有layout_height =“wrap_content”,具有顶部和底部填充

    我有一个垂直的 LinearLayout 其中包含 ImageView 和一些其他布局和视图
  • 如何在 JavaScript 中将整数格式化为特定长度?

    我在 Javascript 中有一个数字 我知道它小于 10000 并且也是非负的 我想将其显示为四位数字 并带有前导零 还有比下面这个更优雅的吗 if num lt 10 num 000 num else if num lt 100 nu
  • HMS感知服务-集成SDK后返回错误码10011

    我集成了HMS Core Awareness SDK 然后调用getWeatherByDevice接口查询天气数据 出现错误 com huawei hms kit awareness b HHG Error Code 10005 描述 障碍
  • 通过环境变量 docker-compose redis 密码

    我正在尝试使用传递我的 redis 密码docker compose通过环境变量 但它给了我错误 这是我的一部分docker compose yml与 Redis 图像 redis image redis container name re
  • 用标签数据填充 x86_64 指针前十六位?

    由于当前的 x86 64 实现仅能够使用 48 位 虚拟 地址空间来降低 MMU 复杂性 因此前 16 位是否可用于实现安全标签数据 当前的实现是否限制这种使用 即使知道IP和其他段寄存器是完整的六十四位 并将指针的前十六位限制为仅包含虚拟