Ассамблеядагы программалоо

Автор: Frank Hunt
Жаратылган Күнү: 13 Март 2021
Жаңыртуу Күнү: 1 Июль 2024
Anonim
Ассамблеядагы программалоо - Насаат
Ассамблеядагы программалоо - Насаат

Мазмун

Ассамблеяда программалоо көбүнчө компьютердик программисттер өз кесибин үйрөнүп жатканда чечүүчү башталыш болуп саналат. Ассемблер, же ассемблер тили (же ошондой эле ASM) - бул компьютерлер жана башка шаймандар үчүн программалоо тили, адатта, кошумча функционалды камсыз кылган кыйла өнүккөн тилдерге салыштырмалуу төмөнкү деңгээлдеги вариант деп эсептелет. Кодду жазганыңыздан кийин, ассамблея аны машина кодуна (нөлгө жана бирге) айландырат. Процессорлордун татаалдашып бараткандыгына байланыштуу, жамааттарды программалоо үчүн колдонмолор кыйла чектелүү болуп калганда, жамаат бир катар максаттарда, анын ичинде өз алдынча аткарылуучу файлдарда же түзмөктөрдүн драйверлеринде коддорду жазууда пайдалуу бойдон калууда.

Басуу

3-бөлүктүн 1-бөлүгү: Ассамблея менен таанышуу

  1. Ассамблея тили жөнүндө кененирээк маалымат. Код жазганга аракет кылаардан мурун, алгач тилдин өзүн түшүнүп алганыңыз оң. Окуу китептеринен баштап, интернет колдонмолоруна чейин бир катар ресурстар бар.
  2. Негизги терминдерди билип алыңыз. Мисалы, IDE (интегралдык өнүгүү чөйрөсү) текстти түзөтүү, мүчүлүштүктөрдү оңдоо жана компиляциялоо сыяктуу маселелерди чечүүчү коддоо интерфейси менен камсыз кылаарын билгиңиз келет. Ошондой эле, "регистрлерде" программанын кодуна байланышкан номерлер сакталаары сыяктуу, иш жүзүндө кандайча иштей тургандыгын жакшыраак түшүнө аласыз. Терминологияны жакшыраак түшүнүү менен, өзүңүздү программалоону үйрөнүү оңой болот.
  3. Чогулуш сиз үчүнбү, чечиңиз. Программалоонун бир катар тилдери бар экендигин, анын ичинде айрымдары ассемблерге караганда көбүрөөк функционалдык мүмкүнчүлүктөрдү камсыз кылаарын унутпаңыз. Ошентсе да, бир катар тиркемелер пайдалуу, алар телефон орнотулган программалар жана кондиционердик тутумдар үчүн өз алдынча аткарылуучу программаларды түзүүдөн тартып, айрым процессорлорго тиешелүү көрсөтмөлөрдү иштеп чыгууга чейин.
  4. Кайсы ассамблеяны колдонууну чечиңиз. A86, NASM же GNU сыяктуу ассамблеялар жалпысынан анча татаал эмес функцияларды аткарышат жана үйрөнчүктөр үчүн ылайыктуу баштапкы чекит болушу мүмкүн. Ар бир ассамблея бир аз башкача иштейт, бирок төмөнкү көрсөтмөлөр сиз MASM (Microsoft Macro Assembly) колдонуп жатасыз деген негизде иштейт - Windows иштөө тутумдары менен иштеген базалык ассамблея. Ал x86 ассемблер тилин жана Intel синтаксисин колдонот.

3-бөлүктүн 2-бөлүгү: Ассамблеяны жана IDEни жүктөп, орнотуңуз

  1. Ассамблеяны өзүңүз жүктөп алыңыз. MASMдин акыркы версиясын Visual Studio Enterprise 2015тен таба аласыз (бир катар шаймандар менен кеңири IDE), бирок жөнөкөй түп нускасын (MASM 8.0) акысыз жүктөп алсаңыз болот. Кээ бир чогулуштар, мисалы, жалпак монтаж, бир нече операциялык тутумдарда, анын ичинде Windows, DOS жана Linuxто колдонулушу мүмкүн. Башка ассамблея тилдери, анын ичинде Netwide ассамблеясы (NASM) жана GNU ассамблеясы (GAS), ошондой эле Macта иштешет.
    • MASM 8.0 жүктөө үчүн, ушул кадамда шилтеме берилген беттин жогору жагындагы Жүктөө баскычын чыкылдатыңыз.
    • Тутумдун талаптары сиз тандаган жыйынга жараша өзгөрүлүп турат, бирок MASM 8.0 Windows 2000 Service Pack 3, Windows Server 2003 же Windows XP Service Pack 2 талап кылат.
    • MASM 8.0 орнотуу үчүн Visual C ++ 2005 Express Edition программасын жүктөп, орнотуп алышыңыз керек.
  2. IDE жүктөп алыңыз. WinAsm IDE программасын табуу жана орнотуу үчүн "WinAsm download" издөө жүргүзүңүз, ал жалпысынан MASM менен жакшы иштейт. Башка IDEлер сиз колдонгон программалоо тилине жараша ылайыктуу болушу мүмкүн. Популярдуу альтернатива - RadAsm.
  3. MASM 8.0 орнотуңуз. Программа жүктөлгөндөн кийин, Иштетүү баскычын басып, орнотууну дароо баштасаңыз болот. Аны кийинчерээк орнотсоңуз болот, анда Сактоо баскычын чыкылдатыңыз. Run баскандан кийин MASM 8.0 ml.exe аталышындагы "[Visual C ++ Express] bin" папкасына орнотулат.
  4. IDE орнотуңуз. WinAsm жүктөлгөндөн кийин, файлдарды чыгарып, "c: Program Files " папкасына көчүрүңүз. Ошондой эле, аларга оңой кирүү үчүн иш столуна жарлык койсоңуз болот.
  5. IDEни конфигурацияла. Алгач WinAsm программасын баштаңыз. Эгерде сиз иш столуна жарлык жайгаштырган болсоңуз, аны эки жолу чыкылдатыңыз. Эгер сиз башка бирикмени же IDE колдонуп жаткан болсоңуз, анда бул процесстин башкача болоорун эске алыңыз.
  6. WinAsmди MASM 8.0 менен интеграциялоо. WinAsm Куралдары өтмөгүн чыкылдатып, ушул өтмөктөн Жолдор дегенди тандап, акыры Файлдар жана Жолдор өтмөгүн тандаңыз. Андан кийин MASM орнотуу папкаңызга алгачкы үч сапты (жолдорго карата) өзгөртүңүз. Бүткөндөн кийин, ОК баскычын чыкылдатыңыз.
    • "Файлдар жана жолдор" кошумча барагындагы маалыматты түзөтүүдө, биринчи үч сап төмөнкүчө окулушу керек. Бинардык жол C: Masm32Bin, Include жолу C: Masm32Include, ал эми китепкана жолу C: Masm32Bin болушу керек.

3-бөлүктүн 3-бөлүгү: Программалоо

  1. Код жазууну баштаңыз. WinAsm менен башталып, Файл өтмөгүн чыкылдатыңыз. Андан кийин Жаңы долбоорду тандасаңыз, бир нече жолду көрө аласыз. Бул параметрлер - Console Application жана Standard EXE. Мисалы, GUI (колдонуучунун графикалык интерфейси) негизинде тиркеме түзүүгө аракет кылып жатсаңыз, экинчисин тандаңыз.
  2. Ассамблея программасынын түзүмүн колдонуңуз. Кадимки структура архитектураны аныктоочу сызыктан, баштапкы берилиштер же туруктуу менен камтылган маалыматтар бөлүмүнөн (section.data), өзгөрмөлөрдү жарыялаган bss бөлүмдөн (section.bss) жана тексттик бөлүмдөн (section.text) турушу мүмкүн. чыныгы программа коду. Бул акыркы бөлүм ар дайым глобалдык _start декларациясынан башталат. Ар бир ырааттуулук коддордун блогу катары белгилүү.
  3. Негизги буйруктарды түшүнүү. Ассемблер тилинин үч түрү бар, аткарыла турган операторлор же көрсөтмөлөр (булар иштетүүчүлөргө оперативдүү код аркылуу эмне кылуу керектигин айтышат), ассемблердин директивалары же псевдо-оптор (бул ассамблеяга чейин чогулуш процесстерин сүрөттөйт) жана макроолор (булар кирүү механизми катары кызмат кылышат) тексттин).

Сунуштар

  • Ассемблер тилинде (же башка тилде) натыйжалуу код жазуу, адатта, бир топ изилдөөнү талап кылат. Атап айтканда, сиз коддун операторлору үчүн керектүү синтаксисти жана ассемблер программасын кантип түзүп, байланыштырууну билгиңиз келет.
  • Эгер сиз белгилүү бир ассамблеяны түзүүдө кыйынчылыкка туш болуп жатсаңыз, анда айрым суроолорду чечүүгө боло турган форумга катышуу акылдуулукка жатат.
  • Айрым программалоо тилдеринде C жана C ++ тилдериндеги ASM ("") функциясы сыяктуу ассембликаны бириктирүүгө мүмкүнчүлүктөр бар. Бул баштоонун жакшы жолу.
  • Эгер сиз MASMнин жаңы версиялары менен иштеген IDEге кызыксаңыз, анда Visual MASMди www.visualmasm.com/ дарегинен карап көрүңүз.