Assembler Design Options in hindiOne-pass assemblers in hindi,Multi-pass assemblers in hindi,Two-pass assembler with overlay structure in hindi,

 Assembler Design Options in hindi ,One-pass assemblers in hindi,Multi-pass assemblers in hindi,Two-pass assembler with overlay structure in hindi,Implementation Examples,Forward Reference in One-pass Assembler,Load-and-go Assembler,Microsoft MASM Assembler,Sun Sparc Assembler,IBM AIX Assembler,

Assembler Design Options (असेम्बलर डिजाईन करने के विकल्प )

  1. One-pass असेम्बलर्स
  2. Multi-pass असेम्बलर्स
  3. Two-pass असेम्बलर overlay structure के साथ
  • Two-pass असेम्बलर overlay structure के साथ
    • Small memory के लिए
      • पास 1 और पास 2 की कभी भी आवश्यकता नहीं होती है
      • तीन segments
        • root:driver program और shared tables और subroutines
        • पास 1
        • पास 2
      • tree structure
      • overlay program
  • One-pass असेम्बलर्स
    • मुख्य समस्या
      • forward references
        • डाटा आइटम्स
        • instructions पर labels
    • Solution
      • data items: ऐसे सभी क्षेत्रों को संदर्भित (referenced) करने से पहले परिभाषित किया जाना चाहिए
      • instructions पर labels : कोई अच्छा उपाय नहीं
    • Two types of one-pass assembler
      • load-और -go
        • तत्काल execution के लिए सीधे मेमोरी में ऑब्जेक्ट कोड को produce करता है
      • अन्य(the other)
        • बाद के (later) execution(निष्पादन) के लिए सामान्य प्रकार के ऑब्जेक्ट कोड का उत्पादन(produces) करता है

Load-और-go असेम्बलर

  • विशेषताएँ
    • Program के विकास और परीक्षण के लिए उपयोगी
    • ऑब्जेक्ट प्रोग्राम को लिखने और उसे वापस पढ़ने के ओवरहेड से बचा जाता है
    • एक-पास और दो-पास असेंबलर्स दोनों को लोड-और-गो के रूप में डिज़ाइन किया जा सकता है।
    • हालांकि एक-पास भी source program पर एक अतिरिक्त पास के over head से बचा जाता है
    •   लोड-और-गो असेंबलर के लिए, actual पता assembly समय के रूप में जाना जाता है , हम एक absolute प्रोग्राम का उपयोग कर सकते हैं

One-pass Assembler में Forward Reference :

किसी भी प्रतीक(symbol) के लिए जिसे अभी तक परिभाषित नहीं किया गया है ⇒

  1. Address translation को छोड़ दें
  2. Symbol को SYMTAB में डालें, और इस symbol को अपरिभाषित(undefined) करें
  3. Undefine symbol को refer करने वाला symbol टेबल entry से associated forward references की list में जोड़ा जाता है |
  4. जब symbol के लिए definition encounter किया जाता है , तो symbol के लिए proper address फिर से किसी भी instruction में insert किया जाता है | जो की forward reference list के अनुसार होता है

Load और go Assembler

Program के अंत में ⇒

  1. कोई भी SYMTAB entries जो अभी * के साथ marked है , undefined symbol को indicate करती है।
  2. SYMTAB को END statement में दिए गए symbol के लिए सर्च करें और execution की शुरुआत करने के लिए इस location पर JUMP करें
  3. Actual starting address assembly time पर specified किया जाना चाहिए

Producing Object Code

  1. जब external working-storage डिवाइस उपलब्ध न हो या बहुत धीमा हो (Two pass के बीच के intermediate file के लिए)
  2. Solution:
    1. जब symbol की definition encounter होती है ।तो assembler को सही operand address के एक और TEX record generate करना होगा।
    2. लोडर का उपयोग forward reference को पूरा करने के लिए किया जाता है । जो assembler के द्वारा handled नही किया जा सकता है ।
    3. Object program record को उनके original order में रखा जाना चाहिए । जब उन्हें लोडर के सामने present किया जाना हो ।

Multi Pass Assembler ⇒

EQU और ORG पर RESTRICTION:

  1. कोई forward reference नही , since symbolic value को पहले pass के दौरान define नही किया जा सकता है ।

उदाहरण :

  1. Link list का प्रयोग करें , जिसकी value undefined symbol पर निर्भर करती है।

Implementation उदाहरण ⇒

  1. Microsoft MASM असेम्बलर
  2. Sun Sparc असेम्बलर
  3. IBM AIX असेम्बलर

Microsoft MASM असेम्बलर

  • Segment ⇒
    • एक collection segment , प्रत्येक segment को एक particular class , CODE, DATA, CONST , STACK से संबंधित के रूप में define किया गया है।
  • Registers ⇒
    • CS (code) , SS (stack) , DS (data) ES ,FS ,GS
    • SIC में program Block के सामान
  • ASSUME ⇒
    • उदा.     ASSUME      ES:DATASEG2
      उदा.     MOVE     AX,DATASEG2
                  MOVE       ES, AX
    • SIC में BASE के सामान

    Forward reference के साथ JUMP

    • near JUMP :    2 या 3 bytes
    • far JUMP :    5 bytes
    • उदा.     JMP TARGET
    • Warning :    JMP     FAR PTR TARGET
    • Warning :    JMP     SHORT TARGET
    • Pass 1:    JUMP    instruction के लिए 3 bytes reserves करता है
    • Phase error

    Section

    • .TEXT , .DATA , RODATA , .BSS

    SYMBOLS

    • Global vs weak
    • SIC में EXTDEP और EXTREF के combination के सामान

    Delayed branches

    • delayed slots
    • annulled branch instruction

    AIX Assembler PowerPC

    • System/370 के अनुसार
    • BASE relative addressing
      • save instruction space, no absolute address
      • base register table :
        • general purpose register का उपयोग base register के रूप में किया जा सकता है
      • Program relocation के लिए easy
        • केवल वे डेटा जिनकी value actual address की है , उन्हें modified करने की आवश्यकता है |
        • उदा.
          USING      LENGTH, 1 USING      LENGTH , 4
        • SIC में BASE के सामान
        • DROP
    • Alignment:-
      • instruction(2)
      • data: halfward operand (2) , fullward operand (4)
      • slack bytes
      • . CSECT
        • control sections: RO(केवल डाटा को पढ़ा जा सकता है ), RW(read-write data), PR(executable instructions), BS(uninitialized read/write data)
      • dummy section

एक टिप्पणी भेजें

0 टिप्पणियाँ