Smail语法(2)指令解析

【重点】归总了一些简单的Smail指令。1.If语句 if-nez v0,:cond_0 如果结果不为0,就跳转到cond_0标号处 if-eqz v0,:cond_1 如果结果为0,就跳转到cond_1标号处 2.数据操作指令 move v0,v1 将v1的值赋给v0 ,两个寄存器都为4位 move-result...
摘要由CSDN通过智能技术生成

【重点】归总了一些简单的Smail指令。

复制代码

1.If语句 
    if-nez v0,:cond_0    如果结果不为0,就跳转到cond_0标号处
    if-eqz v0,:cond_1    如果结果为0,就跳转到cond_1标号处
    
2.数据操作指令

    move v0,v1    将v1的值赋给v0 ,两个寄存器都为4位
    
    move-result v0    将上一个invoke类型指令操作的单字非对象结果赋给v0
    move-result-object v0    将上一个invoke类型指令操作的对象结果(返回值)赋给v0
    
3.返回指令

    return-void
    return v0
    return-object v0
    
4.实例操作指令

    check-cast v1, Landroid/widget/TextView;  将v1寄存器中的对象引用转化成指定的类型(这里是 TextView)
    new-instance v1, Ljava/lang/StringBuilder; 构造一个指定类型对象的新实例
    
5.数组操作指令

    new-array v0,v0,[I  构造Int类型,大小是v0的数组,并将值赋给v0寄存器
    array-length v1,v0  获取v0数组的长度且将值赋给v1
    
6.异常指令

    throw vAA 抛出vAA寄存器中指定类型的异常
    
7.跳转指令

    1,goto :goto_0  偏移量goto_0不能为0 
    2,If语句
    3,switch    
        packed-switch v
  • 6
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值