色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【RISC-V】li指令

_light ? 來源:_light ? 作者:_light ? 2022-11-18 10:12 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

RISC-V中有這樣一條偽指令:

li a0, immediately

可以將任意的32位數據或者地址加載到指定的寄存器

在 RV32I中,它擴展到 lui 和/或 addi

li 何時擴展為 lui 或者 addi呢?又何時擴展為lui 和 addi呢?

我們觀察lui 和 addi 的指令碼即可得出結果

在這里插入圖片描述

在這里插入圖片描述

由上圖可知,lui加載的立即數為高20位,addi加載的立即數為低12位

由此得出結論

  • li 加載的立即數范圍為:0~4096 時,會擴展成 addi 指令

    li a0, immediately ? addi a0, x0, imme

  • li 加載的立即數范圍超過4096時,會擴展成 lui 指令addi 指令

    li a0, immediately 擴展成

    1、lui a0, (immediately >> 12)

    2、addi a0, a0, (immediately & 0xFFF)

  • li 加載的立即數范圍超過4096時,并且低12位為0,會擴展成 lui 指令

    li a0, immediately

    擴展成

    lui a0, (immediately >> 12)


接上文,觀察 lui指令 、addi指令 會得到這個結果:lui指令加載的立即數為無符號,無需注意。addi指令加載的為有符號數,這個需要考慮一下立即數的符號位

假如我們要加載大立即數到指定的寄存器,需要考慮兩種情況

1、第11位為0

第11位為0,則指令:li a0, immediate 會直接擴展成:

lui   a0,  immediate >> 12
addi  a0, a0, (immediate & 0xFFF)

2、第11位為1

第11位為1,此時 li a0, immediate 就不會擴展成

lui   a0,  immediate >> 12
addi  a0, a0, (immediate & 0xFFF)

而是擴展成

lui   a0,  ((immediate >> 12) + 1)
addi  a0, a0, ((immediate & 0xFFF) - 2^12)

解釋一下:

addi指令所加載的立即數的第11位為1時,這個立即數是符號擴展的,因此加數將為負數。這意味著除了添加常量的最右邊11位

之外,我們還需要減去2^12。為了彌補這個錯誤,只需將lui 加載的常量添加一個1,因為 lui 常量縮小了 2 ^12倍

例如:將 0xE76 加載到寄存器a0中

答:

lui   a0,  0x01
addi  a0, a0, (0xE76 - 4096)

代碼實現

#define immediate  XXXX

uint32_t MSB, LSB;
MSB = immediate >> 12;
LSB = immediate & 0xFFF;

if (MSB == 0) {
	if (LSB & 0x800) {
		asm volatile("lui a0, 0x01"); 
		asm volatile("addi a0, a0, LSB - 4096"); 
	} else {
		asm volatile("addi a0, x0, LSB"); 
	}
} else {
	if (LSB & 0x800) {
		asm volatile("lui a0, MSB + 0x01"); 
		asm volatile("addi a0, a0, LSB - 4096"); 
	} else {
		asm volatile("lui a0, MSB"); 
		asm volatile("addi a0, x0, LSB"); 
	}
}

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    31

    文章

    5437

    瀏覽量

    124715
  • 指令
    +關注

    關注

    1

    文章

    617

    瀏覽量

    36575
  • RISC-V
    +關注

    關注

    46

    文章

    2597

    瀏覽量

    48942
收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    正式的RISC-V基礎指令集架構與特權架構規范來了,RISC-V基金會已正式批準

    根據RISC-V基金會官網發布的公告,RISC-V 基金會宣布了批準RISC-V 基礎指令集架構與特權架構規范,為 RISC-V的可擴展性進
    的頭像 發表于 07-11 10:46 ?1w次閱讀

    RISC-V指令集架構特點

    RISC-V是當下熱門的技術,值得大家學習,這里分享一份關于RISC-V指令的內容給大家。
    的頭像 發表于 10-14 09:08 ?4273次閱讀

    RISC-V指令異常調試實例

    本文以一個簡單的實例介紹RISC-V指令異常的調試過程,思路都是一樣的,遇到其他情況時分析過程也類似。
    的頭像 發表于 06-08 10:50 ?2728次閱讀
    <b class='flag-5'>RISC-V</b><b class='flag-5'>指令</b>異常調試實例

    RISC-V開放架構設計之道|閱讀體驗】RISC-V基礎整數指令

    第2章 RV32I:RISC-V基礎整數指令集 本章重點講解構成RISC-V基礎整數指令集的基本指令
    發表于 01-31 21:10

    RISC-V和arm指令集的對比分析

    RISC-V和ARM指令集是兩種不同的計算機指令集架構,它們在多個方面存在顯著的差異。以下是對這兩種指令集的詳細對比分析: 一、設計理念 RISC-
    發表于 09-28 11:05

    RISC-Vli指令講解

    我們知道在RISC-V中有這樣一條偽指令: li a0, immediately 可以將任意的32位數據或者地址加載到指定的寄存器中,在 RV32I中,它擴展到 lui 和/或 addi。
    發表于 10-28 14:55

    RISC-V指令集概述

    RISC-V就是RISC的第五代指令集架構。而RISC-V目標就是“成為一種完全開放的指令集架構,可被任何學術機構或商業組織自由使用”。
    發表于 11-30 23:30

    RISC-V基礎指令詳解

    RISC-V中定義了六種指令類型,其中包括 R型指令 : 用于寄存器與寄存器之間算數運算的指令 I型指令 : 用于寄存器和立即數算術運算和讀
    發表于 12-29 18:47

    RISC-V架構簡介

    【摘要】 本文首先對RISC-V的架構做了簡要的介紹,在此基礎上實現了LiteOS在RISC-V架構上的適配過程的具體步驟,希望對你有所幫助。1 RISC-V架構簡介RISC-V是一個
    發表于 07-28 07:46

    什么是RISC-VRISC-V指令具有哪些特點應用?

    什么是RISC-V?RISC-V指令具有哪些特點應用?自己怎么才能設計出設計一套指令集?
    發表于 10-14 09:05

    如何在RISC-V中使用DSP指令?

    如何在RISC-V中使用DSP指令?
    發表于 02-16 07:43

    RISC-V-Reader-Chinese-v2p1 RISC-V手冊(中文) RISC-V開源指令集的指南

    RISC-V 手冊 一本開源指令集的指南 本書是由 RISC-V 設計者 DAVID PATTERSON等親自寫的書。書寫的非常精彩,和Risc-V一樣非常簡潔明了,沒有廢話,書本身也
    發表于 04-22 18:04

    RISC-V 發展

    不完善的地方,有傳言未來可能會形成x86、ARM、RISC-V三足鼎立的天下,但能夠形成這個局面,還需要大家的共同努力。RISC-V指令RISC-V
    發表于 04-14 10:18

    第一屆RISC-V中國峰會看點 risc-v開發要怎么優化risc-v指令集架構代碼密度

    在第一屆RISC-V中國峰會上看點很多,RISC-V是開源的,那么代碼密度要怎么控制,會不會因為開源而導致代碼密度特別大? 我們一起來看看risc-v峰會其中一個非常重要的亮點;卡姆派樂信息科技有限公司解讀針對
    發表于 06-23 18:22 ?9863次閱讀
    第一屆<b class='flag-5'>RISC-V</b>中國峰會看點 <b class='flag-5'>risc-v</b>開發要怎么優化<b class='flag-5'>risc-v</b><b class='flag-5'>指令</b>集架構代碼密度

    簡單講講RISC-V指令集CPU的參數

    本次CPU采用32位RISC-V指令集架構(一代是自己瞎編指令集)。指令集就是程序指令的集合,指引硬件如何設計、如何運行。
    的頭像 發表于 08-07 14:55 ?4152次閱讀
    簡單講講<b class='flag-5'>RISC-V</b><b class='flag-5'>指令</b>集CPU的參數
    主站蜘蛛池模板: 亚洲视频在线观 | 怡红院美国分院一区二区 | 在线综合 亚洲 欧美 | 国产三级在线精品男人的天堂 | 亚洲欭美日韩颜射在线二 | 精品AV国产一区二区三区 | 91精品乱码一区二区三区 | 干了快生了的孕妇 | 一个人在线观看视频免费 | 成人免费公开视频 | 精品手机在线1卡二卡3卡四卡 | 伊人网综合在线观看 | 精品免费视在线视频观看 | 国产VA精品午夜福利视频 | 九九免费的视频 | 国产黄a三级三级三级 | 久见久热 这里只有精品 | 寂寞夜晚视频在线观看 | 在线视频 中文字幕 | yy8090理论三级在线看 | 在线视频网站www色 在线视频免费国产成人 | 799是什么意思网络用语 | 国产精品成人不卡在线观看 | 欧美高清vivoesosexo18 | 蜜桃传媒在线观看入口 | 办公室激情在线观看 | 国内精品乱码卡一卡2卡三卡新区 | younv 学生国产在线视频 | 大中国免费视频大全在线观看 | 俄罗斯aaaa一级毛片 | 亚洲免费精品视频 | jizz教师| 男人桶女人j的视频在线观看 | 超碰免费视频caoporn | 2021精品高清卡1卡2卡3麻豆 | 久久青草影院 | 国产成人精选免费视频 | 大学生第一次破苞疼哭了 | 99久久免费精品 | 亚洲精品无码国产爽快A片 亚洲精品无码成人AAA片 | 久久4k岛国高清一区二区 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品