以太幣交易所 以太幣交易所
Ctrl+D 以太幣交易所
ads
首頁 > 區塊鏈 > Info

詳解Cairo指令-ODAILY_RES

Author:

Time:1900/1/1 0:00:00

1.指令結構

CairoCPU原生支持的word是一個域元素,而這個域是特征值大于P>2^63。每個指令會占用1到2個word,如果指令后面跟著立即值(="12345678")則該指令占用2個word,并且值存在第二個word里。每個指令的第一個word由以下元素組成:

2.狀態轉換

狀態轉換函數代表了一個通用的狀態轉換單元,而一個計算通常會分解成多個連續執行的指令,因此我們需要:

a.確保指令的內容,以及指令執行前后的狀態的有效性

b.確保執行的指令是一個有效的指令

2.1轉換邏輯

如果指令執行前后的狀態是一致的,那么其狀態的更新一定是按照以下邏輯執行:

研究:尼日利亞加密貨幣外國投資創歷史新低:金色財經報道,尼日利亞國家統計局(NBS)周二報告稱,由于美元嚴重短缺,尼日利亞的外國直接投資(FDI)去年下降了33%,這阻礙了加密公司向該國擴張。2022年,投資從上一年的6.98億美元下降到4.68億美元。數據顯示,外國直接投資自2008年達到47億美元的峰值以來下降了約90%。[2023/4/6 13:48:27]

2.2指令校驗

如圖1所示,?個指令由以下元素組成:

2-10年期美債收益率曲線倒掛幅度超100個基點,打破40多年來紀錄:金色財經報道,美國2年期國債收益率自1981年以來首次較10年期國債收益率高逾100個基點。2年期國債收益率盤中高達4.9974%,比10年期收益率高出100個基點以上。上一次2年期收益率低于10年期是在去年7月。美聯儲主席鮑威爾的講話暗示終端政策利率可能需要高于此前預期。利率互換合約價格顯示,3月加息50個基點的概率略高于加息25個基點。[2023/3/8 12:48:06]

3.指令示例

3.1斷言相等

斷言相等指令可以用下述語法表示:

<left_handle_op>=<right_handle_op>

它確保了公式兩邊是相等的,否則程序的執行將會被返回。

Note2:除法和減法可以分別表示為具有不同操作數順序的乘法和加法。

Binance上的ETH期貨未平倉合約達到1個月高點:金色財經報道,據Glassnode數據顯示,Binance上的ETH期貨未平倉合約剛剛在達到2,491,078,240.10美元的1個月高點。[2023/1/21 11:24:08]

assert指令可以被認為是一條賦值指令,其中?邊是已知的,另一邊是未知的。例如=4可以被認為是斷言的值為4,或者根據上下文將賦值為4。

圖4給出了斷言相等指令的一些示例,以及每個指令對應的標志值:

解釋指令=5:

?為assert指令=>opcode=4

?next_ap=ap=>ap_update=00=0

?next_pc=pc+instruction_size=>pc_update=000=0

?op0和op1沒有addormul=>res_logic(res)=00=0

?存在立即數=>op1_src(op1)=001=1

?立即數地址指令地址相鄰=>off_op1=1

“無聊猿”BAYC交易總額突破23億美元:金色財經報道,據cryptoslam最新數據顯示,“無聊猿”Bored Ape Yacht Club(BAYC)交易額總已突破 23 億美元,本文撰寫時為 2,300,160,236 美元,交易總量為 31,444 筆,市值約為 16.2 億美元。另據 OpenSea 數據顯示,當前“無聊猿”BYAC地板價為 84.5 ETH。[2022/7/3 1:46:57]

?等式左邊=>dst_reg(dst)=1

?等式左邊=>off_dst=1

?op0_reg/off_op0=>initalvalue(1/-1)//因為這個指令用不到這些flags,所以填充默認值

3.2條件和非條件跳轉

jmp指令允許更改程序計數器pc的值。

Cairo支持相對跳轉和絕對跳轉-分別用關鍵字rel和abs表示;jmp指令或許是有條件的,比如當某個內存單元的值不為0時,觸發jmp指令。

指令的語法如下所示:

#Unconditionaljumps.

jmpabs<adress>

jmprel<offset>

加密銀行平臺Cashaa將推出2000萬美元規模的Web3基金:6月5日消息,印度加密銀行平臺Cashaa將推出2000萬美元規模的風投基金,計劃投資20到50家Web 3初創企業和項目,涉及元宇宙、NFT等領域。(Business Line)[2022/6/5 4:03:51]

#Conditionaljumps.

jmprel<offset>if<op>!

圖5給出了jmp指令的一些示例,以及每個指令對應的標志值:

解釋指令jmprel+:

?為jmp指令=>opcode=0

?next_ap=ap=>ap_update=b00=0

?next_pc=pc+res=>pc_update=b010=2

?res=op0+op1=>res_logic(res)=b01=1

?op1:=>op1_src(op1)=b010=2

?op1:=>off_op1=-7

?op0:=>op0_src(op0)=0

?op0:=>off_op0=1

?dst_reg/off_dst=>initalvalue(1/-1)///因為這個指令用不到這些flags,所以填充默認值

3.3call和ret

call和ret指令允許實現函數堆棧。call指令更新程序計數器(pc)和幀指針(fp)寄存器。程序計數器的更新類似于jmp指令。之前fp的值被寫入,以允許ret指令將fp的值重置為調用之前的值;類似地,返回的pc(調用指令后面指令的地址)被寫到,以允許ret指令跳回并繼續執行調用指令后面的代碼的執行。由于寫入了兩個存儲單元,ap向前進了2,fp被設置為新的ap。

指令的語法如下:

callret<adress>

callrel<offset>

ret

圖6給出了call和ret指令的一些示例,以及每個指令對應的標志值:

解釋指令callabs:

?為call指令=>opcode=0

?next_ap=ap=>ap_update=b00=0

?next_pc=res=>pc_update=b001=1

?res=op1=>res_logic(res)=b00=0

?op1:=>op1_src(op1)=b010=2

?op1:=>off_op1=4

?op0_reg/off_op0=>initalvalue(0/1)///因為這個指令用不到這些flags,所以填充默認值

?dst_reg/off_dst=>initalvalue(0/0)///因為這個指令用不到這些flags,所以填充默認值

3.4高級ap

指令ap+=<op>通過給定的操作數增加ap的值。

圖7給出了高級ap指令的一些示,以及每個指令對應的標志:

解釋指令ap+=123:

?為advancingap指令=>opcode=0

?next_ap=ap+res=>ap_update=b01=1

?next_pc=pc+instruction_size=>pc_update=b000=0

?res=op1=>res_logic(res)=b00=0

?op1=123=>op1_src(op1)=b001=1

?op1=123=>off_op1=1

?op0_reg/off_op0=>initalvalue(1/-1)///因為這個指令用不到這些flags,所以填充默認值

?dst_reg/off_dst=>initalvalue(1/-1)///因為這個指令用不到這些flags,所以填充默認值

關于我們

Sin7y成立于2021年,由頂尖的區塊鏈開發者組成。我們既是項目孵化器也是區塊鏈技術研究團隊,探索EVM、Layer2、跨鏈、隱私計算、自主支付解決方案等最重要和最前沿的技術。

微信公眾號:Sin7Y

GitHub|Twitter|Telegram|Medium|Mirror|HackMD|HackerNoon

Tags:RESOFFDSTNEXTares幣有發展前景嗎Offshift anonUSDDST價格NextDAO

區塊鏈
NFT奇幻漂流:與NBA史上最偉大射手Stephen Curry的見面會紀實-ODAILY_CURRY

封面 嗨,大家好,我是林宇定,是抽中Curry見面會的幸運兒。你知道跟NBA史上最偉大射手StephenCurry一起打球、共進晚餐、做社區慈善是什么感覺嗎?讓我以第一人稱視角帶你一窺巨星風采.

1900/1/1 0:00:00
Qredo為早期采用者推出WalletConnect集成-ODAILY_RED

Qredo推出與WalletConnect的新集成,這是一種用于訪問去中心化金融(DeFi)的開放協議.

1900/1/1 0:00:00
Tether項目周報 (0523-0529)-ODAILY_USD

Tether推出新的穩定幣MXNT,價格與墨西哥比索掛鉤Tether宣布推出與墨西哥比索1:1掛鉤的新穩定幣MXNT,標志著其進入拉丁美洲市場.

1900/1/1 0:00:00
波聯儲增加5億枚USDC儲備保障USDD穩定,當前USDD抵押率超310%-ODAILY_USD

據官方消息,為應對市場極端情況,波場聯合儲備已增加5億枚USDC儲備來捍衛USDD掛鉤,當前,USDD抵押率超310%.

1900/1/1 0:00:00
SUN.io上的2pool(USDD/USDT) 礦池APY高達22.56%-ODAILY_BTC

據最新消息,7月14日,SUN.io上的2pool(USDD/USDT)礦池當前APY高達22.56%。加入SUN.io2pool穩定幣挖礦,即可享受豐厚的USDD+SUN雙幣獎勵.

1900/1/1 0:00:00
為下一個全新公鏈做好準備,你不得不知的Aptos 公鏈(上)-ODAILY_TOS

在2021年加密貨幣熱潮爆發之前,MetaPlatforms早已在2018年啟動了區塊鏈項目。隔年,該項目便被命名為“Libra”.

1900/1/1 0:00:00
ads