Байроқлар реестри Байроқ – бу 1 (байроқ ўрнатилган), агар бирон бир шарт бажарилган бўлса, акс ҳолда 0 (байроқ олиб ташланган) қийматларини қабул қилувчи бит. Процессордаги байроқлар регистри процессорнинг жорий ҳолатини кўрсатиб турувчи байроқлар тўпламидан иборат.
2. Ассемблер тилиниг асосий тушунчалари Идентификаторлар _ . ? @ $ белгиларни, сонларни ва лотин ҳарфларини ишлатиш мумкин. Катта ва кичик ҳарфлар эквивалент ҳисобланади.
Бутун сонлар 2, 8, 10, 16 саноқ тизимларидаги бутун сонлар ишлатилади. Саноқ тизимини кўрсатиш учун ҳарф охирига мослиги бўйича b, o/q, d ёки h ҳарфлари қўйилади. Ҳарф билан бошланадигна 16-лик сонлар 0 дан бошланишлари керак, бўлмаса компилятор уларни идентификаторлардан фарқлай олмайди.
Символли маълумотлар Символлар ва қаторлар ассемблер тилида апостроф ва қўштирноқларга олинади. Қуйидаги мисоллар эквивалент: 'don''t', 'don"t', "don't", "don""t".
Изоҳлар Ассемблер тилида изоҳлар “нуқта вергулдан бошланади” ва буйруқлардан кейин ёки қатор бошида бошланиши ҳам мумкин.
Эквивалент директиваси Эквивалент директиваси ўзгармасларга таъриф беришга ёрдам беради:
<номи> EQU <операнд> Ўзгармас ифодалар, қатор ва бошқа номлар операнд бўлиши мумкин.
Маълумотларни аниқлаш директивалари Ассемблер тилида 5 та маълумотларни аниқлаш директивалари мавжуд:
DB (define byte) – 1 байт ҳажмга эга ўзгарувчанни аниқлайди;
DT (define ten bytes) – 10 байт ҳажмга эга ўзгарувчанни аниқлайди.
Барча директивалар оддий ўзгарувчанларни ва массивларни эълон қилиш учун ишлатилиши мумкин.
Маълумотларни аниқлаш директивалари синтаксиси қуйидагича:
<номи> DB <операнд> [, <операнд>] <номи > DW <операнд> [, <операнд>] <номи > DD <операнд> [, <операнд>] <номи > DQ <операнд> [, <операнд>] < номи > DT <операнд> [, <операнд>] Операнд ўзгарувчаннинг бошланғич қийматини беради. Операнд сифатида сон, символ ёки сўроқ белгиси (инициализация қилинмаган ўзгарувчанларни аниқлаш) бўлиши мумкин.
Буйруқлар Ассемблер тилининг буйруқлари – машина буйруқларини символлар кўринишидаги ёзилиши. Буйруқлар қуйидаги синтаксисга эга:
[<белги>:] <мнемокод> [<операндлар>] [;<изоҳ>] Белги – бу ном. Белги албатта икки нуқта билан ажралиши керак, аммо алоҳида жойланиши ҳам мумкин.
Белгилар бошқа жойлардаги буйруқларга ҳавола қилиш учун керак, масалан ўтиш буйруқларида. Ассемблер тили компилятори белгиларни буйруқларнинг адреси билан ўзгартиради.
Мнемокод – бу бажарилиши лозим бўлган операцияни кўрсатувчи ишчи сўз. Мнемокод буйруқнинг асосий қисм деб ҳисобланади.
Буйруқлар операндаси бир бирларидан вергул билан ажратиладилар.
Буйруқлар операндаси Ассемблер тилида опернд бўлиб қуйидагилар ишлатилади:
Адресни кўрсатиш учун қуйидаги имкониятлар мавжуд:
Ўзгарувчининг номи унинг адреси бўлади. Масалан, х ўзгарувчисига мурожаат қилиш учун буйруқда х ёки [х] кўрсатилади.
Хотира ячейкаси адреси регистрда сақланиши мумкин. Хотирага регистрда сақланувчи адрес орқали мурожаат қилиш учун, буйруқда регистрнинг номи тўртбурчакли қавсда ёзилади. Масалан, [ebx]. Айтиб ўтилганидек, база регистрлари сифатида EBX, ESI, EDI ва EBP регистрларини қўллаш таклиф этилади.
Адресни формула орқали ҳам аниқлаш мумкин. Бунинг учун тўртбурчакли қавсда ифодалар ёзилади, масалан, [ebx + ecx] ёки [ebx + 4 * ecx].
Ассемблер тилининг буйруқлар тавсифида операндларни белгилаш учун ҳарфлардан иборат бўлган қисқартирмалар ишлатилади, r (регистрлар учун), m (хотира учун) ёки i (тўғридан тўғри операндалр учун) ва опернаднинг ҳажмини кўрсатувчи сонлар 8, 16 ёки 32. Масалан: