Ўзбекистон республикаси олий ва ўрта махсус таълим вазирлиги олий таълим тизими педагог ва раҳбар кадрларини
Download 5.84 Mb. Pdf ko'rish
|
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 кўрсаткичи билан боғлиқ бўлган мисоллар берилган: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling