मैं स्माली सीखने की कोशिश कर रहा हूं और मेरे पास कुछ सवाल है कि मैं उन्हें गुगल करके नहीं ढूंढ पाया।DalvikVM कैसे स्विच करता है और स्माली कोड
1) मैं एक साधारण परीक्षण का मामला बनाया बेहतर अपने आप
const-string v1, "Start"
:try_start_0
const-string v1, "Try Block"
invoke-static {v1}, Lcom/example/test/Main;->print(Ljava/lang/String;)V
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
.catch बयान की व्याख्या करने के लिए: दो तर्क दो लेबल के बीच कोड उस लेबल तक कि लेबल से लेते हैं और उसे पकड़ने का क्या मतलब है () या इसका मतलब यह है कि कोशिश करने का प्रयास करना प्रारंभ करें: try_start_0 तक पहुंचने तक: try_end_0 (दो लेबल के भीतर कोड निष्पादित करने के लिए गोटो कूदने की अनुमति देता है)?
क्या लेबल हमेशा try_start_% d प्रारूप में कोशिश करने के लिए है या क्या वे कोई लेबल हो सकते हैं?
2) एक और मामला
packed-switch v0, :pswitch_data_0
const-string v1, "Default Case"
invoke-static {v1}, Lcom/example/test/Main;->print(Ljava/lang/String;)V
:goto_0
const-string v1, "The End"
invoke-static {v1}, Lcom/example/test/Main;->print(Ljava/lang/String;)V
return-void
:pswitch_0
const-string v1, "Case 1"
invoke-static {v1}, Lcom/example/test/Main;->print(Ljava/lang/String;)V
goto :goto_0
:pswitch_data_0
.packed-switch 0x1
:pswitch_0
.end packed-switch
स्विच बयान: यह आवश्यकता होती है कि स्विच बयान स्विच डेटा और स्विच कॉल के बीच झूठ? और फिर भी सुविधा के लिए तय किए गए लेबल का नामकरण या बस?
3) यदि लेबल अलग-अलग हो सकते हैं, तो क्या बाक्समाली कभी भी विभिन्न लेबलों के साथ स्माली कोड उत्पन्न करेगा?
4) वैकल्पिक रेखाएं क्या हैं जिन्हें हमेशा डीईक्स को अपनाने पर दिखाया नहीं जाता है?
मुझे पता है .parameter और .line वैकल्पिक हैं, लेकिन क्या वे सभी नहीं हो सकते हैं?
अग्रिम धन्यवाद।
धन्यवाद। यह वही है जो मैं जानना चाहता था। मैं विशेष रूप से अपने दूसरे "अजीब" निर्माण पसंद है :)। मुझे पता है कि संकलित जावा कोड इसे देने में सक्षम नहीं होगा, लेकिन एक अनुकूलन प्रोग्राम कोड को उस राज्य में अनुकूलित करने में सक्षम होगा जो नियमित जावा कोड के साथ प्राप्त नहीं हो सकता है (थोड़ा सी/सी ++ गोटो जैसे "अजीब" बहाव को काबू करें) ? – Xonar
एक अनुकूलक - संभवतः नहीं। हालांकि, यह एक obfuscator से अधिक संभावना हो सकती है – JesusFreke