国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ARM處理器架構的Thumb指令集中關于IT指令的使用

這篇具有很好參考價值的文章主要介紹了ARM處理器架構的Thumb指令集中關于IT指令的使用。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

在ARMv6T2以及ARMv7架構擴展了Thumb指令集,其中加入了 IT 指令,進一步增強了代碼的緊湊性。

Thumb中有一個比較有意思的指令——IT,這條指令用于根據指定的條件來執(zhí)行后面相繼的四條指令。當然,Thumb-2中大部分算術邏輯指令都含有帶條件執(zhí)行的特征,不過Thumb-2是32位的。如果你需要更緊湊的指令,那么使用Thumb結合ThumbEE來做帶條件的指令執(zhí)行還是不錯的選擇。Thumb本身不具備帶條件指令執(zhí)行的特性。

IT指令的描述為:IT{<x>{<y>{<z>}}} <firstcond>

其中,<x> 表示第二條指令的條件;<y> 表示第三條指令的條件;<z> 表示第四條指令的條件。<firstcond> 是條件操作數,表示第一條指令的條件。

<x>、<y><z> 的標識其實就兩種符號——TE。T 表示 Then,表示相應的指令所滿足的條件與 <firstcond> 一致;E 表示 Else,表示相應的指令所滿足的條件與 <firstcond> 完全相反。因此,對于第一條指令而言,總是為 T 的,因此不需要在 IT 指令中顯示給出,它直接對應于 <firstcond> 的條件。

另外,在 IT塊 中不能再使用 IT 指令。即,相繼的四條指令中不允許再出現(xiàn) IT 指令。

下面給出一些示例代碼:

//
//  hi.s
//  test
//
//  Created by zenny_chen on 13-5-8.
//  Copyright (c) 2013年 zenny_chen. All rights reserved.
//

.text
.align 4

.globl _Thumb2Test, _Thumb2Test2

.thumb

.thumb_func
_Thumb2Test:

    eor     r1, r1, r1
    eor     r2, r2, r2
    eor     r3, r3, r3
    eor     r12, r12, r12

    cmp     r1, #0
    itete   eq
    moveq   r1, #10
    movne   r2, #20
    moveq   r3, #30
    movne   r12, #50

    stmia   r0, {r1-r3, r12}

    bx      lr

.thumb_func
_Thumb2Test2:

    mov     r1, #1
    eor     r2, r2, r2
    eor     r3, r3, r3
    eor     r12, r12, r12

    cmp     r1, #0
    ittet   gt
    movgt   r1, #10
    movgt   r2, #20
    movle   r3, #30         // 這里只能用le(表示小于等于),而不能用lt(表示小于)
    movgt   r12, #50

    stmia   r0, {r1-r3, r12}

    bx      lr

下面是調用上述 Thumb2TestThumb2Test2 函數的Objective-C源文件。由于基于iOS系統(tǒng),因此會有一些框架性的代碼~

//
//  ViewController.m
//  test
//
//  Created by zenny_chen on 13-5-8.
//  Copyright (c) 2013年 zenny_chen. All rights reserved.
//
 
#import "ViewController.h"
 
@interface ViewController ()
 
@end
 
extern void Thumb2Test(int p[4]);
extern void Thumb2Test2(int p[4]);
 
@implementation ViewController
 
- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
     
    int a[4];
    Thumb2Test(a);
    NSLog(@"a[0] = %d, a[1] = %d, a[2] = %d, a[3] = %d", a[0], a[1], a[2], a[3]);
     
    Thumb2Test2(a);
    NSLog(@"a[0] = %d, a[1] = %d, a[2] = %d, a[3] = %d", a[0], a[1], a[2], a[3]);
}
 
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
 
@end

大家可以嘗試編譯運行,看看輸出什么結果~??文章來源地址http://www.zghlxwxcb.cn/news/detail-728069.html

到了這里,關于ARM處理器架構的Thumb指令集中關于IT指令的使用的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • ARM架構版本及處理器系列詳細介紹

    ARM是一家微處理器行業(yè)的知名企業(yè),該企業(yè)設計了大量高性能、廉價、耗能低的RISC (精簡指令集)處理器,它只設計芯片而不生產。ARM的經營模式在于出售其知識產權核(IP core),將技術授權給世界上許多著名的半導體、軟件和OEM廠商,并提供技術服務。 ? ? ? ? ARM的版本

    2024年02月16日
    瀏覽(91)
  • 『ARM』和『x86』處理器架構解析指南

    『ARM』和『x86』處理器架構解析指南

    如果問大家是否知道 CPU,我相信不會得到否定的答案,但是如果繼續(xù)問大家是否了解 ARM 和 X86 架構 ,他們的區(qū)別又是什么,相信 可能部分人就會啞口無言 了 目前隨著深度學習、高性能計算、NLP、AIGC、GLM、AGI 的技術迭代,助力大模型快速發(fā)展,對于 多元算力結合(CPU+GP

    2024年02月08日
    瀏覽(123)
  • 『模型部署』神經網絡模型部署[運行時|指令執(zhí)行|處理器架構|TensorRT]

    『模型部署』神經網絡模型部署[運行時|指令執(zhí)行|處理器架構|TensorRT]

    『模型部署』神經網絡模型部署[運行時|指令執(zhí)行|處理器架構|TensorRT] 輔助文檔-本教程配套代碼,以及更多范例和文檔 :https://github.com/NVIDIA/trt-samples-for-hackathon-cn/tree/master/cookbook Polygraphy:深度學習推理原型設計和調試工具包 介紹個工具Torch.Profiler,使用它來確定你的性能瓶頸

    2024年02月11日
    瀏覽(50)
  • 【軟件工具】 Linux 中的 ARM 和 AMD 兩種不同的處理器架構簡介

    Linux 中的 ARM 和 AMD 兩種不同的處理器架構。ARM 和 AMD 架構的主要區(qū)別在于它們的設計哲學、性能特性、能效和主要應用場景。以下是一些關鍵差異: 架構設計 : ARM(Advanced RISC Machine) :ARM 架構基于 RISC(精簡指令集計算)原理。它使用更少的指令和簡化的指令集,這有助

    2024年04月10日
    瀏覽(89)
  • 2023年Arm最新處理器架構分析——X4、A720和A520

    2023年Arm最新處理器架構分析——X4、A720和A520

    上一篇文章我們介紹了Arm的Cortex-X1至Cortex-X3系列處理器,2023年的5月底,Arm如期發(fā)布了新一年的處理器架構,分別為超級大核心Cortex-X4,大核心A720和小核心A520。在智能手機行業(yè),Arm始終保持每年一迭代的處理器架構升級節(jié)奏,讓用戶可以不斷體驗到最先進的產品設計。本文主

    2024年02月16日
    瀏覽(23)
  • ARM處理器概述

    RISC處理器和CISC處理器 首先了解一下兩種處理器名字: RISC(Reduced Instruction Set Computer): 精簡指令集 處理器 與之相對應的是: CISC(Complex Instruction Set Computer): 復雜指令集 處理器 顧名思義,RISC比CISC更加簡單,那么對于處理器來說什么能稱為簡單呢?可以聯(lián)想為生活中可

    2024年02月13日
    瀏覽(92)
  • 除法的效率 arm處理器

    除法的效率 性能結論: 除法:545ms 乘法:93ms 差了3倍 代碼: 測試結果 : void fun(Pack1* restrict in, Pack2* restrict out) ; __restrict__ 申明該指針為唯一的訪問該內存的指針 優(yōu)化成果: 時間優(yōu)化為原來的82% 指令優(yōu)化為74% cache miss 沒有變化 優(yōu)化對比 測試平臺 MTK arm天機 8000

    2024年02月10日
    瀏覽(85)
  • MIPS指令集處理器設計(支持64條匯編指令)

    MIPS指令集處理器設計(支持64條匯編指令)

    一、題目背景和意義 二、國內外研究現(xiàn)狀 (略) (1) .mips 基礎 指令集格式 總結 MIPS是(Microcomputer without interlocked pipeline stages)[10]的縮寫,含義是無互鎖流水級微處理器。MIPS 是最早、最成功的RISC處理器之一[11],源于Stanford 大學的John Hennessy 教授的研究成果。(Hennessy 于1984年在

    2024年02月07日
    瀏覽(25)
  • DP讀書:鯤鵬處理器 架構與編程(八)3.1鯤鵬處理器片上系統(tǒng)與Taishan處理器內核架構

    DP讀書:鯤鵬處理器 架構與編程(八)3.1鯤鵬處理器片上系統(tǒng)與Taishan處理器內核架構

    處理器體系結構,是一個偏底層的內容,但這是任一計算機系統(tǒng)的底層。 系統(tǒng)的性能、生態(tài)和功能很大程度上都依賴于計算機系統(tǒng)底層——處理器體系結構。任何一個系統(tǒng)程序員、固件設計者、應用程序員 甚至 服務器管理員,如果想要充分利用現(xiàn)代高性能處理器的硬件性能

    2024年02月12日
    瀏覽(20)
  • [ARM 匯編]進階篇—異常處理與中斷—2.4.2 ARM處理器的異常向量表

    [ARM 匯編]進階篇—異常處理與中斷—2.4.2 ARM處理器的異常向量表

    異常向量表簡介 在ARM架構中,異常向量表是一組固定位置的內存地址,它們包含了處理器在遇到異常時需要跳轉到的處理程序的入口地址。每個異常類型都有一個對應的向量地址。當異常發(fā)生時,處理器會自動跳轉到對應的向量地址,并開始執(zhí)行異常處理程序。 異常向量表

    2024年02月09日
    瀏覽(89)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包