Dalvik指令学习
来源:互联网 发布:大数据威力的来源包括 编辑:程序博客网 时间:2024/06/10 15:13
任何程序的入门都是hello world,Dalvik指令对应的smali语法学习也从hello world开始!
.class public LHelloWordld; # 定义类名
.super Ljava/lang/Object; # 定义父类
.mehod public static main(Ljava/lang/String;)V # 声明静态main()方法
.registers 4# 程序中使用 v0、v1、v2寄存器与一个参数寄存器
.parameter # 一个参数
.prologue # 代码起始指令
return-void# 返回空
.end method
这是一段Hello World 的架构代码,定义了一个可编译运行的dex文件的最小组成部分。
下面在.prologue指令下面编写具体代码:
# 空指令
nop
nop
nop
#数据定义指令
const/16 v0,0x8
const/4 v1,0x5
const/4 v2,0x3
#数据操作指令
move v1,v2
#数组操作指令
new-array v0,v0,[I
array-length v1,v0
#实例操作指令
new-instance v1,Ljava/lang/StringBuilder;
#方法调用指令
invoke-direct {v1},Ljava/lang/StringBuilder;-><init>()V
#跳转指令
if-nez v0, :cond_0
goto : goto_0
:cond_0
#数据转换指令
int-to-float v2,v2
#数据运算指令
add-float v2,v2,v2
#比较指令
cmpl-float v0,v2,v2
#字段操作指令
sget-object v0,Ljava/lang/System;->out:Ljava/io/PrintStream;
const-string v1,"Hello World" #构造字符串
#方法调用指令
invoke-virtual {v0,v1},Ljava/io/PrintStream;->println(Ljava/lang/String;)V
#返回指令
:goto_0
return-void
- Dalvik指令学习
- Dalvik指令
- Smali--Dalvik虚拟机指令语言-->【android_smali语法学习一】
- Smali--Dalvik虚拟机指令语言-->【android_smali语法学习一】
- Smali--Dalvik虚拟机指令语言-->【android_smali语法学习一】
- Smali--Dalvik虚拟机指令语言-->【android_smali语法学习一】
- Smali--Dalvik虚拟机指令语言-->【android_smali语法学习一】
- Smali--Dalvik虚拟机指令语言-->【android_smali语法学习一】
- Smali--Dalvik虚拟机指令语言-->【android_smali语法学习一】
- Smali--Dalvik虚拟机指令语言-->【android_smali语法学习一】
- Smali--Dalvik虚拟机指令语言-->【android_smali语法学习一】
- Smali--Dalvik虚拟机指令语言-->【android_smali语法学习一】
- Smali--Dalvik虚拟机指令语言-->【android_smali语法学习一】
- Dalvik指令集
- Dalvik指令集
- Dalvik 操作指令
- Android-Dalvik指令集
- dalvik指令的介绍
- 未定义标识符filter2D
- 记录协议
- 25款经典老芯片,认识5款以上的工程师证明你老了!
- Springboot学习
- vue2技术栈总结
- Dalvik指令学习
- HTML5-Canvas简介line to&move to
- JavaScript30-7 数组的一些基本方法
- VMware 虚拟化编程(15) — VMware 虚拟机的恢复方案设计
- 面向封装的作用及好处
- python中array.sum(axis=?)的用法
- Android_SQL增删改查
- Eclipse搭建hadoop开发平台
- lombok使用