Машинен език: Разлика между версии

Изтрито е съдържание Добавено е съдържание
м Премахната редакция 7324065 на 87.126.55.51 (б.)
Ред 2:
 
== Инструкции в машинния код ==
"Думите" за машината.[[Машинна инструкция|Инструкциите]] са последователности от [[бит (информатика)|битове]] с различни модели, отговарящина ползване на командипаметта, къмкоито машината.съответстват на различните команди.
 
Всеки процесорен модел процесор или клас/семейство процесори има свой собствен машинен[[набор код,от илиинструкции]] наборна смашинен инструкцииезик, въпреки че има доста голямо застъпване между тях<ref>{{Цитат уеб| уеб_адрес= http://fmi.wikidot.com/karh4| заглавие= Лекциите на ФМИ: Инструкции - формати, операции, групи инструкции и формати на данните|достъп_дата = 8 август 2016|фамилно_име= |първо_име= |дата= |труд= |издател= |език= |цитат= }}</ref>. Често последващите или производни модели процесори включват основния набор на предшестващите модели, допълнен с други инструкции. Ако процесорът "А" разбира пълния език на процесора "Б", то казваме, че "А" е съвместим с "Б". "Б" може и да не е съвместим с "А", тъй като "А" може да използва някои команди, които "Б" не може. Случва се следващ модел да премахне или да промени коренно кода на някои инструкции (например необходими за други задачи), което се отразява на съвместимостта; но дори и напълно съвместими процесори могат да имат различия в работата на някои от инструкциите. Компютърните системи се различават и по други елементи, например организация на паметта, операционна система и периферни устройства. Тъй като изпълняваната програма зависи от тези фактори, различните системи като правило не изпълняват един и същ машинен код, макар че използват един и същ процесор.
 
Някои машинни езици отделят за всички свои команди един и същ брой битове, докатот.е. инструкциите имат еднаква дължина, но при други това не е така. ОрганизациятаТова на моделитесилно зависи от спецификациятаконкретната наархитектура машиннияи кодтипа на инструкциите. ШирокоПовечето използваноот тях имат едно или повече полета [[opcode]], в които е отделянетодефиниран основният тип на полетоинструкцията (аритметична, коетологическа, определяза саматапредаване на управлението и др.) и конкретната операция (например "прибавяне"събиране или сравнение) и други полета, определящи вида на [[операнд]]ите, метода на адресиране или самата действителна стойност.<ref>{{cite web|url=http://programmedlessons.org/AssemblyTutorial/Chapter-11/ass11_2.html|title=Immediate Operand|author=Bradley Kjell; kjell at ieee dot org|publisher=}}</ref>
 
Не всички машини или инструкции имат изрично посочени операнди, а те варират според различните модели на паметта в инструкциите. При първите процесори е използван моделът с „един акумулатор“ (или регистър) (Accumulator architecture) и операнд и резултат се комбинират в един регистър за повечето аритметични инструкции (т.е. инструкцията е еднооперандна, като вторият операнд е премълчан). Други процесорни архитектури (например [[8086]] и семейството [[x86]]) използват модел с „разширен акумулатор“ (Register - Memory architecture) с малък брой регистри с къси имена на единия вход. Моделът с „вътрешен стек“ (Stack architecture) използва стек вместо регистър, с който процесорът работи непрекъснато. Инструкциите отново са еднооперандни, подобно на акумулаторния модел, но тук могат да бъдат запаметени повече променливи. Всяка променлива, както и междинните резултати, се запомнят във върха на стека. Специалните инструкции също често нямат изрично посочени операнди. При генерирането на машинен код е съществено да се различават експлицитните и имплицитните операнди.
 
== Програми ==