以太幣交易所 以太幣交易所
Ctrl+D 以太幣交易所
ads
首頁 > Luna > Info

Sin7y團隊解讀:Cairo - 指令_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轉換邏輯

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

日本最大航空公司ANA推出NFT市場,未來計劃增加NFT產品線:5月31日消息,日本最大的航空公司全日空航空公司(ANA)與其子公司 ANA Neo 推出了以航空為主題的 NFT 市場ANA GranWhale NFT Marketplace,上線的首套 NFT 是由航拍攝影師 Luke Ozawa 創作的首個系列,價格為 10 萬日元,帶正片的 NFT 將在拍賣會上出售。第二套 NFT 合集將于 6 月 7 日發布,代表全日空運營的首架波音 787 的 NFT 形象轉換。全日空是日本最大的航空公司,上一財年的收入為 122 億美元。該公司表示,未來計劃增加 NFT 產品線,旨在通過 NFT 商業化提升客戶體驗的價值。[2023/5/31 11:49:28]

2.2指令校驗

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

Suspicious Unicorn Society項目Discord服務器遭到攻擊:金色財經報道,據CertiK監測,Suspicious Unicorn Society項目Discord服務器遭到攻擊。請社區用戶不要點擊其中的任何鏈接。[2022/9/22 7:14:08]

3.指令示例

3.1斷言相等

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

<left_handle_op>=<right_handle_op>

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

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

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

加密期權交易公司Synquote完成280萬美元種子輪融資:金色財經報道,加密期權交易初創公司Synquote完成了280萬美元的種子輪融資,Initialized Capital領投。AllianceDAO、Coinbase Ventures、CMT Digital、Polygon和Ryan Selkis參投。(CoinDesk)[2022/9/14 13:27:42]

圖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?

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

Jadu AVA NFT系列近24小時交易額增幅超7000%:金色財經消息,OpenSea數據顯示,Jadu AVA NFT系列NFT近24小時交易額為389 ETH,24小時交易額增幅達7299%。近24小時交易額排名位列OpenSea第6。[2022/9/8 13:17:27]

?等式左邊=>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>

#Conditionaljumps.?

jmprel<offset>if<op>!?

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

加密交易平臺Tokenize Xchange完成1150萬美元A輪融資:8月12日消息,總部位于新加坡的加密交易平臺Tokenize Xchange宣布完成1150萬美元A輪融資,具體融資信息暫未披露,該公司正在準備明年以3億美元估值募集B輪融資。并計劃向印度尼西亞和澳大利亞擴張。(Vulcan Post)[2022/8/12 12:20:57]

解釋?指令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,所以填充默認值

參考

SpecificationforCairo:https://arxiv.org/pdf/2109.14534.pdf

關于我們

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

微信公眾號:Sin7y

GitHub:Sin7y

Twitter:@Sin7y_Labs

Medium:Sin7y

Mirror:Sin7y

HackMD:Sin7y

HackerNoon:Sin7y

Email:contact@sin7y.org

來源:金色財經

Tags:RESOFFNFTSINRESQ價格Bitcoffeennfts幣合約地址Single Finance

Luna
小馮:BTC拉盤帶動上漲 ETH關注1410阻力位_RAB

  沉寂了幾天之后總算是迎來了一波像樣的反彈,而這波反彈也是在小馮近期文章中多次強調預測過的;大餅,日線的連續筑底不破,注定了就會有一波反彈,先不管反彈力度如何,反彈必然會來,那為什么不是下跌.

1900/1/1 0:00:00
目前A股市場情緒未定-假期前多看少動?后市大概率分化輪動_ETH

A股昨天終于迎來像樣的反彈。要知道,這是最近10個交易日大盤第一次出現像樣的反彈,真是太不容易了。滬深兩市個股漲跌幅的中位數是漲2.23%,回血效應相當不錯的普漲行情,反彈略超預期.

1900/1/1 0:00:00
Bankless:一文了解 4 種 DeFi 固定利率解決方案_ETH

原文作者:Bankless實習生JackInabinet加密市場很不穩定,固定的利率回報并不常見。這對希望將固定利率負債與固定利率資產相匹配的債權人和債務人來說是一個巨大的問題.

1900/1/1 0:00:00
集權還是去中心化?以 MakerDAO 為例解析 DAO 治理困境_DAO

在穩定幣DAI概念公布后的第六年,MakerDao仍然是以太坊鏈上最成功的DeFi應用之一。本文通過解析MakerDAO的發展歷史、治理模式及實踐來看一看DAO治理的沖突、困境及解決方案.

1900/1/1 0:00:00
吸血、遷移與資本局 Move 公鏈大火背后_TOS

“這個AptosBuilder社區直到200人,都幾乎沒有人說話。因為都是Solana生態的熟人,大家都心照不宣保持沉默,直到新人逐漸多起來群內才開始活躍.

1900/1/1 0:00:00
重磅消息 | GEB全面爆發 9月28日21:19震撼上線

官宣:集DeFi2.0和DAO于一體搭建的多功能專案平臺GEB將于9月28日21:19震撼上線!GEB通證是為綠色環保產業做媒介,以農業元宇宙紅豆杉基地為主題,構建線上線下.

1900/1/1 0:00:00
ads