diff options
Diffstat (limited to 'valid/code-0012.smali')
-rw-r--r-- | valid/code-0012.smali | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/valid/code-0012.smali b/valid/code-0012.smali new file mode 100644 index 0000000..a0f18ec --- /dev/null +++ b/valid/code-0012.smali @@ -0,0 +1,105 @@ + +.class public LDalvikDemo; +.super Ljava/lang/Object; + +.method public constructor <init>()V + .locals 1 + + sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream; + const-string v1, "Hello from Dalvik!" + invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V + return-void +.end method + +.method public dataHandling()V + .locals 3 + + const/16 v0, 0x10 + sput-object v0, LDalvikDemo;->dataField:Ljava/lang/Object; + + sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream; + sget-object v1, LDalvikDemo;->dataField:Ljava/lang/Object; + check-cast v1, Ljava/lang/String; + invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V + + const-string v0, "Hello" + sput-object v0, LDalvikDemo;->dataField:Ljava/lang/Object; + + sget-object v0, LDalvikDemo;->dataField:Ljava/lang/Object; + check-cast v0, Ljava/lang/String; + invoke-virtual {v0}, Ljava/lang/String;->length()I + move-result v1 + + const/4 v2, 0x5 + if-lt v1, v2, :if_0 + return-void + + :if_0 + sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream; + const-string v1, "Data is less than expected" + invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V + return-void +.end method + +.method public arithmeticOperations()V + .locals 3 + + sget-object v0, LDalvikDemo;->numField:I + const/4 v1, 0x2 + add-int v0, v0, v1 + move-result v0 + + sput v0, LDalvikDemo;->numField:I + + sget v0, LDalvikDemo;->numField:I + const/4 v1, 0x3 + mul-int/lit8 v0, v0, 0x5 + move-result v0 + + sput v0, LDalvikDemo;->numField:I + + return-void +.end method + +.method public controlFlowOperations()V + .locals 2 + + sget v0, LDalvikDemo;->controlField:I + const/4 v1, 0x1 + if-eqz v0, :if_0 + + sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream; + const-string v1, "Control flow is working" + invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V + return-void + + :if_0 + sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream; + const-string v1, "Control flow failed" + invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V + return-void +.end method + +.method public highestDexVersion()V + .locals 2 + + sget v0, LDalvikDemo;->highestField:I + const/4 v1, 0x5 + if-lt v0, v1, :if_0 + + sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream; + const-string v1, "Highest Dex version is reached" + invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V + return-void + + :if_0 + sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream; + const-string v1, "Highest Dex version is not reached" + invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V + return-void +.end method + +.field private dataField:Ljava/lang/Object; +.field private numField:I +.field private controlField:I +.field private highestField:I |