Ассемблерлар. Объект кодни ҳосил қилиш. Ассемблер жадвали ва алгоритми
Download 230.64 Kb.
|
Assemblerlar
- Bu sahifa navigatsiya:
- Ассемблернинг асосий вазифалари.
§3. Ассемблерлар. Объект кодни ҳосил қилиш. Ассемблер жадвали ва алгоритмиАссемблер жараёнида дастурдаги буйруқларнинг мнемоник кодларига уларга мос машина эквивалентларига ўтказиш, дастурдаги белги нишонларга машина адресларини тайинлашдек вазифалар бажарилади. Биз СЎМ ва СЎМ/ҚВ учун ассемблерларни кўриб чиқамиз. Бу мисолларда ассемблерлар учун умумий бўлган томонлари, ассемблерда ишлатиладиган алгоритмлар, берилганлар тузилишлари кўриб чиқилади. Ассемблернинг машинанинг аппарат хусусиятларига боғлиқ бўлган томонлари CЎМ/ҚВ учун кўрилган ассемблерларда қурилади. Ассемблернинг асосий вазифалари. СЎМ учун ассемблер тилидаги дастур ёрдамида ассемблернинг асосий хусусиятларини кўрамиз. Бу дастур матни қуйида келтирилади.
Келтирилган дастурга изоҳ берайлик. Сатр номери мурожаат қилиш учун ишлатилади ва дастур таркибига кирмайди. «*» белгисидан бошланувчи сатр изоҳ ҳисобланади. қуйидагилар ассемблер директивалари ҳисобланади: START – дастур номи ва бошланғич адресини аниқлайди; END – дастур охирини кўрсатади ва дастурнинг биринчи бажарилувчи буйруғини аниқлайди; BYTE - берилганларни хотирада тасвирлаш учун керак байтларни аниқлайди; WORD – сўз катталигидаги ўзгармасни аниқлайди. RESB – берилганлар учун қанча байт кетма-кетлигини ажратиш кераклиги билдиради. RESW – берилганлар учун қанча сўз ажратиш кераклигини кўрсатади. Дастур учта қисмдан иборат. Асосий дастур киритиш қурилмасидан берилганларни ўқийди (F1H – қурилма) ва чиқариш қурилмасига (05H) чиқаради. Берилганларни ўқиш RDREC, уларни ёзиш WRREC қисм дастурлари орқали амалга оширилади, бунда хотира буферидан фойдаланилади. Ассемблер жараёнида дастур бошланғич матнидан машина кодига ўтиш амалга оширилади. Бунинг учун қуйидаги ишлар бажарилиши керак. Амалнинг (операциянинг) мнемоник кодини унга эквивалент машина тилидаги кодига ўтказиш керак. Масалан, STL ® 14H. Мос форматдаги машина буйруқларини кўриш. Ўзгармасларни машина хотирасидаги ички кўринишига (кодига) ўтказиш. Масалан, EOF ® 454F46. Объект дастурни маълумот сақлагичга ёзиш ва матнини чиқариш. Шу ўринда буйруқларнинг мнемоник кодларига мос машина кодларини ва уларнинг мазмунларини келтириш мақсадга мувофиқдир. қуйида дастурларда учрайдиган буйруқлар тўплам остиси келтирилган.
Ассемблер жараёнида дастур матни маълумот оқими сифатида қаралади, яъни сатрлар кетма-кет ўқилади ва қайта ишланади. Бу жараённинг 2-қадамидан бошқасини амалга ошириш қийинчилик туғдирмайди. Мисол учун, “10 FIRST STL RETADR” қаторидаги буйруқ учун машина кодини ҳосил қилишда буйруқ форматининг адрес майдони қийматини аниқлашнинг иложи йўқ, чунки RETADR адреси (у нишон бўлган қатор) ҳали учрамаган. Шу сабабли ассемблер икки ўтиш қилади. Биринчи ўтишда белги номлар (нишонлар) адресларини аниқлайди, иккинчи ўтишда бевосита трансляцияни амалга оширади. Дастур матнида ассемблер кўрсатмалари (директивалари) бўлиб, улар бевосита машина буйруқларига ўтмайди ва ассемблер жараёнини бошқаришга хизмат қилади. Ассемблер жараёнининг охирги босқичида дастур матнига мос объект дастур ҳосил бўлади (ихчамлик учун объект кодлар дастур матнидаги «Объект коди» устунида келтирилган), кейинчалик бу объект дастур оператив хотирага бажариш учун юкланади. Объект дастур тузилишига кўра учта ёзувдан иборат бўлади: бош қисм ёзуви; дастур танаси; тугаллаш ёзуви. Бош қисм ёзуви. Устунлар
Дастур танаси. Устунлар
Тугаллаш ёзуви. Устунлар.
Юқорида келтирилган дастурнинг объект дастурси: H^COPY ^001000^00107A T^001000^1E^141033^482039^001036^281030^301015^482061^3C1003^00102A^0C1039^00102D T^00101E^15^0C1036^482061^081033^4C0000^454F46^000003^000000 . . . T^002073^07^382064^4C0000^05 E^001000 Бу ерда ^– белгиси ажратувчи сифатида келаяпти ва дастур таркибига кирмайди. Download 230.64 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling