![cover image](https://wikiwandv2-19431.kxcdn.com/_next/image?url=https://upload.wikimedia.org/wikipedia/commons/thumb/c/c0/W65C816S_Machine_Code_Monitor.jpeg/640px-W65C816S_Machine_Code_Monitor.jpeg&w=640&q=50)
Mashina kodı
From Wikipedia, the free encyclopedia
Programmalastırıwda mashina kodı yamasa mashina tili (ingl. machine code)− kompyuterdiń oraylıq processor blogın (CPU) basqarıw ushın qollanılatuǵın mashina tili kórsetpelerinen ibarat kompyuter kodı. Onlıq kompyuterler bir waqıtları keń tarqalgan bolsa da, házirgi zaman bazarında binar kompyuterler ústemlik etedi; bul kompyuterler ushın mashina kodı "kompyuter tárepinen oqıw hám túsindiretuǵın kompyuter programmasınıń binar yaǵnıy ekilik kórinisi. Mashina kodındaǵı programma mashina kórsetpeleri izbe-izliginen ibarat (múmkin maǵlıwmatlar menen aralasqan)."[1]
![Thumb image](http://upload.wikimedia.org/wikipedia/commons/thumb/c/c0/W65C816S_Machine_Code_Monitor.jpeg/640px-W65C816S_Machine_Code_Monitor.jpeg)
Hárbir kórsetpe processordı, processor registrlerindegi yamasa yadındaǵı maǵlıwmatlardıń bir yamasa bir neshe birliklerinde júklew, saqlaw, ótiw yamasa arifmetikalıq logikalıq birlik (ALU) operaciyası sıyaqlı júdá anıq wazıypanı orınlawǵa májbúr etedi.
Dáslepki processorlarda hárbir shıǵarılǵan jańa processor menen keri úylesimlilikti buzıwı múmkin bolǵan arnawlı kodı bar edi. Kórsetpeler toplamı arxitekturası (ISA) túsinigi onıń anıq orınlanıwın kórsetpesten, sistemanıń komandalar jıynaǵınıń yadındaǵı minez-qulqın hám kodlawın anıqlaydı hám belgileydi. Bul processorlar toparında úylesimlilikke imkaniyat beretuǵın abstrakciyalıq dáreje retinde háreket etedi, usılayınsha ISA standartına sáykes jazılǵan yamasa jaratılǵan mashina kodı shańaraqlıq barlıq processorlarda, sonıń ishinde keleshektegi processorlarda da jumıs isleydi.
Ulıwma, hárbir arxitekturalıq shańaraq (mısalı, x86, ARM) óziniń ISA, arnawlı mashina kodı tili bar. PDP-11 kórsetpeler toplamına qosımsha qollawdı qamtıytuǵın VAX arxitekturası hám IA-32 kórsetpeler toplamına qosımsha qollawdı óz ishine alatuǵın IA-64 sıyaqlı ózgeshelikleri bar. Taǵı bir mısal PowerPC 615 processorı PowerPC hám x86 kórsetpeleriniń ekewin de qayta islewge arnalǵan.
Mashina kodı − qatań sanlı til hám baǵdarlamashıǵa arnalǵan oraylıq processordıń eń tómen dárejeli interfeysi. Assembler tili sanlı mashina kodı menen adam oqıy alatuǵın versiya arasında tikkeley salıstırıwdı támiyinleydi, onda sanlı operaciya kodları menen operandlar oqılatuǵın qatarlar menen almastırıladı (mısalı, x86 sistemasında NOP kórsetpesi retinde 0x90, 0xB8 MOV kórsetpesi, 0xE8 - CALL yamasa 0x0F05 degendi bildiredi, SYSCALL kórsetpesi ushın). Programmalardı tikkeley mashina kodında jazıw múmkin bolsa da, jeke bitlerdi basqarıw hám sanlı adresler menen konstantalardı qol menen esaplaw jalıqtıradı hám qátege beyim. Usı sebepli, programmalar házirgi kontekstlerde tikkeley mashina kodında júdá siyrek jazıladı, biraq tómen dárejeli otladka, programmanı dúzetiw (ásirese assembler deregi bar bolmaǵanda) hám assembler tilin ajıratıw ushın orınlanıwı múmkin.
Házirgi waqıtta programmalardıń kópshiligi joqarı dárejeli tillerde jazılǵan. Bul programmalar kompilyator arqalı mashina kodına awdarıladı yamasa interpretator arqalı túsindiriledi, ádette bayt kod sıyaqlı aralıq kodqa awdarılǵannan keyin, soń interpretaciyalanadı.
Mashina kodı anıqlaması boyınsha baǵdarlamashıǵa kórinetuǵın programmalastırıw anıqlamasınıń eń tómen dárejesi bolıp tabıladı, biraq ishki kóplegen processorlar mikrokodtı paydalanadı yamasa mashina kodı kórsetpelerin mikro-operaciyalar dizbeginde optimallastıradı hám túrlendiredi. Mikrokod hám mikro-operaciyalar ádette mashina kodı bolıp esaplanbaydı; ayırım mashinalardı qospaǵanda, paydalanıwshı mikrokodtı yamasa mikro-operaciyalardı jaza almaydı, al mikrokodtıń jumısı hám mashina kodı kórsetpeleriniń mikro-operaciyalarǵa túrleniwi ónimlilikke baylanıslı alternativ tásirlerdi qospaǵanda, baǵdarlamashı ushın ashıq túrde júredi.