diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2025-08-04 19:53:58 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2025-08-04 19:53:58 (GMT) |
commit | 1c7c6cdeae20e824ad8447daec4dc12b3b286def (patch) | |
tree | 41e2a3e9e4fa5b10306bae6d565f0f2db5980982 /valid/code-0018.smali |
Initial version.
Diffstat (limited to 'valid/code-0018.smali')
-rw-r--r-- | valid/code-0018.smali | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/valid/code-0018.smali b/valid/code-0018.smali new file mode 100644 index 0000000..d21b9a9 --- /dev/null +++ b/valid/code-0018.smali @@ -0,0 +1,140 @@ + +.class public LDalvikBytecodeDemo; +.super Ljava/lang/Object; + +.method public constructor <init>()V + .locals 0 + + invoke-direct {p0}, Ljava/lang/Object;-><init>()V + return-void +.end method + +.method public dataHandlingTest()V + .locals 4 + + const/16 v0, 0x1A + const/16 v1, 0x2B + add-int v2, v0, v1 + sget-object v3, Ljava/lang/System;->out:Ljava/io/PrintStream; + invoke-virtual {v3, v2}, Ljava/io/PrintStream;->println(I)V + return-void +.end method + +.method public arithmeticLogicTest()V + .locals 4 + + const/16 v0, 0x1A + const/16 v1, 0x2B + sub-int v2, v0, v1 + neg-int v3, v2 + mul-int/lit8 v0, v3, 0x5 + div-int/lit8 v1, v0, 0x7 + rem-int/lit8 v2, v1, 0x3 + and-int v0, v2, v1 + or-int v1, v0, v2 + xor-int v0, v1, v2 + return-void +.end method + +.method public controlFlowTest()V + .locals 2 + + const/16 v0, 0x1A + if-eqz v0, :cond_1 + goto :label_0 + + :cond_1 + add-int/lit8 v0, v0, 0x5 + :label_0 + sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream; + invoke-virtual {v1, v0}, Ljava/io/PrintStream;->println(I)V + return-void +.end method + +.method public specificInstructionsTest()V + .locals 5 + + const-wide v0, 0x12345678L + const-wide v1, 0x9ABCDEF0L + add-long v2, v0, v1 + sub-long v3, v0, v1 + neg-long v0, v2 + mul-long/lit16 v1, v3, 0x1234 + div-long/lit16 v2, v1, 0x5678 + rem-long/lit16 v3, v2, 0x9ABC + const-wide/16 v0, 0xDEF0L + shr-long/lit8 v1, v0, 0x3 + shl-long/lit8 v0, v1, 0x7 + return-void +.end method + +.method public stringOperationsTest()V + .locals 4 + + const-string v0, "Hello" + const-string v1, ", World!" + invoke-static {v0, v1}, Ljava/lang/String;->concat(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + move-result-object v2 + sget-object v3, Ljava/lang/System;->out:Ljava/io/PrintStream; + invoke-virtual {v3, v2}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V + return-void +.end method + +.method public arrayOperationsTest()V + .locals 5 + + new-array v0, 5, [I + const/16 v1, 0x1A + sget-object v2, Ljava/lang/System;->out:Ljava/io/PrintStream; + invoke-virtual {v2, v1}, Ljava/io/PrintStream;->println(I)V + aget-object v1, v0, 0 + const/4 v2, 0x2B + aput v2, v0, 1 + anewarray I, 3 + move-result-object v2 + const/16 v3, 0x3C + sget-object v4, Ljava/lang/System;->out:Ljava/io/PrintStream; + invoke-virtual {v4, v3}, Ljava/io/PrintStream;->println(I)V + aput v3, v2, 0 + return-void +.end method + +.method public objectOperationsTest()V + .locals 5 + + new-instance v0, Ljava/lang/StringBuilder; + invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V + const-string v1, "Hello" + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + const-string v1, ", World!" + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + move-result-object v1 + sget-object v2, Ljava/lang/System;->out:Ljava/io/PrintStream; + invoke-virtual {v2, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V + return-void +.end method + +.method public exceptionHandlingTest()V + .locals 3 + + try { + const/16 v0, 0x1A + if-eqz v0, :cond_2 + goto :label_1 + + :cond_2 + const-string v0, "Divide by zero error" + throw-verification-error v0 + + :label_1 + sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream; + invoke-virtual {v1, v0}, Ljava/io/PrintStream;->println(I)V + } catch Ljava/lang/ArithmeticException; {:cond_2} { + :catchall_3 + move-exception v0 + sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream; + invoke-virtual {v1, v0}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V + } + return-void +.end method |