1-маъруза. Ассемблердан икки ўтишли транслятор


Ассемблер жадваллари ва алгоритми


Download 74.88 Kb.
bet5/6
Sana20.11.2023
Hajmi74.88 Kb.
#1789604
TuriПрограмма
1   2   3   4   5   6
Bog'liq
SO`M

Ассемблер жадваллари ва алгоритми
Юқорида қайд қилганимиздек ассемблер иккита босқичда амалга оширалади.
Биринчи ўтиш.

  1. Программада хар ифода (сатр) учун адресларни мос қўйиш.

  2. Ҳар бир нишонга тайинланган адресни эслаб қолиш.

  3. Ассемблер директиваларини бажариш (BYTE, RESW,..).

Иккинчи ўтиш.

  1. Буйруқлар трансляцияси (буйруқлар кодига утиш ва адрес мурожаатларини ҳал қилиш).

  2. BYTE, WORD ва бошқа директиваларига мос берилганларини ҳосил қилиш.

  3. Биринчи ўтишда бажарилмаган ассемблер директиваларини бажариш.

  4. Объект кодларни маълумот сақлагича ёзиш ва программа чоп қилиш.

СЎМ ассемблери иккита ички жадвалдан фойдаланади: буйруқлар кодларининг жадваллари (OPTAB) ва рамзий номлар жадвали (SYMTAB). OPTAB буйруқлар мнемоник номлари билан уларнинг машина эквивалентларини сақлайди, SYMTAB эса программадаги номлар (нишонлар) қиймати – адресларини сақлаш учун ишлатилади.
Булардан ташқари адреслар ҳисоблагичи – LOCCTR керак бўла­ди. LOCCTR – ўзгарувчи бўлиб, у адресларни тайинлашда ишлати­лади. LOCCTRнинг бошланғич қиймати START ассемблер директива­сининг операнди билан аниқланади. Программанинг навбатдаги сатри қайта ишлангандан кейин, буйруқ узунлиги ёки берилганлар соҳаси­нинг узунлиги LOCCTRга қўшилади.
OPTABда камида рамзий номлар ва уларнинг машина эквивалентини сақланиши керак. Мураккаб ассемблерларда OPTAB қўшимча равишда буйруқлар узунликлари ва форматларини сақлаши керак.
Ассемблернинг биринчи ўтишидаги OPTAB буйруқлар кодлари тўғри ёзилган ёки йуқлигини аниқлаш учун фойдаланилади. Иккинчи ўтишда мнемоник кодларни машина кўринишига ўтказиш учун фойдаланилади.
SYMTAB бошланғич программадаги номлар ва уларнинг қиймат­лари­дан, хамда хатолик аломатларидан иборат бўлади (масалан, нишоннинг икки марта эълон қилинган ҳолати).
3-маъруза. Бошқарув секциялари ва программаларни боғлаш. Абсолют юклагич

Бошқарув секцияси (БС) - программа қисми бўлиб, у ассемблер жараёнидан кейин ўз алоҳидалигини сақлаб колади ва бошқаларга боғлиқмас равишда хотирага юкланиши ва кўчирилиши мумкин. Одатда БС қисмпрограмма бўлади.


БСлар бирорта программанинг мантиқий боғланган қисмпрограм­малари бўлганлиги сабабли уларни боғлашни амалга ошириш восита­ла­ри бўлиши керак. Мисол учун бир БСдаги буйруқлар иккинчи БСдаги буйруқ ёки берилганлар соҳасига мурожаат қила олиши керак. Бундай мурожаатларни оддий усулда амалга ошириб бўлмайди, чунки ассем­блер жараёнини амалга ошириш пайтида ҳар бир БСнинг хотиранинг қайси жойига юкланиши номаълум бўлади. БСлар ўртасидаги боғла­ниш­лар (кўрсатгичлар) ташқи кўрсатгичлар дейилади.
Қуйида СЎМ/ҚВ учун кўрилган программани БСларга ажратилган варианти келтирилган.



Сатр номери

Жойлашув адреси

Нишон

Буйруқ

Операнд

Объект коди

Изоҳ

5

0000

COPY

START

0




Файл нусхасини олиш

6







EXTDEF

BUFFER,BUFEND,LENGTH




7







EXTREF

RDREC, WRREC




10

0000

FIRST

STL

RETADR

172027

Download 74.88 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling