火星链 火星链
Ctrl+D收藏火星链
首页 > FIL > 正文

ORC:Sin7y团队解读:Cairo - 指令

作者:

时间: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转换逻辑

币安将于5月11日移除部分现货交易对:5月9日消息,币安宣布将于 5 月 11 日 11:00 移除 AR/BNB、BURGER/BNB、JASMY/BNB、JASMY/ETH、OMG/BTC 现货交易对,5 月 11 日 14:00 移除 PROS/ETH、UNFI/ETH、VIB/ETH、VITE/BUSD、WAVES/BNB、WRX/BNB 现货交易对。[2023/5/9 14:52:19]

如果指令执行前后的状态是一致的,那么其状态的更新一定是按照以下逻辑执行:

Trezor CEO:比特币价格并不比财务独立更重要:1月13日消息,加密硬件公司Trezor新任命的首席执行官Matěj ?ák认为,比特币支持的财务独立性是加密货币的最大好处,而且比其市场更重要。Matěj ?ák表示,2023年将以市场整合为标志,现在Trezor有很好的机会改进其产品,为即将到来的牛市做准备。

Trezor首席执行官指出,比特币的易用性是Trezor今年将继续关注的主要方向之一,因为BTC和加密仍然经常被视为复杂的技术概念。我们的使命是让普通用户更容易获得自我监管。与普遍看法相反,比特币并不是一种复杂的工具,而是一种具有巨大潜力的简单技术。Trezor首席执行官说,这是因为比特币解锁了独特的功能,可以与僵化的传统金融系统竞争。(Cointelegraph)[2023/1/13 11:10:55]

2.2指令校验

如图1所示,?个指令由以下元素组成:

3.指令示例

3.1断言相等

Torches权益NFT白名单现已开放:据官方消息,KuCoin Community Chain(KCC) 上第一借贷协议Torches宣布将于7月9日开启创世NFT Torchlight的铸造,用户现可通过参与官方活动获取白名单,获得白名单的用户最多一次可铸造5个NFT。

Torchlight是Torches社群的荣誉及权益证明,持有Torchlight可以获得多重权益,包括加速Torches Point挖矿速度等。在近期举办的积分挖矿活动中,使用Torchlight最高可获得900%的挖矿加速。

目前,Torches已经由派盾完成合约审计。[2022/6/29 1:39:13]

断言相等指令可以用下述语法表示:

<left_handle_op>=<right_handle_op>

它确保了公式两边是相等的,否则程序的执行将会被返回。

Note2:除法和减法可以分别表示为具有不同操作数顺序的乘法和加法。?

assert指令可以被认为是一条赋值指令,其中?边是已知的,另一边是未知的。例如=4可以被认为是断言的??值为4,或者根据上下文将赋值为4。

图4给出了断言相等指令的一些示例,以及每个指令对应的标志值:

Web3 数字身份平台Unstoppable Domains宣布与ShapeShift集成:金色财经报道,Web3 数字身份平台Unstoppable Domains宣布与去中心化、非托管加密货币平台ShapeShift集成.?现在,ShapeShift 客户将能够用可读的 NFT 域名替换复杂的钱包地址,因此他们可以像发送电子邮件一样轻松地发送加密资产(BTC 和 ETH)。在接下来的几周内,ShapeShift 和 Unstoppable Domains将向所有FOX代币持有者提供免费的NFT域名。[2022/6/23 1:25:16]

解释?指令=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?

市场价格体现出美联储未来两次会议各加息50基点的不确定性加大:5月25日消息,美联储掉期体现出未来两次会议加息溢价略微低于100个基点,表明美联储在6月和7月两次会议各加息50个基点的不确定性加大。美联储掉期现在显示,美联储未来两次会议将累计加息约98个基点,到9月会议将加息132个基点,低于周二收盘时预期的134个基点;到12月会议的加息幅度预期为182个基点,周二收盘时为184个基点;到明年年中的最终利率预期为2.93%左右,周二收盘时为2.95%。 (金十)[2022/5/25 3:41:11]

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

#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,所以填充默认值

参考

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

来源:金色财经

标签:RESOFFORCSINAdSharesBitcoffeenForce For Fast TokenBUSINESSES

FIL热门资讯
WEB:Web3 与数字化体验:B2B 营销的下一步?

在现阶段,Web3和市场营销的重心是什么?与其试图去定义Web3,我更愿意将其当作互联网的一次进化。不论你对它的态度如何,你都需要承认互联网的进化已经不可避免.

1900/1/1 0:00:00
BAYC:Game Ape 游戏猿——BAYC 生态新成“猿”

YugaLabs成立于2021年2月,先后推出NFT项目无聊猿游艇俱乐部BoredApeYachtClub、BoredApeKennelClub和MutantApeYachtClub.

1900/1/1 0:00:00
VER:9月19日行情分析:空仓观望

目前BTC又开始下跌,但会不会直接破位趋势线,还不晓得,有句话说的市场永远是对的,在没有止跌阳出现前,都没什么必要操作.

1900/1/1 0:00:00
TER:通过高级用户实现Web3 网络效应的六个策略

像Kickstarter、Udemy和Skillshare这样的Web2平台,通过早期让有实力的生产者进入平台来扩大规模.

1900/1/1 0:00:00
LAYER:LayerZero的生态项目与多链野心

原文标题:《LayerZero的多链野心》原文作者:Tiga,W3.Hitchhiker;修订:?Evelyn.

1900/1/1 0:00:00
ONS:金色观察|新手指南:如何运行自己的以太坊验证者节点

文/WilliamM.Peaster,Bankless作者如果你是以太坊的支持者,有一件最重要的事情你现在就可以做,那就是运行以太坊验证者.

1900/1/1 0:00:00