Синтаксис Smali для кодов операций DalvikVMAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Синтаксис Smali для кодов операций DalvikVM

Сообщение Anonymous »

Пролог

Я пытаюсь изучить инструкции DalvikVM, используя ассемблер/дизассемблер Smali/Baksmali для файлов dex.

Проблема

Из этого Java-файла

Код: Выделить всё

package gd;

class Hello {
public static void main(String[] args)
{
System.out.println("Hello!");
}
}
Я создал следующий файл сборки smali:

Код: Выделить всё

.class Lgd/Hello;
.super Ljava/lang/Object;
.source "Hello.java"

# direct methods
.method constructor ()V
.registers 1

.prologue
.line 3
invoke-direct {p0}, Ljava/lang/Object;->()V

return-void
.end method

.method public static main([Ljava/lang/String;)V
.registers 3
.parameter

.prologue
.line 6
sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;

const-string v1, "Hello!"

invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V

.line 7
return-void
.end method
Мой вопрос касается следующей строки.

Код: Выделить всё

sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
Насколько я понимаю, это загружает статический объект PrintStream класса java.lang.System в регистр v0. Итак, что это означает:?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»