Ўзбекистон республикаси олий ва ўрта махсус таълим вазирлиги олий таълим тизими педагог ва раҳбар кадрларини


Download 5.84 Mb.
Pdf ko'rish
bet65/121
Sana12.11.2023
Hajmi5.84 Mb.
#1768329
1   ...   61   62   63   64   65   66   67   68   ...   121
Bog'liq
deshifr

Арифметик амаллар. х86 ассембрлаш тили кўплаб содда арифметик 
амалларни қўллаб қуватлайди. 
1
Кўрсатмалар 
Изоҳ 
sub eax, 0x10 
EAX регистор қийматидан 0х10 ни олиб ташлаш. 
add eax, ebx 
EBX қийматига EAX қийматини қўшиш ва EAX га ўзлаштириш. 
inc edx 
EDX регистор қийматини 1 га ошириш. 
dec ecx 
ECX регистор қийматини 1 га камайтириш. 
1
Michael Sikorski, Andrew Honig. Practical malware analysis. 74 – с. 


III. НАЗАРИЙ МАТЕРИАЛЛАР 
106 
mul 0x50 
EAX регистор қиймати 0х50 га кўпайтирилади. 64 битли натижа 
EDX:EAX регисторларига сақланади. 32 битли катта қисми EDX га ва 
кичик 32 битли қисм EAX га сақланади. 
div 0x75 
EDX:EAX 64 битли регистор қийматлари 0х75 га бўлинади ва натижа 
EAX га ва қолдиқ EDX га сақланади. 
xor eax, eax 
EAX регистор қийматини тозалаш 
or eax, 0x7575 
EAX регистори қийматига 0х7575 ни мантиқий қўшиш амалида қўшиш 
shl eax, 2 
EAX регистор қийматини 2 бит чапга силжитиш. 
shr eax, 2 
EAX регистор қийматини 2 бит ўнга силжитиш. 
ror bl, 2 
Bl регистор қийматини ўнга циклик 2 бит айлантириш. 
rol bl, 2 
Bl регистор қийматини чапга циклик 2 бит айлантириш. 
nop 
Ҳеч қандай амални бажармайди. Кейинги кўрсатмага ўтилади. 
Стек. Асосий хотиранинг қисми, стекда функцияга тегишли бўлган 
ўзгарувчилар ва параметрлар сақланади. Стекда амалга ошириладиган 
кўрсатмалар, push, pop, call, leave, enter ва ret бўлиши мумкин.
Push кўрсаткичи стекдаги регисторни жойлашувини қуйи хотира 
қисмига, яъни тезроқ бажариш учун ўзгартиради. 
Pop кўрсаткичи стекдаги регисторни жойлашувини юқори хотира 
қисмига, яъни кейинроқ бажариш учун ўзгартиради. 
Call кўрсаткичи кейинги стекни чақириш учун фойдаланилади. 
Leave кўрсаткичи ESP қийматини EBP га ўрнатади ва кейин EBP ни 
юқори хотира қисмига ўтказади, яъни, mov( ebp, esp ); pop( ebp ); 
Enter кўрсаткичи қуйидаги кўрсаткичлар кетма-кетлигига тенг: push 
ebp; mov ebp, esp.  
Шартлар. Барча тилларда бўлгани каби ассембрлаш тилида ҳам 
шартлар мавжуд бўлиб, асосан иккита test ва cmp кўрсаткичидан кенг 
фойдаланилади. Test кўрсаткичи and кўрсаткичига ўхшаш бўлиб, бундан 
ташқари операндлар кўрсаткич томонидан ўзгартирилмайди. Test кўрсаткичи 
фақат байроқни ўрнатиш учун фойдаланилади. Одатда test кўрсаткичидан 
сўнг ZF байроғи ўрнатилади. Test кўрсаткичи бир операнд доирасида операнд 
қийматини NULL тенглигини текширишда фойдаланилади. Масалан, test 
eax,eax кўрсаткичи eax AND eax кўрсаткичига тенг бўлиб, натижага кўра ZF 
байроқ ўрнатилади. 
Cmp кўрсаткичи иккинчи кенг фойдаланиладиган шартли белги бўлиб, 
вазифаси жихатидан sub кўрсаткичига тенгдир. Бу кўрсаткич ҳам операндга 
таъсир қилмай фақт байроқ ҳолатини ўзгартириш учун ишлатилади. Бу шарт 
натижасида ZF ва CF байроқлар ўрнатилиши мумкин. Қуйидаги жадвалда 
cmp кўрсаткичи билан боғлиқ бўлган мисоллар берилган: 


III. НАЗАРИЙ МАТЕРИАЛЛАР 

Download 5.84 Mb.

Do'stlaringiz bilan baham:
1   ...   61   62   63   64   65   66   67   68   ...   121




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