Native код Уикипедия

Native код Уикипедия

програмист Memo В. М. Казакова (Изчислителен център "Energosetproject" Институт). 60-те години. Digital (машина) код, "Минск-22".

Машина код (платформа ориентирана код), машина език - набор инструкции (набор от операционни кодове) конкретен компютър. които се тълкува директно от процесора или фърмуеъра на компютъра. [1]

Компютърна програма. написан на машинен език се състои от машинни инструкции. всеки от които е представена в машинен код, като т. н. Кодът - двоичен код отделна операция от системата команди машини. За улеснение на програмирането вместо числови опкодове, който разбира само процесора обикновено използват своите условни писмо мнемоника. Набор от мнемоника, заедно с някои допълнителни функции, наречена асемблер.

Всеки модел на процесор има свой собствен набор инструкции, въпреки че много от моделите на тези инструкции комплекти припокриват силно. Те казват, че процесора Asovmestim с процесора, ако процесора Б. напълно "разбира" машинния код на процесор CPU В. Ако А и В са подмножество на инструкциите, чрез които те са взаимно съвместими, се казва, че те са едно и също "архитектура" (имат една и съща архитектура набор инструкции).

Машина инструкция [| ]

Сделките, регистрирани в една инструкция машина, може да се разделят на "прости" (елементарни операции) и "сложни". Освен това, повечето съвременни процесори се състои от отделни "механизми" - изчислителни единици, които са в състояние да изпълняват само ограничен набор от много прости операции. При изпълнението на друга специална инструкция процесор - Decoder - излъчване (декодира) да последователността на елементарни операции за четене конкретни механизми.

Задайте инструкции Архитектура процесор определя какви операции той може да изпълнява и машинна инструкция, която числови опкодове (опкодове) мач. Опкодовете са с постоянна дължина (у RISC -, Други -arhitektur) и гама (у CISC -arhitektur; например x86 архитектура инструкция е с дължина от 8 до 120 бита).

Съвременните суперскаларна процесори могат да изпълняват множество инструкции за един такт машина.

Машина код като език за програмиране [| ]

Машина код може да се разглежда като примитивен език за програмиране или най-ниското ниво на представяне на компилиран или сглобяване софтуера. Въпреки че е възможно да се създадат програми директно в машинен код, сега се прави рядко поради големите размери на код и отнемащи време ръчни средства за обработка, освен в ситуации, които изискват изключителна оптимизация. Ето защо, по-голямата част от програми, написани на езика по-високо ниво и преведени на родния код съставителите. Машина код е понякога се нарича родния код (също притежават или родния код -. От родната кода на английски език), когато говорят за конкретната платформа части на езика, или библиотеки. [2]

Програма в интерпретирани езици (като Basic или Python), не са преведени на машинен код; вместо това те са или изпълнена директно от езика на интерпретатор или преведено на псевдо-код (байткод). Въпреки това, на преводачите на следните езици (които от своя страна могат да се разглеждат като процесори) обикновено са представени в родния код.

Микрокод [| ]

В някои компютърни архитектури подкрепа машинен код се изпълнява още по-ниско ниво на софтуерно ниво, наречено фърмуера. Това ви позволява да се осигури един интерфейсен език машина на цялата линия или семейството на компютри, които могат да имат значителни структурни различия между тях, и улеснява прехвърлянето на програми в машинен код между различни модели на компютри. Един пример за този подход е семейството на компютри IBM System / 360 и техните приемници: въпреки различната автобус ширина от 8 бита до 64 или по-висока, въпреки това, те имат общ език машина архитектура ниво.

Използване на микрокод слой за изпълнение на емулатор позволява на компютъра да представлява архитектурата на съвсем друг компютър. В линията на системата / 360 се използва за прехвърляне на програми за по-ранните IBM машини за новото семейство - например IBM 1401/1440/1460 емулатор за IBM S / 360 модел 40.

Абсолютно и позиция независим код [| ]

Позиция-независим код (английски позиция независим код.) - програма, която може да се постави във всяка област на паметта, тъй като всички позовавания на паметта в нея роднина (например по отношение на контра инструкция). Такава програма може да бъде преместен в друга област от паметта, по всяко време, за разлика от преместения програмата. което, въпреки че може да бъде зареден в някоя област на паметта, но след натоварването трябва да остане на същото място. [1]

Програмата «Здравей, свят!» [| ]

програма «The Здравей, свят! "За x86 процесор архитектура както следва (в шестнадесетична нотация) (MS DOS операционна система, използвайки изход BIOS Int 10Н прекъсва.):

BB 11-ти януари B9 0D В4 0E 8А 00 07 43 CD 10 Е2 F9 CD 20 48 65 6F 6С 6С 2С 20 57 6F 72 6С 64 21

Тази програма работи с разположението си в компенсира 10016. Отделни инструкции са откроени:

  • BB 11 01. B9 0D 00. B4 0E. 8А 07 - командните регистри за присвояване на стойност.
  • 43 - увеличение регистрирате BX.
  • CD 10 CD 20 - софтуер обаждане прекъсва 1016 и 2016.
  • E2 F9 - екип за организацията на цикъла.
  • данни от малини шоу (низ «Здравей, свят!»).

Вижте също [. | ]