温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C++代码和可执行程序在x86和arm上的区别是什么

发布时间:2022-07-18 13:44:15 来源:亿速云 阅读:260 作者:iii 栏目:开发技术

本文小编为大家详细介绍“C++代码和可执行程序在x86和arm上的区别是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“C++代码和可执行程序在x86和arm上的区别是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

armx86

C++代码和可执行程序在x86和arm上的区别是什么

C++代码和可执行程序在x86和arm上的区别是什么

生成的可执行程序大小都有差异呢。 

但是,如果源码编译,如果环境类似,相同的源码可以直接移植。

例如:如下程序????donut.cpp

#include <stdio.h>
#include <math.h>
#include <cstring>
#include <unistd.h>
 
int main() {
    float A = 0, B = 0;
    float i, j;
    int k;
    float z[1760];
    char b[1760];
    printf("\x1b[2J");
    for (;;) {
        memset(b, 32, 1760);
        memset(z, 0, 7040);
        for (j = 0; j < 6.28; j += 0.07) {
            for (i = 0; i < 6.28; i += 0.02) {
                float c = sin(i);
                float d = cos(j);
                float e = sin(A);
                float f = sin(j);
                float g = cos(A);
                float h = d + 2;
                float D = 1 / (c * h * e + f * g + 5);
                float l = cos(i);
                float m = cos(B);
                float n = sin(B);
                float t = c * h * g - f * e;
                int x = 40 + 30 * D * (l * h * m - t * n);
                int y = 12 + 15 * D * (l * h * n + t * m);
                int o = x + 80 * y;
                int N = 8 * ((f * e - c * d * g) * m - c * d * e - f * g - l * d * n);
                if (22 > y && y > 0 && x > 0 && 80 > x && D > z[o]) {
                    z[o] = D;
                    b[o] = ".,-~:;=!*#$@"[N > 0 ? N : 0];
                }
            }
        }
        printf("\x1b[H");
        for (k = 0; k < 1761; k++) {
            putchar(k % 80 ? b[k] : 10);
            A += 0.00004;
            B += 0.00002;
        }
        usleep(30000);
    }
    return 0;
}

C++代码和可执行程序在x86和arm上的区别是什么

效果一致。 

编译过程都是:

g++ donut.cpp -o donut

生成文件大小:

arm&rarr;13.5 KB (13,856.00 字节)

x86&rarr; 16.0 KB (16,384 字节)

很多软件都支持多平台,但是类似如下:

C++代码和可执行程序在x86和arm上的区别是什么

这些都是x86案例,并不支持arm。

C++代码和可执行程序在x86和arm上的区别是什么

支持arm会单独列出来。 

ARM 与 X86 的概述

X86 指 Intel 处理器家族,从 8086 开始,随后发布 80186、80286、80386、80486、Pentium 和 Xeon 等。X86 中的 86 表示其早期处理器的最后 2 位数字。

ARM 最初由 ARM Holdings 以 Acorn RISC Machine 起家,开发了 ARM、ARM2 32 位处理器,其晶体管数量最少,功耗/散热更低。 X86 主导台式机、工作站、笔记本电脑和服务器市场,最初的芯片是 16 位,后来的版本是 32 位和 64 位。

ARM 在速度和长电池寿命方面超过了英特尔处理器。 与 Apple 和 VLSI 合作推出了一家新公司 Advanced RISC Machines。 ARM 处理器广泛用于移动设备。

X86和ARM是占据CPU市场的两大处理器,各有优劣。

它们可以在某些关键方面进行比较,例如它们采用的指令集、功耗、软件和应用程序。

指令系统

ARM 处理器属于精简指令集计算 (RISC) 架构。
指令集架构 (ISA) 定义了处理指令、访问内存、管理 IO 的方式,并将处理器与程序员连接起来以生成高效的代码。
RISC 是同类中最新的一种,其中活动被拆分(简化)为简单指令,一条指令在一个时钟周期内执行,数百万条此类指令在一秒钟内以更快的速度处理。
虽然它必须执行多条指令,但由于其强大的处理器和流水线,整体速度更高。

X86 处理器遵循复杂指令集计算 (CISC) 架构。
复杂的指令在多个时钟周期中的单个步骤中处理。它使用可用内存在一个步骤中处理多条指令,更注重处理效率。
它使用更多的寄存器来完成多个任务,实现了高吞吐量和性能。

能量消耗

ARM 处理器一次执行一条指令,它需要较少的硬件。与其他处理器相比,该处理器使用的寄存器没有更少。因此,它消耗的电量更少,使用该处理器的设备的电池寿命更长。它还产生较少的热量。 ARM 使用更多内存来处理多条指令。即使使用 GPU 和其他外围设备,它也会消耗 5W 的功率。

X86 处理器更注重性能和高吞吐量,它使用更多的寄存器来实现它。因此,这里的功耗和热量产生更多。 Intel i7 是一款高端处理器,功耗为 130w。
ARM 处理器因其较低的功耗和较长的电池寿命而成为移动设备的首选,这对于为任何应用程序选择 CPU 至关重要。
始终连接到可靠电源的设备无需担心功耗,因此台式机、笔记本电脑和服务器使用 X86 以提高效率,但代价是高功耗。

软件

配备 ARM Process 的设备可在专为 ARM 开发的 Android 操作系统上运行。台式机、笔记本电脑和服务器在为 X86 处理器开发的 Unix、Linux 和 Windows 等操作系统上运行。
一些接口软件允许任何操作系统在任何设备上运行,但基于 ARM 的系统在为 X86 开发的某些操作系统中运行存在限制。
由于 ARM 的流行,微软发布了新版本的 windows for ARM。

应用

处理器的选择取决于计算机将用于的应用程序。对于 IOT 应用,ARM 处理器是正确的选择,因为嵌入式系统需要连接到所有设备,而且它应该有点小。
如果某些应用需要具有成本节约动机的单板计算机,ARM 是最佳选择。对于不需要特殊显示器的节俭应用,ARM 是理想的选择。需要强大平台 X86 的应用程序是正确的选择。

读到这里,这篇“C++代码和可执行程序在x86和arm上的区别是什么”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI