Какви са основните разлики между езика асемблер на езици за програмиране от високо ниво, което е

асемблер - език за програмиране "ниско ниво". За разлика от езика на машинен код ви позволява да използвате по-удобно за човешките мнемоничен (характер) Определяне команди. В този случай, за да преведат асемблер в машинен код разбира от процесора изисква специална програма, наричана още асемблер.







Assembler - на родния език на компютъра. Можем да кажем, че компютърът "мисли" на асемблер. Ето защо, програми, написани на други езици, като C, първо трябва да бъдат преведени на асемблер да разберат техния компютър и е в състояние да изпълни.

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

води до факта, че в регистъра на EAX е броят 5. Първата инструкция Mov EAX, 2 изпраща регистър EAX номер 2. Вторият водач добавите EAX, 3, извършени след първия, добавя съдържанието на регистър EAX номер 3.

(Engl. байт-код) байткод или bytecodes, понякога използват Псевдокод термин - машина независим ниско ниво код, генериран от компилатора и интерпретатор изпълним. Повечето инструкции байткод са еквивалентни на един или повече от монтажен команди. Излъчване байт код заема междинно положение между съставянето на родния код и тълкуване.

В възможно едновременно да се създаде процесори, за които кодът за байт е машинен код директно (съществуват такива процесори, като например за Java и т.н.).

4. Дайте примери за изпълнимия файл формати и ги опишете накратко. формат Детайли ELF.

изпълним файл формат:

· Ком.
(. английски команда) Разширяване на .COM файлове е бил използван в някои компютърни операционни системи в различни tselyah.V DOS системи и в 8-битов CP / M, COM файл - обикновен тип изпълним файл, който не може да надвишава 64 KB-256 байта ( 65280 = 216 - 28 байта).

· .EXE
.EXE (изпълним съкр английски - .. програма) - разширяване на изпълнимия файл, използвани в системите за DOS, Microsoft Windows, Symbian, OS / 2, а в някои други. В допълнение към обектния код, може да съдържа различни метаданни (икона, цифров подпис).

· a.out
на a.out (от английски език асемблер изход.) - формат, изпълними файлове в някои (стари) UNIX версии. Форматът на изпълнимия файл a.out се използва главно в Linux. Racshirennaya версия на формат, използван a.outb групата BSD-съвместими операционни системи (NetBSD, FreeBSD и OpenBSD). NASM компилатор може да генерира файлове от двата формата, ако -f уточни Aout ключ за Linux или -f aoutb за BSD. подразбиране GCC компилатор произвежда a.out файл, освен ако не използвате -о опция.







о Таблица програма Header, описвайки нула или повече сегменти

о Таблица раздел Header, описвайки нула или повече секции

о данни вписва в регистрите на споменатите таблици

Сегментите съдържат данните, необходими за изпълнението на файла, и раздели съдържат информация за свързване и процес преместване. Всеки байт във файла не може да се прилага за повече от една секция.

· MZ (формат)
MZ - стандартен формат 16-битови изпълними файлове с разширение .EXE за DOS. .EXE и .DLL файлове за Windows като се започне с MZ мъниче във формат, който е, когато се опитате да стартирате файл в DOS показва съобщението Тази програма не може да се управлява в режим на DOS. ( "Тази програма не може да се управлява в режим на DOS").

· Преносим Изпълним
Преносим Изпълним - (PE) - формат, изпълними файлове, обектен код и динамични библиотеки, използвани в 32-битови и 64-битови версии на операционната система Microsoft Windows. PE формат е структура от данни, който съдържа цялата информация, необходима за проекта PE товарач файл в паметта.

5. Какви са етапите е създаването на изпълнима програма от изходния код? Опишете своята същност. За езици C ++, Java и Python, направете списък на стъпките, които участват в създаването на програми, които се провеждат в реалност и показват, те се случват по кое време. може да се създаде програма за каквито и изпълнение среди?

Първата фаза - което променя изходния код преди компилация в съответствие с командите предпроцесорни, съдържащи се в програмата. В съответствие с тези отбори извършва проста замяна на текст. Вторият - действителната компилатор, който обработва изходния код и го преобразува в код на асемблер. Трети етап - асемблер, който генерира обектен код. И накрая, на четвъртия етап - свръзката, която събира изпълним файл от обектен код файлове.

Оригиналната програма, изготвена от SI като текстов файл, обработката преминава на 3 етапа:

1) превръщане на предварителна обработка на текста;

3) режим (или редактиране монтаж препратки).

Java програми са преведени на байткод изпълнен от виртуална машина Java (JVM) - програма, която обработва един байт код и предават инструкции за хардуера като преводач. Излъчване в байт код увеличаване на скоростта на изпълнение и намалява размера на програмите на Java.

Предимството на този метод на доставка програма - на пълна независимост на байткод от операционната система и хардуера, който позволява на Java-базирани приложения за всяко устройство, за което има съответна виртуална машина. Друга важна характеристика на Java технологията е гъвкава система за сигурност се дължи на факта, че изпълнението на програмата се контролира изцяло от виртуалната машина. Всички операции, които правомощия надвишават установената програма (например, неупълномощен опит за достъп до данните или връзка към друг компютър) причиняват незабавно прекъсване.

Често в ущърб на концепцията за виртуална машина включва факта, че изпълнението на байткод виртуална машина може да намали ефективността на програми и алгоритми, изпълнявани в Java. Това твърдение е вярно за първите версии на виртуалната машина на Java, но през последните години е почти загубила своето значение. Той е повишен от редица подобрения:

§ използване на излъчване технология байткод в машинен код по време на изпълнение на програмата (JIT-технология) за съхраняване на версии на един клас в машинен код,

§ широко използване на платформа ориентирана код (роден-код), в стандартната библиотека,

§ хардуер осигурява ускорена обработка байткод (например, Jazelle технология се поддържа от някои компания ARM процесор).