Basic Assembler Function in hindi ,A simple SIC Assembler in hindi with example


Basic Assembler Function in hindi 

  1. Basic Asssembler function in hindi?
  2. Example of a SIC Assembler language program?
  3. A simple SIC Assembler ?
  4. Program from fig. "Example of a SIC Assembler language program"  with object code

Basic Assembler Function

चित्र 2.1 SIC के मूल संस्करण(basic virsion) के लिए एक असेंबलर language program दिखाता है हम इस प्रोग्राम की भिन्नताओं (variations) का उपयोग इस Assembler से सबंधित पोस्ट  में विभिन्न Assembler विशेषताओं को दिखाने के लिए  करेंगे ।
लाइन नंबर केवल संदर्भ(reference) के लिए हैं और program का हिस्सा नहीं हैं।
 ये संख्याएँ प्रोग्राम के different virsons के संबंधित भागों से relate होने में भी मदद करती हैं।
उपयोग किए गए mnemonic निर्देश खंड 1.2.1 में प्रस्तुत किए गए हैं  ।
 Indexed addressing को ऑपरेंड के बाद modifier "X" जोड़कर indicate किया जाता है | (लाइन 160 देखें)। "." के साथ शुरू होने वाली लाइनें केवल टिप्पणियां (कमेंट्स) होती हैं।

Mnemonic मशीन निर्देशों (instrucrtions) के अलावा, हमने निम्नलिखित Assembler निर्देशों का उपयोग किया है:
START
Program के लिए नाम और शुरुआती पता (address) specify( निर्दिष्ट) करता है ।
END
Source program  के अंत को indicate करता है  और (वैकल्पिक रूप से) program में पहला निष्पादन  योग्य(executable) निर्देश specify करता है ।
BYTE
Character या हेक्साडेसिमल constant generate करता है , constant को  प्रतिनिधित्व (represent) करने के लिए आवश्यक  कई बाइट्स को आवश्यकता के अनुसार   occupy करता है ।
WORD
one-word integer constant  generate करता है
RESB
एक डेटा area के लिए बाइट्स की indicated number को reserve  करता है ।
RESW
 किसी डेटा area के लिए indicated number of words  को  Reserve करता है।


Program में एक main routine शामिल  होता  है जो एक इनपुट डिवाइस से रिकॉर्ड पढ़ती है (डिवाइस कोड Fl के साथ पहचाना जाता है) और उन्हें एक आउटपुट डिवाइस (कोड 05) पर कॉपी करता है।
 यह main routine सबरूटीन RDREC को एक बफर में रिकॉर्ड करने के लिए कॉल करती है और बफर से सबरूटीन WRREC को आउटपुट डिवाइस पर रिकॉर्ड लिखने के लिए|




प्रत्येक सबरूटीन को    एक बार में रिकॉर्ड के  एक character  को transfer करना होगा | क्योंकि  केवल I / O instructions RD और WD उपलब्ध हैं। \
बफर आवश्यक है क्योंकि I / O दर दोनों उपकरणों के लिए , जैसे कि डिस्क और slow प्रिंटिंग टर्मिनल, बहुत भिन्न हो सकते हैं।



प्रत्येक रिकॉर्ड के अंत को एक null character (हेक्साडेसिमल 00) के साथ marked किया गया है। यदि कोई रिकॉर्ड बफ़र (4096 बाइट्स) की लंबाई से अधिक है, तो केवल पहले 4096 बाइट्स की copy बनाई जाती है।

(Simplicity के लिए, प्रोग्राम error recovery से deal नही करता है यदि  जब  रिकॉर्ड जिसमे   4096 bytes या उससे अधिक  read किया जाता है |)

Copied की जाने वाली फ़ाइल का अंत zero-length रिकॉर्ड द्वारा indicate किया जाता है जब फ़ाइल के अंत का पता लगाया जाता है, तो प्रोग्राम आउटपुट डिवाइस पर EOF लिखता है और एक RSUB निर्देश की executing करके terminates होता है।

 हम मानते हैं कि इस program को JSUB instruction का उपयोग करके ऑपरेटिंग सिस्टम द्वारा call किया  गया था ,  इस प्रकार, RSUB ऑपरेटिंग सिस्टम पर control return करेंगा ।

Simple SIC Assembler :
चित्र 2.2 प्रत्येक statement के लिए generated object कोड के साथ चित्र 2.1 में समान program दिखाता है।

 Assembled program के प्रत्येक भाग के लिए कॉलम headed Loc  मशीन address (हेक्साडेसिमल में) देता है।

हमने मान लिया है कि prgram 1000 से शुरू होता है।
(एक actual assembler listing में, निश्चित रूप से, comments को बरकरार(retained) रखा जाएगा;
space को बचाने के लिए उन्हें यहां eliminae कर दिया गया है।]

 source program का ऑब्जेक्ट कोड में translation  के लिए हमें निम्नलिखित functions को पूरा करने की आवश्यकता है (दिए गए क्रम में आवश्यक नहीं):

1. 1. mnemonic ऑपरेशन कोड को उनकी मशीन language equivalents में convert करें
-उदा।, STL को  14 (लाइन 10) में translate करें।

2. Symbolic ऑपरेंड को उनके equivalent मशीन address में convert करें-
जैसे, RETADR को  1033 (पंक्ति 10) में translate करें।
3. Proper format  में मशीन के instructions को  निर्माण(build) करें।

 4. Source program में specified डेटा constants को उनके internal मशीन representations में convert करें,
उदा. EOF को 454F46 (पंक्ति 80) में translate करें।

5. ऑब्जेक्ट प्रोग्राम और असेंबली लिस्टिंग लिखें

नंबर 2 को छोड़कर इन सभी functions को आसानी से source program के sequential processing द्वारा पूरा किया जा सकता है, एक समय में एक पंक्ति। हालाँकि, addresses  का translation एक समस्या प्रस्तुत करता है।
इस Statement पर विचार (consider) करें
10   1000   FIRST   STL   RETADR   141033



टिप्पणी पोस्ट करें

0 टिप्पणियां