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 (असेम्बलर डिजाईन करने के विकल्प )
One-pass असेम्बलर्स
Multi-pass असेम्बलर्स
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) के लिए जिसे अभी तक परिभाषित नहीं किया गया है ⇒
Address translation को छोड़ दें
Symbol को SYMTAB में डालें, और इस symbol को अपरिभाषित(undefined) करें
Undefine symbol को refer करने वाला symbol टेबल entry से associated forward references की list में जोड़ा जाता है |
जब symbol के लिए definition encounter किया जाता है , तो symbol के लिए proper address फिर से किसी भी instruction में insert किया जाता है | जो की forward reference list के अनुसार होता है
Load और go Assembler
Program के अंत में ⇒
कोई भी SYMTAB entries जो अभी * के साथ marked है , undefined symbol को indicate करती है।
SYMTAB को END statement में दिए गए symbol के लिए सर्च करें और execution की शुरुआत करने के लिए इस location पर JUMP करें
Actual starting address assembly time पर specified किया जाना चाहिए
Producing Object Code
जब external working-storage डिवाइस उपलब्ध न हो या बहुत धीमा हो (Two pass के बीच के intermediate file के लिए)
Solution:
जब symbol की definition encounter होती है ।तो assembler को सही operand address के एक और TEX record generate करना होगा।
लोडर का उपयोग forward reference को पूरा करने के लिए किया जाता है । जो assembler के द्वारा handled नही किया जा सकता है ।
Object program record को उनके original order में रखा जाना चाहिए ।
जब उन्हें लोडर के सामने present किया जाना हो ।
Multi Pass Assembler ⇒
EQU और ORG पर RESTRICTION:
कोई forward reference नही , since symbolic value को पहले pass के दौरान define नही किया जा सकता है ।
उदाहरण :
Link list का प्रयोग करें , जिसकी value undefined symbol पर निर्भर करती है।
Implementation उदाहरण ⇒
Microsoft MASM असेम्बलर
Sun Sparc असेम्बलर
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)
1 टिप्पणियाँ
Kya loaders and linkers ka pdf mil jayga hindi me
जवाब देंहटाएंआपके सुझाव सादर आमंत्रित है