编译器与平台相关性

2023-11-11

    每种处理器都可能会有自己的汇编语言编译器,而对于同一款处理器来说,针对不同的平台(比如 Windows 和 Linux) ,也会有不同版本的汇编语言编译器。

    理论上,不管用的是什么操作系统,Windows 也好,DOS 也好,Linux 也好,只要是针对Intel 处理器开发的软件,底层的机器指令代码都是相同的,没有理由说某个软件只能在    Windows 操作系统上运行,而不能在 Linux 上运行。事实上,仅仅具有一致的底层机器代码还远远不够。别忘了,这些代码要被处理器来依次执行,首先需要加载到内存并实施重定位。在这种情况下,除了那些真正用于做事的机器指令之外,软件还需要一些额外的信息来告诉操作系统,如何加载自己。更有甚者,Windows 会建议为它开发的软件应当包含一些图标或者图片。这就是为什么每个 Windows 软件都会显示一个图标的原因。
    在这种情况下,因为每种操作系统都会根据自身的工作特点,定义自己所能识别的软件可执行文件格式,而缺乏通用性,尽管在这些软件里,真正用于计算 5+6 的机器指令都一模一样。

《x86汇编语言:从实模式到保护模式》3.2.1

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

编译器与平台相关性 的相关文章

  • 即使 RS 未完全满,是否也可能发生 RESOURCE_STALLS.RS 事件?

    的描述RESOURCE STALLS RSIntel Broadwell 的硬件性能事件如下 此事件对由于缺少合格条目而导致的停顿周期进行计数 在保留站 RS 这可能是由于 RS 溢出造成的 或者 由于 RS 阵列写入端口分配而导致 RS
  • Intel 在哪里记录了 ModR/M 字节中扩展寄存器 (R8-R15) 的编码?

    我用的是官方最新的 英特尔 64 和 IA 32 架构软件开发人员手册合并卷 1 2A 2B 2C 2D 3A 3B 3C 3D 和 4 作为了解x86 64 ISA的机器级编码的参考 第 2 卷第 2 1 3 节中提供的 ModR M 和
  • Intel MSR 每线程频率缩放

    我正在扩展 Linux 内核 以便控制某些线程的频率 当它们被调度到核心 任何核心 时 通过将正确的 p 状态写入寄存器来更改核心的频率IA32 PERF CTL 如英特尔手册中建议的那样 但是 当调度具有不同 自定义 频率的不同线程时 似
  • Windows 10 下多核处理器上的 QueryPerformanceCounter 行为不稳定

    在 Windows 下 我的应用程序使用QueryPerformanceCounter and QueryPerformanceFrequency 来执行 高分辨率 时间戳 自 Windows 10 以来 到目前为止仅在 Intel i7
  • 使用 AVX 一次性进行 4 个水平双精度求和

    该问题可以描述如下 Input m256d a b c d Output m256d s a 0 a 1 a 2 a 3 b 0 b 1 b 2 b 3 c 0 c 1 c 2 c 3 d 0 d 1 d 2 d 3 到目前为止我所做的工作
  • L2 取指未命中率远高于 L1 取指未命中率

    我正在生成一个综合 C 基准测试 旨在通过以下 Python 脚本导致大量指令获取丢失 usr bin env python import tempfile import random import sys if name main fun
  • 启用/禁用硬件锁定消除

    我使用的是 glibc 2 24 版本 它包含用于使用事务同步扩展 例如 xbegin 和 xend 实现 pthread mutex lock 的锁省略路径 硬件应该支持锁省略hle我认为CPU标志是为了硬件锁消除 我使用的处理器是采用
  • 为什么存在 REP LODS AL 指令?

    换句话说 在任何情况下我可能需要这个指示吗 根据英特尔指令手册 该指令的作用如下 将 E CX 字节从 DS E SI 加载到 AL 以 NASM 为例 section data src db 0 1 2 3 section code mo
  • Intel芯片上的半精度浮点运算

    Intel芯片上可以进行半精度浮点运算吗 我知道如何加载 存储 转换半精度浮点数 1 但我不知道如何在不转换为单精度浮点数的情况下对它们进行加 乘 1 https software intel com en us articles perf
  • 英特尔编译器值得吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 非常简单 是英特尔编译器 http software intel com en us intel compilers 值得入手吗 我主要从事系统
  • 如何将两个 SSE 寄存器加在一起

    我有两个 SSE 寄存器 128 位是一个寄存器 我想将它们相加 我知道如何在其中添加相应的单词 例如我可以这样做 mm add epi16如果我在寄存器中使用 16 位字 但我想要的是类似的东西 mm add epi128 不存在 它将使
  • 有没有办法判断SMM中断发生了?

    对于某些以编程方式定义的间隔 有没有办法确定SMM https en wikipedia org wiki System Management Mode当前核心上是否发生了条目 从 Nehalem 开始 MSR 寄存器 0x 34 称为MS
  • 64位汇编介绍

    我正在寻找一篇介绍 Intel 64 位处理器和汇编的文章 x64 寄存器列表 命令语法等 供熟悉 32 位汇编的程序员使用 有点像 64 位处理器的 新增功能 The Intel 64 和 IA 32 架构软件开发人员手册 http ww
  • Intel HD 3700 linux 的 Java 8 Swing 渲染问题

    我在 Kubuntu 18 04 中用 java 8 update 181 开发了一个应用程序 在我的开发 PC 中 我拥有配备英特尔 HD Graphics 530 的英特尔 i3 6100 所有图形均使用 swing 完成 并且通过此硬
  • 循环地址对齐如何影响 Intel x86_64 上的速度?

    我发现相同的 C 代码编译为完全相同的机器指令但位于不同对齐的地址时性能下降了 15 当我的小主循环从 0x415220 开始时 它比从 0x415250 开始时要快 我在 Intel Core2 Duo 上运行它 我在 x86 64 Ub
  • 写组合缓冲区位于哪里? x86

    Write Combine 缓冲区在物理上是如何连接的 我见过说明许多变体的框图 L1 和内存控制器之间 CPU 的存储缓冲区和内存控制器之间 CPU 的 AGU 和 或存储单元之间 它依赖于微架构吗 写缓冲区在不同的处理器中可以有不同的目
  • 存储缓冲区是否保存现代 x86 上的物理地址或虚拟地址?

    现代 Intel 和 AMD 芯片大存储缓冲区 https stackoverflow com a 54880249 149138在提交到 L1 缓存之前缓冲存储 从概念上讲 这些条目保存存储数据和存储地址 对于地址部分 这些缓冲区条目是否
  • 英特尔 SGX 开发者许可和开源软件

    是否可以获得许可的开发人员证书 用于在生产模式下签署经过安全审查 社区开发的开源 SGX 软件二进制文件 并将其发布到 apt 或 rpm 等开源存储库上 我刚刚询问了Intel SGX团队 他们说只有经过验证的供应商才能获得证书并在生产模
  • 在 MacOS 10.6 (Snow Leopard) 上安装 Intel 的 TBB 3.0 框架

    我在 MacOS 系统上安装英特尔线程构建模块 TBB 3 0 作为框架时遇到了一些问题 有谁知道一个好的教程吗 我尝试过使用 MacPorts 它有 TBB 2 2 它安装了我需要的所有库 但我没有得到框架 另外 Intel 网站上似乎没
  • 哪种架构称为非均匀内存访问(NUMA)?

    根据wiki http en wikipedia org wiki Non uniform memory access 非均匀内存访问 NUMA 是一种用于多处理的计算机内存设计 其中内存访问时间取决于相对于处理器的内存位置 但尚不清楚它是

随机推荐

  • varest插件使用

  • 数据结构学习——顺序栈和链式栈的简单实现和解析(C语言版)

    数据结构 栈的简单解析和实现 一 概念 二 入栈 push 三 出栈 pop 四 顺序栈简单实现 1 进栈操作 2 出栈操作 一 概念 本篇所讲解的栈和队列属于逻辑结构上的划分 逻辑结构分为线性结构 非线性结构 线性结构 有且仅有一个开始节
  • GD32E230芯片无法识别

    GD32E230芯片无法识别 GD32E230板子回来后 开始接上jlink烧录 但是板子第一次能烧录然后第二次就不行的了 换了好几个板子都是 搞了好几个小时 整个人都快崩溃了 后面也是经过不断的尝试 终于搞好了 总结了一下 主要要注意的问
  • Qt的connect槽函数

    一 connect 函数的不同参数形式 以及其区别 优略 除2 未知 之外 总体分为三种形式 1 3信号和槽转为字符串形参的connect函数 4 5 6 7 8信号和槽转为可调用对象的connect函数 9转到槽函数 1 将信号连接到另一
  • 视觉算法工程师面试问题集锦,从基础到进阶,会介绍细节,持续更新中......

    引言 简历上写项目的流程 项目背景是什么 应用场景在什么地方 目的是什么 创造了什么价值 你做了什么事情 遇到困难时 又是怎么解决的 面试需要准备的内容 一 项目描述与项目细节提问 主要描述项目背景 项目实现的功能与方法流程等 面试官会针对
  • 基于STM32的OLED屏显示AHT20采集的温湿度数据

    文章目录 一 实现温湿度数据采集并通过串口显示 二 实现将温湿度采集数据显示到OLED屏 1 代码下载 2 部分代码的编写 3 编译并烧录 4 运行结果 三 小结 四 参考链接 本实验使用的工具 STM32野火mini开发板 AHT20温湿
  • mysql没有写入权限_解决Errcode: 13——mysql写文件权限问题

    mysql没有写入权限 解决Errcode 13 mysql写文件权限问题 一 问题 二 权限错误 Errcode 13 解决方法 三 原理 一 问题 在数据库中select into outfile home mysql data sql
  • Three.js入门之做一个简单的3D场景内添加标点的功能

    什么是Three js 百度百科上是这么说的 Three js是JavaScript编写的WebGL第三方库 提供了非常多的3D显示功能 运行在浏览器中的 3D 引擎 你可以用它创建各种三维场景 包括了摄影机 光影 材质等各种对象 你可以在
  • 数据结构第一次上机 第一章

    数据结构第一次上机 第一章 实验题2 常见算法时间函数的增长趋势分析 目的 理解常见算法时间函数的增长情况 内容 编写一个程序exp1 2 cpp 对于1 n的每个整数n 输出log2 n n Alt 41420出根号 n nlog2 n
  • 20050621:松一口气

    今天把业务日志的数据 恢复 上去了 不管怎么样 X姐放了一罐椰奶在我桌子上 我猜大概不会收到投诉了 因为这事情她也有责任 从某种意义上说是我帮她 摆平 了 但是下午X姐的本性又露出来了 不停的冒一些点子出来 客户总是这样 喜欢出些点子 并暗
  • ARTS挑战打卡第十周

    Algorithm 一周至少一道算法题 Review 阅读并点评至少一篇英文技术文章 Tip 学习至少一个技术技巧 总结和归纳在日常工作中所遇到的知识点 Share 分享一篇有观点和思考的技术文章 01 Algorthm https lee
  • 什么是面向对象

    面向对象 定义 面向对象 Object Oriented 是软件开发方法 一种编程范式 对象来自某一个类 同时又给类赋值而实例化 面向对象编程中执行一个功能的代码叫方法 method 举例 作为团队负责人 分管好各个部门的负责人就行 不需要
  • 【TensorFlow】激活函数(Activation Functions)原理解析(十二)

    神经网络结构的输出为所有输入的加权和 这导致整个神经网络是一个线性模型 如果将每一个神经元的输出通过一个非线性函数 那么整个神经网络的模型也就不再是线性的了 使得神经网络可以更好地解决较为复杂的问题 这个非线性函数也就是激活函数 神经网络中
  • elementUI一条el-form-item控制两个必填项

    实现效果 申请日期是日期跟时段拼接的
  • Qt 文件操作

    文件操作是应用程序必不可少的部分 Qt 作为一个通用开发库 提供了跨平台的文件操作能力 Qt5 新增加了一个QFileDevice类 途中所涉及的类及其用途简要说明如下 QFlie 访问本地文件或者嵌入资源 QTemporaryFile 创
  • 动态规划之在二叉树中使用DP

    二叉树染色 题目描述 文章目录 二叉树染色 题目描述 详细思路 个人走的弯路 可略 正确思路 代码实现 传送门 小扣有一个根结点为 root 的二叉树模型 初始所有结点均为白色 可以用蓝色染料给模型结点染色 模型的每个结点有一个 val 价
  • Python爬虫(一):学习路线

    Python爬虫一 学习路线 前言 打铁还需自身硬 前置要求 掌握Python基础知识 知识点 案例 为驱动 第一阶段 爬虫核心 爬虫的前导知识 爬虫网络请求模块 uellib requests 数据解析 正则 xpath bas4 第二阶
  • CentOS6.5菜鸟之旅:文件权限详解

    一 前言 Linux下所有资源 设备均被视作文件来操作 而文件权限则是决定用户可各文件操作的范围 无论是平时使用Linux 还是写程序均涉及这方面 以下为个人学习的整理 供以后查阅 二 三种权限 1 普通权限 权限 文件 目录 r 读权限
  • 深度学习下的医学图像分析

    转 https www leiphone com news 201706 xwSoWmhNgkn34iGS html https www leiphone com news 201706 UvZxrlbedfT7Meid html http
  • 编译器与平台相关性

    每种处理器都可能会有自己的汇编语言编译器 而对于同一款处理器来说 针对不同的平台 比如 Windows 和 Linux 也会有不同版本的汇编语言编译器 理论上 不管用的是什么操作系统 Windows 也好 DOS 也好 Linux 也好 只