Кўрсатмалар (Instructions).
Кўрсатмалар ассемблер тилининг қурувчи
блокларидир. Х86 ассемблер тилида, кўрсатмалар
mnemonic
ва
operand
лардан қурилади. Қуйидаги 5.12 – расмда
mnemonic
сўз шаклиди
ифодаланган кўрсатмани
mov
орқали, яъни маълумотни кўчиришни
тасвирлаган.
Operand
лар маълумотни кўрсатишда регисторлар ѐки
маълумотлардан фойдаланади.
1
5.12 - расм. Кўрсатмалар формати
Амалий кодлар ва тескари тартиб (Opcodes and Endianness).
CPU да
кўрсатмаларни юборишда амалий кодлардан фойдаланган ҳолда ассемблер
коди машина кодига ўтказилади. Дизассембрлашда амалий кодлар инсон
тушинадиган тилга (ассемблер тилига) ўзгартирилади. Қуйидаги 5.13 -
расмда
B9 42 00 00 00
амалий кодни ассемблер тилида
mov ecx, 0x42
шаклида
ўтказилганлиги кўрсатилган. Бунда
0xB9
коди мос ҳолда
mov ecx
га ва
0x42000000
коди эса
0x42
га айлантирилган.
1
Michael Sikorski, Andrew Honig. Practical malware analysis. 69 – с.
III. НАЗАРИЙ МАТЕРИАЛЛАР
104
5.13 - расм.
х86 архитектурасида, 0x42000000 кодини ассемблер кодига ўтказишда
тескари тартибдан
фойдаланилади, яъни кетма-кетлик байтлаб тескари
томондан ўқилади ва 0x42 қиймати олинади.
Operandлар.
Операндлар кўрсатмалар орқали маълумотларни
танитишда фойдаланилади. Уч турдаги операндлар бўлиши мумкин:
1.
Бевосита операндлар.
Бу турдаги операндлар қатий белгиланган
катталиклар билан ифодаланади, масалан, 0х42.
2.
Регистор операндлар
регистор қиймати билан белгиланади, масалан,
ecx.
3.
Хотира манзиллари операндлари.
Бу турдаги операндлар кўрсатилган
хотира адресидаги қиймат орқали ифодаланади. Хусусий ҳолда қийматлар,
регистор ва қавс ичида ѐзилган кетма-кетликлар орқали ифойдаланади,
масалан, [eax].
Регисторлар.
Регисторлар CPUдаги кичик ҳажмдаги маълумот
сақловчи қурилмалар бўлиб, унда маълумотни ѐзиш ва сақлаш жуду тез
амалга оширилади. Қуйида х86 архитектурасида мавжуд кенг тарқалган
регисторлар турлари келтирилган:
1.
Умумий регисторлар
CPU
томонидан бажарилиш давомида
фойдаланилади.
2.
Сегмент регисторлар
хотира бўлимларини аниқлашда фойдаланилади.
3.
Ҳолат байроқлари
СРU ни бирор амал бажаришида қарор қабул
қилиши учун керак бўлади.
4.
Йўриқнома кўрсаткичлари
кейинги бажарилиши керак бўлган
йўриқномани сақлаш учун фойдаланилади.
Қуйидаги жадвалда юқорида келтирилган регистор турлари ва унга
мисоллар келтирилаган:
Умумий регисторлар
Сегмент
регисторлар
Ҳолат
байроқлари
Йўриқнома
кўрсаткичлари
EAX
EBX
ECX
EDX
EBP
ESP
ESI
CS
SS
DS
ES
FS
GS
EFLAGS
EIP
х86 архитектурасида барча регисторлар 32 бит ўлчамга эга.
Ҳолат байроқлари регистор ҳолатларини кўрсатади. Ҳар бир амал
бажарилишида ҳар бир байроққа 1 ѐки 0 қийматлари ўрнатилади. Қуйидаги
III. НАЗАРИЙ МАТЕРИАЛЛАР
Do'stlaringiz bilan baham: |