summaryrefslogtreecommitdiff
path: root/valid/code-0018.smali
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2025-08-04 19:53:58 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2025-08-04 19:53:58 (GMT)
commit1c7c6cdeae20e824ad8447daec4dc12b3b286def (patch)
tree41e2a3e9e4fa5b10306bae6d565f0f2db5980982 /valid/code-0018.smali
Initial version.
Diffstat (limited to 'valid/code-0018.smali')
-rw-r--r--valid/code-0018.smali140
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