日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

C++代碼和可執行程序在x86和arm上的區別介紹_C 語言

作者:zhangrelay ? 更新時間: 2022-09-09 編程語言

從使用上來看,可執行程序肯定是不通用的。

armx86

生成的可執行程序大小都有差異呢。?

但是,如果源碼編譯,如果環境類似,相同的源碼可以直接移植。

例如:如下程序?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;
}

效果一致。?

編譯過程都是:

g++ donut.cpp -o donut

生成文件大小:

arm→13.5 KB (13,856.00 字節)

x86→?16.0 KB (16,384 字節)

很多軟件都支持多平臺,但是類似如下:

這些都是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 的應用程序是正確的選擇。

原文鏈接:https://blog.csdn.net/ZhangRelay/article/details/125813014

欄目分類
最近更新