2012-03-20 19 views
5

मैं विधानसभा में निम्न कोड को चलाने के लिए कोशिश कर रहा हूँ में div का उपयोग करने का प्रयास करते समय हो रही है:चल बिन्दु अपवाद विधानसभा

mov  %si, %ax 
    mov  $15, %si 
    div  %si 
    mov  %eax, %esi 

जब मैं अपने कार्यक्रम बनाने के लिए, यह संकलित है, लेकिन क्रम में यह मुझे एक चल बिन्दु देता है अपवाद। मैंने पिछली पंक्ति के पैरामीटर को %ah और %si द्वारा प्रतिस्थापित करने का प्रयास किया।

संक्षेप में, मैं %esi15 से विभाजित करने की कोशिश कर रहा हूं। मुझे केवल int चाहिए, और double की आवश्यकता नहीं है।

आप

उत्तर

13

div अनुदेश संकार्य से दो-शब्द पैरामीटर dx/ax बिताते हैं धन्यवाद। यदि कोई शब्द किसी शब्द में फिट होने के लिए बहुत बड़ा है, तो वह अपवाद फेंक देगा।

संदर्भ: http://siyobik.info.gf/main/reference/instruction/DIV

क्या आप dx रजिस्टर में क्या है? सबसे अधिक संभावना dx/ax15 द्वारा विभाजित 16-बिट शब्द में फिट नहीं है।

+0

कुछ भी नहीं (या यादृच्छिक सामान), मैंने सोचा कि मेरा ऑपरेशन% si /% ax था, जिसे% ax – juliensaad

+1

में संग्रहीत किया गया था, फिर आपको 'dx' रजिस्टर को साफ़ (शून्य पर सेट) करना होगा। क्योंकि यह इनपुट लाभांश के शीर्ष 16-बिट्स का प्रतिनिधित्व करता है। – Mysticial

+0

काम किया! बहुत बहुत धन्यवाद, मैं 7 मिनट में जवाब दूंगा – juliensaad

संबंधित मुद्दे