में एक लेबल इस 86 विधानसभा कोड पर विचार करें:अपसंदर्भन 86 विधानसभा
section .data
foo:
mov ebx, [boo]
mov [goo], ebx
goo:
mov eax, 2
mov eax, 3
ret
boo:
mov eax, 4
mov eax, 5
ret
वास्तव में क्या यहाँ चल रहा है? जब मैं [boo]
और mov
को [goo]
पर रोकता हूं तो मैं वास्तव में वहां क्या चल रहा हूं? बस एक आदेश? ret
भी?
फ़ॉलो-अप प्रश्न:
- अपसंदर्भन करता है एक लेबल मुझे एक पता दे? या लेबल में पहले कमांड के लिए मशीन कोड?
- यदि यह एक मशीन कोड है - यह संभवतः एक से अधिक कमांड कैसे हो सकता है? सभी आदेश अनिवार्य रूप से 32-बिट नहीं हैं (भले ही सभी बिट्स का उपयोग न किया जाए)?
- नीचे की रेखा -
eax
के अंत में 3 या 5 का मूल्य है?
ऊपर समाशोधन के लिए धन्यवाद ऐसा लगता है कि यह काम करने के लिए, क्योंकि वे पूर्ण 32-बिट मात्रा नहीं कर रहे हैं और क्या होता है की तरह अंतिम बाइट हमेशा 0 होगा। यदि आप mov जैसे कुछ कोशिश करते हैं, तो यह कोड विफल हो जाएगा, ex 0xC000000 – Michael
"चार बाइट्स लाएं" जो मैं ढूंढ रहा था। धन्यवाद! –