Преглед садржаја
Скупштина је језик ниског нивоа чија је функција да обезбеди све потребне елементе за програмирање архитектуре стоних или преносних рачунара. Његова крива учења је помало стрма и врло мало концепата се може применити из језика на високом нивоу, као што је нпр Питхон, Руби или ЈаваМеђутим, то је најмоћнији језик за програмирање архитектура заснованих на к64.Упркос томе што је сложен језик, у својим најновијим верзијама оставља по страни употребу хексадецималних знакова и замењује их конвенцијама именовања које се лакше памте и читају, поред тога што имају веће карактеристике као што су коришћење макроа и укључивање које дефинише корисник типови података.
Када се развојни процес заврши, ове линије кода чита програм за монтажу, а затим се преводи у машински код поступком сличним оном код компилација на језицима високог нивоа, али овде се назива придружити.
За потребе овог водича, прво ћемо видети како изгледа процес кодирања 32 бит, јер је то фундаментални корак за постизање бољег разумевања језика и процеса кодирања у апликацијама 64 бит, ово делећи многе карактеристике са архитектуром к86 64-бит.
Постоји много начина за почетак кодирања Скупштина за 32-битне апликације, али један од најједноставнијих и најпрактичнијих начина је то учинити Визуелни студио пошто има нешто што се зове састављен на мрежи где је код Скупштина је уграђен у Ц ++ нормално и тренутно, ово се може урадити у једном реду или у блоковима кода са резервисаном речју __асм.
ВажноКључна реч __асм може се користити са једним подвлаком. Ово је стара директива која се користи за осигуравање компатибилности у мање модерним апликацијама.
Након што смо ово разјаснили, прва ствар коју морамо учинити је да добијемо Визуелни студио, за овај водич користили смо верзију изразити међутим, код је важећи у обе верзије СДИ. Преузимамо на следећој вези нашу СДИ и покрећемо у програму за инсталацију:
Након завршетка инсталацијског процеса можемо започети кодирање Скупштина, за ово ћемо направити мали пример где ћемо показати како можемо уградити код Скупштина у Ц ++ са резервисаном речју __асм, где ће се сваки сегмент кода поред ове речи третирати као изворни код Скупштина од стране компајлера Ц ++.
Отварамо наш Висуал Студио и креирамо нови пројекат типа Конзола Вин32, гурамо Добро и приказаће се чаробњак за креирање пројекта који ће нас питати коју врсту пројекта желимо, а ако желимо празан, препоручујемо да оставите све подразумеване опције и притиснете Финализе:
ЕНЛАРГЕ
Чаробњак ће креирати основни код за наш пројекат, који ће садржати библиотеку и главни метод, требало би да изгледа овако:#инцлуде "стдафк.х" инт _тмаин (инт аргц, _ТЦХАР * аргв []) {ретурн 0;}Пошто сада имамо основни код, морамо додати нашу линију Скупштина, додатно морамо додати библиотеку да бисмо могли штампати помоћу конзоле и именски простор тако да све ради исправно, да видимо коначни код:
#инцлуде "стдафк.х" #инцлуде усинг намеспаце стд; инт _тмаин (инт аргц, _ТЦХАР * аргв []) {инт к = 0; _асм мов к, 25 цоут << "Вредност за к је:" <<>Оно што смо овде урадили је дефинисање променљиве која се зове к, а затим кроз код Скупштина додељујемо му вредност 25, да бисмо га коначно одштампали цоут, као што видимо, прилично је једноставан процес уградње Код монтаже, сада само требамо покренути наш мали програм, за ово можемо притиснути Цтрл + Ф5 где ће се наш програм саставити и извршити, да видимо како ова операција изгледа:
ЕНЛАРГЕ
Осим тога, можемо укључити више редова кода из Скупштина у нашем коду Ц ++, што можемо постићи постављањем резервисане речи __асм и отворивши блок кода, да видимо како ћемо то постићи:флоат Скрт (флоат ф) {__асм {флд ф // Стави ф на стек операција фскрт // Израчунај скрт}}Предности инлине монтажеМного је предности коришћења уграђене монтаже уместо изворне апликације 32 бит оф Скупштина, на пример слање параметара функцијама у потпуности управља компајлер Ц ++ и убризгаће тачну количину машинског кода тако да не морамо да бринемо о преливању меморије или нечему сличном.
Али баш као што имамо предности, тако и код овог начина кодирања налазимо недостатке, један од њих је тај што програмер губи мало контроле над апликацијом, попут манипулације стеком или чак дефинисања сопствених конвенција.
Мрежна монтажа нуди велику флексибилност и омогућава нам да брзо и лако уђемо у овај свет, али ова метода кодирања спречава програмере да приступе неким елементима монтаже, из тог разлога је уобичајено да се нашем пројекту дода изворни и засебни код.
За ово морамо засебно креирати наше датотеке, а затим укључити методе које су нам потребне, да бисмо постигли свој циљ, следићемо следеће кораке:
1- Прво креирамо нови пројекат, то може бити пројекат типа Ц ++ или из апликација Виндовс, обоје раде на додавању датотека из Скупштина.
2- Додајемо датотеку Ц ++ на наш пројекат који ћемо позвати принципал.цпп која ће бити задужена за позивање процедуре из нашег досијеа Скупштина пошаљимо му низ нумеричких вредности, а затим одштампамо оно што ова процедура враћа, да видимо садржај наше датотеке принципал.цпп:
#инцлуде усинг намеспаце стд; ектерн "Ц" инт финдМинорНум (инт * и, инт цоунт); инт маин () {инт арр [] = {4, 2, 6, 4, 5, 1, 8, 9, 5, -5}; цоут << "Најмањи број је:" << финдМинорНум (арр, 10) << ендл; цин.гет (); врати 0;}3- Затим десним тастером миша кликните на наш пројекат, он се налази на десној страни нашег интерфејса, у одељку Солутион Екплорер. Ми бирамо Изградите зависности а касније Израдите прилагођавања. Ово радимо да бисмо утврдили како ће Висуал Студио руковати датотекама са наставком .асмПошто не желимо да Ц ++ компајлер саставља ове датотеке, наш циљ је да ВС обезбеди ове датотеке ВИШЕ М тако да их саставим, а затим ће те датотеке повезане са нашим Ц ++ бити одговорне за формирање коначне извршне датотеке.
4- Да завршимо са зависностима, бирамо опцију више М. као што видимо на следећој слици:
ЕНЛАРГЕ
Овај корак је важно извести пре него што додате датотеке са кодом склопа као Визуелни студио додељује шта датотека треба да уради када је креирана, а не када је направљена.5- Затим морамо додати још једну Ц ++ датотеку, али овај пут са наставком .асм, за овај водич сам га назвао ассемблер.асм. На исти начин можемо му додати било које име осим маин.асм јер компајлер може имати проблема при лоцирању ваше главне методе.
6- Наша архива ассемблер.асм Он ће бити задужен за израчунавање из низа нумеричких вредности која је најмања вредност међу њима, а затим Ц ++ Побринуће се за примање вредности да би је обрадио кроз цоут, да видимо садржај наше датотеке:
; ассемблер.асм.кмм.модел флат, ц.дата.цоде финдНумМенор проц екпортмов едк, дворд птр [есп + 4]; мов ецк, дворд птр [есп + 8]; мов еак, 7фффффффх; цмп ецк, 0; јле Завршено ; МаинЛооп: цмп дворд птр [едк], еак; цмовл еак, дворд птр [едк]; адд едк, 4; дец ецк; јнз МаинЛооп; Завршено: рет; финдНумМинор ендпендОво нам омогућава да раздвојимо наше датотеке, као и логику. Реализација ове врсте процедура заснована на 32 бита се врло мало користи, али важно је знати све њене импликације, хајде да видимо сада како мењамо наш код за примену 64 бит као и кораке које морамо предузети да бисмо прилагодили своје окружење Визуелни студио.
Висуал Студио укључује све потребне алате за додавање изворног склопа у наш пројекат Ц ++, али да раде на основу 64 бит морамо да направимо неке додатне конфигурације нашем пројекту, да видимо:
1- Кораци за спровођење ове врсте кодирања слични су нашем претходном примеру, али за прилагођавање ВС идемо на опцију Буилд и ми бирамо Менаџер конфигурације:
2- На екрану менаџера конфигурације ћемо изабрати опцију Нова или ново у колони платформе, које ће приказати други екран за избор платформе пројекта, ми бирамо к64 и у опцији Копирајте подешавања из оставили смо изабрану опцију од Вин32. Ово ће учинити ВС промените путању верзије из 32 бит оф ВИШЕ М на то од 64, тако да ће сав посао обавити ИДЕ.
ЕНЛАРГЕ
3- Након што то учинимо, можемо саставити наш код и извршити га, међутим морамо промијенити датотеку Скупштина пошто радимо на различитим архитектурама, да видимо нови код за нашу датотеку:; Оглас: ассемблер.асм .цоде; инт финдМинорНум (инт * арр, инт цоунт) ФиндСмаллест проц; мов еак, 7фффффффх; цмп едк, 0; јле Завршено; МаинЛооп: цмп дворд птр [рцк], еак; цмовл еак, дворд птр [рцк]; додај рцк, 4; дец едк; јнз МаинЛооп; Завршено: рет; ФиндСмаллест ендп; крај;Овим смо завршили овај водич, већ смо први пут погледали програмирање помоћу Скупштина, на први поглед може изгледати помало сложено, али уз правилно савладавање Ц ++ и основне представе о машинском језику можемо постићи занимљиве и корисне ствари у свом развоју.Да ли вам се допао и помогао овај водич?Можете наградити аутора притиском на ово дугме да бисте му дали позитиван поен