कोडांतरक भाषा प्रोग्रामिंग

वोट
0

मैं एक प्रोग्राम है जो एक सकारात्मक संख्या कम से कम 10 इनपुट और पहले संख्याओं का योग आउटपुट लिखने की कोशिश कर रहा हूँ। उदाहरण के लिए 5 5 + 4 + 3 + 2 + 1 होगा। आदेशों बंद करो, लोड, स्टोर, जोड़ें, योग, गुणा, भाग, इनपुट, आउटपुट, शाखा, शाखा यदि 0, और शाखा हैं नहीं तो 0. किसी को भी मेरी मदद कर सकते हैं यहाँ। मैं एक तरह से अटक कर रहा हूँ। अच्छी तरह से है कि मैं क्या लिखा है यह है:

      IN    n
      LD    n
      ADD   sum
      STO   sum
      LD    n
      SUB   one
      ADD   sum
      STO   sum
      BRGT  haw
      LD    n
      BR    done
haw:  OUT   sum
done: STOP
      DC    n   4
      DC    sum 0
      DC    one 1  

खैर तरह से मैं यह काम करते हुए देखना आप कुछ संख्या n लोड और 0 की राशि जोड़ने और फिर n + राशि के रूप में इस राशि की दुकान है। तो फिर तुम फिर से लोड n और 1 घटाना और स्टोर है कि नई राशि के रूप में। लेकिन मैं इसे इस तक एन 0 तक पहुँच जाता है तो कैसे मैं यह कर करते दोहराने की आवश्यकता?

ठीक है तो मैं क्या करने की जरूरत है 0 अगर शाखा और शाखा का उपयोग नहीं करता है, तो 0. मुझे लगता है कि मेरे पास है है? इसलिए:

     IN    n
     LD    n
     ADD   sum
     STO   sum  
     BR    CAW
CAW: LD    n  
     SUB   ONE  
     STO   n
     BRGT  HAW
     BZ    TAW
HAW: ADD   SUM  
     STO   SUM  
     BR    CAW  
TAW: OUT   SUM
     DC    SUM 0
     DC    ONE 1

डीसी = लगातार मनोनीत, लेकिन क्या मैं दोहराने की आवश्यकता एक के बाद घटाकर और योग को जोड़ने है जब तक n 0. शाखा तक पहुँच जाता है शून्य नहीं करता है, तो BRGT है और शाखा अगर शून्य BZ है और शाखा बीआर, एलडी लोड है। मैं क्या मैं दोहराने की आवश्यकता है, लेकिन मैं कैसे आप विधानसभा भाषा में ऐसा पता नहीं है।

08/01/2010 को 04:46
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


3 जवाब

वोट
5

चूंकि यह होमवर्क की तरह लगता है, मैं कुछ टुकड़ों के साथ शुरू करेंगे।

  1. यदि आपने अभी तक इस समस्या का तर्क बाहर काम किया है? "अटक की तरह" मतलब हो सकता है आप कोई पता नहीं है कि यह कैसे किया जाना चाहिए है, या कि क्या आप वाकई कैसे उपलब्ध निर्देश के साथ इसे लागू करने के लिए नहीं कर रहे हैं। आप तर्क बाहर काम नहीं किया है, इस पर विचार - कैसे आप, शर्तों के साथ आते हैं कि कैसे आप उन्हें एक साथ जोड़ सकता हूँ, और क्या आप परिणामों से करते हो?

  2. आप तर्क बाहर काम किया है, तो जो आदेश प्रत्येक भाग प्रदर्शन करेंगे?

यदि आपके पास अधिक विशिष्ट प्रश्न अद्यतन करने के लिए स्वतंत्र लग रहा है और मैं जवाब देंगे, लेकिन आम तौर पर नीति मार्गदर्शन की पेशकश करने के बजाय (संभव?) होमवर्क प्रश्नों के लिए कोड लिखने है।

संपादित करें : ठीक है महान, आप कुछ कोड मिल गया है, और ऐसा लगता है कि आप सही रास्ते पर हैं, लेकिन वहाँ नहीं अभी तक। पहली बात मैं आप से पूछना होगा कि क्या आप कागज पर कोड निष्पादित करने की कोशिश की है है। एक मनमाना इनपुट उठाओ (जैसे कि 5, अपने उदाहरण के रूप में) और एक समय में कोड एक अनुदेश के माध्यम से कदम है, तो तर्क यह है कि कार्यक्रम करता है तर्क है कि आप के साथ कदम में 1. अभी मेरा मानना है कि कार्यक्रम आया था इस प्रकार देखने के लिए लिखित रूप में काम नहीं करता है; यदि आप पता लगा सकते हैं क्यों और यदि नहीं मैं तुम्हें एक संकेत दे देंगे।

संपादित करें 2 : भयानक, आप इतने करीब आप पहले से ही इस सवाल का जवाब है और सिर्फ यह कोड करने के लिए जरूरत है कि कर रहे हैं। आपने कहा कि आप जब तक एन 0 तक पहुँच जाता है तो दोहराना चाहते हैं, जो आदेश है कि क्या एन 0 है या नहीं के आधार पर दो शाखाओं में से एक लेते हैं होगा?

3 संपादित करें : यदि आप यह सोचते हैं कि आप शाखा उपयोग करने के लिए करता है, तो 0 / शाखा नहीं 0, लेकिन मैं उन में से किसी के लिए अपने नवीनतम कोड में दिखाई नहीं देते हैं में सही हैं। क्या मैं कुछ भुल गया? इसके अलावा, क्या इस मामले में के लिए डीसी है? आप एक महत्वपूर्ण पोस्ट यदि ऐसा है तो मैं जानता हूँ कि वास्तव में कौन-निर्देश आप उपयोग कर रहे यह उपयोगी हो सकता है। जैसा कि मैंने पहले भी कहा है, हाथ से अपने कार्यक्रम को क्रियान्वित करने की कोशिश - जहां कीड़े हैं कि तुम्हें दिखाता हूँ। आप के लिए मेरी संकेत अभी अपने कोड के भाग की जरूरत है कि बार-बार निष्पादित करने के लिए की पहचान करने और पता लगाएं कि क्या करता है बार-बार निष्पादित हो पता लगाने के लिए है।

08/01/2010 को 04:50
का स्रोत उपयोगकर्ता

वोट
2

पहले एक उच्च स्तरीय छद्म कोड में समस्या को लिखने की कोशिश करें।

फिर उसे अपने विधानसभा भाषा में अनुवाद।

आप यहाँ विधानसभा भाषा में प्रोग्रामिंग पर सहायता मिल सकती

http://www.laynetworks.com/assembly%20tutorials.htm

एक स्कूल असाइनमेंट की तरह यह गंध, इसलिए मुझे लगता है कि आप के लिए जा रहा करने के लिए पर्याप्त होना चाहिए।

08/01/2010 को 04:51
का स्रोत उपयोगकर्ता

वोट
0

सी में इसके बारे में सोचो (यह मानते हुए आप जानते हैं)

int sumnumbers(int input)
{
    int output = 0;

    input = max(input, 10);

    switch (input)
    {
        case 5:
            output += 5;
        case 4:
            output += 4;
        case 3:
            output += 3;
        case 2:
            output += 2;
        case 1:
            output += 1;
        case 0:
            output += 0;
            break;
    }

    return input;
}

(0'th मामले को छोड़कर) को तोड़ने के बयानों की कमी पर ध्यान दें।

क्या यह मदद करता है?

10/01/2010 को 21:51
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more