中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++代碼和可執行程序在x86和arm上的區別是什么

發布時間:2022-07-18 13:44:15 來源:億速云 閱讀:257 作者: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

仙游县| 阜城县| 湘潭县| 抚宁县| 乌拉特前旗| 彰化县| 东方市| 余庆县| 牡丹江市| 陇川县| 定襄县| 沂水县| 洱源县| 翼城县| 荆门市| 谷城县| 上思县| 湛江市| 阳春市| 铜陵市| 盘锦市| 竹北市| 华阴市| 莒南县| 古交市| 资中县| 阿拉善右旗| 南京市| 北碚区| 建平县| 隆安县| 微博| 新干县| 介休市| 永兴县| 灵寿县| 华蓥市| 黄龙县| 峨山| 江都市| 依安县|