ΠΊΠΎΠ΄ ассСмблСра Π² visual studio

Assembler вмСстС с C++ Π² Visual Studio 2013

ΠŸΡ€Π΅Π΄ΠΈΡΠ»ΠΎΠ²ΠΈΠ΅

ΠΠ°Ρ‡Π°Π»ΠΎΡΡŒ всС с прочтСния ΠΌΠ½ΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ «АссСмблСр для Windows ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Visual StudioΒ» (ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄). Π’Π°ΠΌ рассмотрСно использованиС Visual Studio 2005, Π° для 2013-ΠΉ студии процСсс ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ, Π½ΠΎ Π΅ΡΡ‚ΡŒ нСсколько ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ заставят Π½Π΅ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»Π³ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ всСх ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ со сборкой.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Для Ρ‚Π΅Ρ…, Ρƒ ΠΊΠΎΠ³ΠΎ совсСм Π½Π΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅: Π² ΠΊΠΎΠ½Ρ†Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ (Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ) Π΅ΡΡ‚ΡŒ ссылка Π½Π° Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ шаблон ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ Π½Π° Π°Π΄Π΄ΠΎΠ½ для подсвСтки синтаксиса.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. image loader. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio Ρ„ΠΎΡ‚ΠΎ. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠΠ°Ρ‡Π°Π»ΠΎΡΡŒ всС с прочтСния ΠΌΠ½ΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ «АссСмблСр для Windows ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Visual StudioΒ» (ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄). Π’Π°ΠΌ рассмотрСно использованиС Visual Studio 2005, Π° для 2013-ΠΉ студии процСсс ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ, Π½ΠΎ Π΅ΡΡ‚ΡŒ нСсколько ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ заставят Π½Π΅ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»Π³ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ всСх ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ со сборкой.

Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ шаблон Win32 Console Application, ΠΊΠ»ΠΈΠΊΠ°Π΅ΠΌ ОК:

ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. image loader. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio Ρ„ΠΎΡ‚ΠΎ. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠΠ°Ρ‡Π°Π»ΠΎΡΡŒ всС с прочтСния ΠΌΠ½ΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ «АссСмблСр для Windows ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Visual StudioΒ» (ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄). Π’Π°ΠΌ рассмотрСно использованиС Visual Studio 2005, Π° для 2013-ΠΉ студии процСсс ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ, Π½ΠΎ Π΅ΡΡ‚ΡŒ нСсколько ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ заставят Π½Π΅ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»Π³ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ всСх ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ со сборкой.

ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. image loader. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio Ρ„ΠΎΡ‚ΠΎ. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠΠ°Ρ‡Π°Π»ΠΎΡΡŒ всС с прочтСния ΠΌΠ½ΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ «АссСмблСр для Windows ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Visual StudioΒ» (ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄). Π’Π°ΠΌ рассмотрСно использованиС Visual Studio 2005, Π° для 2013-ΠΉ студии процСсс ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ, Π½ΠΎ Π΅ΡΡ‚ΡŒ нСсколько ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ заставят Π½Π΅ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»Π³ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ всСх ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ со сборкой.

Π‘Ρ‚Π°Π²ΠΈΠΌ Π³Π°Π»ΠΎΡ‡ΠΊΡƒ Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ² Empty project ΠΈ ΠΆΠΌΠ΅ΠΌ Finish:

ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. image loader. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio Ρ„ΠΎΡ‚ΠΎ. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠΠ°Ρ‡Π°Π»ΠΎΡΡŒ всС с прочтСния ΠΌΠ½ΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ «АссСмблСр для Windows ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Visual StudioΒ» (ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄). Π’Π°ΠΌ рассмотрСно использованиС Visual Studio 2005, Π° для 2013-ΠΉ студии процСсс ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ, Π½ΠΎ Π΅ΡΡ‚ΡŒ нСсколько ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ заставят Π½Π΅ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»Π³ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ всСх ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ со сборкой.

ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. image loader. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio Ρ„ΠΎΡ‚ΠΎ. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠΠ°Ρ‡Π°Π»ΠΎΡΡŒ всС с прочтСния ΠΌΠ½ΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ «АссСмблСр для Windows ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Visual StudioΒ» (ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄). Π’Π°ΠΌ рассмотрСно использованиС Visual Studio 2005, Π° для 2013-ΠΉ студии процСсс ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ, Π½ΠΎ Π΅ΡΡ‚ΡŒ нСсколько ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ заставят Π½Π΅ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»Π³ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ всСх ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ со сборкой.

Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ C++ File ΠΈ ΠΆΠΌΠ΅ΠΌ Add:

ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. image loader. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio Ρ„ΠΎΡ‚ΠΎ. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠΠ°Ρ‡Π°Π»ΠΎΡΡŒ всС с прочтСния ΠΌΠ½ΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ «АссСмблСр для Windows ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Visual StudioΒ» (ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄). Π’Π°ΠΌ рассмотрСно использованиС Visual Studio 2005, Π° для 2013-ΠΉ студии процСсс ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ, Π½ΠΎ Π΅ΡΡ‚ΡŒ нСсколько ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ заставят Π½Π΅ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»Π³ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ всСх ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ со сборкой.

Аналогично, создаСм *.asm Ρ„Π°ΠΉΠ» (просто мСняСм Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Π² ΠΏΠΎΠ»Π΅ Name):

ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. image loader. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio Ρ„ΠΎΡ‚ΠΎ. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠΠ°Ρ‡Π°Π»ΠΎΡΡŒ всС с прочтСния ΠΌΠ½ΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ «АссСмблСр для Windows ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Visual StudioΒ» (ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄). Π’Π°ΠΌ рассмотрСно использованиС Visual Studio 2005, Π° для 2013-ΠΉ студии процСсс ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ, Π½ΠΎ Π΅ΡΡ‚ΡŒ нСсколько ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ заставят Π½Π΅ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»Π³ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ всСх ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ со сборкой.

Π’Π°ΠΆΠ½ΠΎ: ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ (Π½Π΅ учитывая Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅), ΠΈΠ½Π°Ρ‡Π΅ ΠΏΡ€ΠΈ создании Ρ„Π°ΠΉΠ»ΠΎΠ² *.obj Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° пСрСзаписи ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŒΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ.

ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. image loader. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio Ρ„ΠΎΡ‚ΠΎ. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠΠ°Ρ‡Π°Π»ΠΎΡΡŒ всС с прочтСния ΠΌΠ½ΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ «АссСмблСр для Windows ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Visual StudioΒ» (ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄). Π’Π°ΠΌ рассмотрСно использованиС Visual Studio 2005, Π° для 2013-ΠΉ студии процСсс ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ, Π½ΠΎ Π΅ΡΡ‚ΡŒ нСсколько ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ заставят Π½Π΅ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»Π³ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ всСх ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ со сборкой.

Π‘Ρ‚Π°Π²ΠΈΠΌ Π³Π°Π»ΠΎΡ‡ΠΊΡƒ Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ² masm ΠΈ ΠΆΠΌΠ΅ΠΌ ОК:

ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. image loader. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio Ρ„ΠΎΡ‚ΠΎ. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠΠ°Ρ‡Π°Π»ΠΎΡΡŒ всС с прочтСния ΠΌΠ½ΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ «АссСмблСр для Windows ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Visual StudioΒ» (ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄). Π’Π°ΠΌ рассмотрСно использованиС Visual Studio 2005, Π° для 2013-ΠΉ студии процСсс ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ, Π½ΠΎ Π΅ΡΡ‚ΡŒ нСсколько ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ заставят Π½Π΅ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»Π³ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ всСх ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ со сборкой.

Π”Π΅Π»Π°Π΅ΠΌ ΠΏΡ€Π°Π²Ρ‹ΠΉ ΠΊΠ»ΠΈΠΊ Π½Π° Ρ„Π°ΠΉΠ»Π΅ *.asm, Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Properties. :

ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. image loader. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio Ρ„ΠΎΡ‚ΠΎ. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠΠ°Ρ‡Π°Π»ΠΎΡΡŒ всС с прочтСния ΠΌΠ½ΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ «АссСмблСр для Windows ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Visual StudioΒ» (ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄). Π’Π°ΠΌ рассмотрСно использованиС Visual Studio 2005, Π° для 2013-ΠΉ студии процСсс ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ, Π½ΠΎ Π΅ΡΡ‚ΡŒ нСсколько ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ заставят Π½Π΅ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»Π³ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ всСх ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ со сборкой.

Π’ ΠΏΠΎΠ»Π΅ Item Type Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Microsoft Macro Assembler ΠΈ ΠΆΠΌΠ΅ΠΌ ОК:

ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. image loader. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio Ρ„ΠΎΡ‚ΠΎ. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠΠ°Ρ‡Π°Π»ΠΎΡΡŒ всС с прочтСния ΠΌΠ½ΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ «АссСмблСр для Windows ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Visual StudioΒ» (ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄). Π’Π°ΠΌ рассмотрСно использованиС Visual Studio 2005, Π° для 2013-ΠΉ студии процСсс ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ, Π½ΠΎ Π΅ΡΡ‚ΡŒ нСсколько ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ заставят Π½Π΅ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»Π³ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ всСх ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ со сборкой.

ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. image loader. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio Ρ„ΠΎΡ‚ΠΎ. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠΠ°Ρ‡Π°Π»ΠΎΡΡŒ всС с прочтСния ΠΌΠ½ΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ «АссСмблСр для Windows ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Visual StudioΒ» (ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄). Π’Π°ΠΌ рассмотрСно использованиС Visual Studio 2005, Π° для 2013-ΠΉ студии процСсс ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ, Π½ΠΎ Π΅ΡΡ‚ΡŒ нСсколько ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ заставят Π½Π΅ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»Π³ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ всСх ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ со сборкой.

ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. image loader. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio Ρ„ΠΎΡ‚ΠΎ. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠΠ°Ρ‡Π°Π»ΠΎΡΡŒ всС с прочтСния ΠΌΠ½ΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ «АссСмблСр для Windows ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Visual StudioΒ» (ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄). Π’Π°ΠΌ рассмотрСно использованиС Visual Studio 2005, Π° для 2013-ΠΉ студии процСсс ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ, Π½ΠΎ Π΅ΡΡ‚ΡŒ нСсколько ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ заставят Π½Π΅ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»Π³ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ всСх ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ со сборкой.

ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. image loader. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio Ρ„ΠΎΡ‚ΠΎ. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠΠ°Ρ‡Π°Π»ΠΎΡΡŒ всС с прочтСния ΠΌΠ½ΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ «АссСмблСр для Windows ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Visual StudioΒ» (ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄). Π’Π°ΠΌ рассмотрСно использованиС Visual Studio 2005, Π° для 2013-ΠΉ студии процСсс ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ, Π½ΠΎ Π΅ΡΡ‚ΡŒ нСсколько ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ заставят Π½Π΅ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»Π³ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ всСх ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ со сборкой.

На этом этапС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ созданным. НаписаниС ΠΊΠΎΠ΄Π° рассмотрСно Π² сСкции Вонкости Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ Π‘++ ΠΈ Asm.

Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ шаблон Win32 Console Application, ΠΊΠ»ΠΈΠΊΠ°Π΅ΠΌ ОК.

Π‘Ρ‚Π°Π²ΠΈΠΌ Π³Π°Π»ΠΎΡ‡ΠΊΡƒ Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ² Empty project ΠΈ ΠΆΠΌΠ΅ΠΌ Finish.

Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ C++ File ΠΈ ΠΆΠΌΠ΅ΠΌ Add.

Аналогично, создаСм *.asm Ρ„Π°ΠΉΠ» (просто мСняСм Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Π² ΠΏΠΎΠ»Π΅ Name).

Π’Π°ΠΆΠ½ΠΎ: ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ(Π½Π΅ учитывая Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅), ΠΈΠ½Π°Ρ‡Π΅ ΠΏΡ€ΠΈ создании Ρ„Π°ΠΉΠ»ΠΎΠ² *.obj Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° пСрСзаписи ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ.

Π‘Ρ‚Π°Π²ΠΈΠΌ Π³Π°Π»ΠΎΡ‡ΠΊΡƒ Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ² masm ΠΈ ΠΆΠΌΠ΅ΠΌ ОК.

Π”Π΅Π»Π°Π΅ΠΌ ΠΏΡ€Π°Π²Ρ‹ΠΉ ΠΊΠ»ΠΈΠΊ Π½Π° Ρ„Π°ΠΉΠ»Π΅ *.asm, Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Properties.

Π’ ΠΏΠΎΠ»Π΅ Item Type Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Microsoft Macro Assembler ΠΈ ΠΆΠΌΠ΅ΠΌ ОК.

На этом этапС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ созданным. НаписаниС ΠΊΠΎΠ΄Π° рассмотрСно Π² сСкции Вонкости Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ Π‘++ ΠΈ Asm.

Настройка подсвСтки синтаксиса

БущСствуСт Π°Π΄Π΄ΠΎΠ½ для Visual Studio β€” asmHighlighter, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ написания ΡΡ‚Π°Ρ‚ΡŒΠΈ вСрсии для VS2013 Π½Π΅ сущСствовало. Однако, просмотрСв Ρ€Π°Π·Π΄Π΅Π» Discussions, я нашСл сообщСниС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Trass3r, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, ΠΊ ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, подСлился Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ с вСрсиСй Π°Π΄Π΄ΠΎΠ½Π° для VS2013. ПослС установки Visual Studio SDK ΠΌΠ½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ *.vsix ΠΏΠ°ΠΊΠ΅Ρ‚ Π΅ΡΡ‚ΡŒ Π² свободном доступС.

Вонкости Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ Π‘++ ΠΈ Asm

Π”Π°Π»Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ call:

БоотвСтствСнно, Π² *.asm Ρ„Π°ΠΉΠ»Π΅:
ΠΈ

Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ соотвСтствуСт Ρ‚Π°ΠΊΠΎΠΌΡƒ объявлСнию Asm-ΠΌΠ΅Ρ‚ΠΎΠ΄Π°:

БобствСнно, ΠΏΠΎΠ»Π½Ρ‹ΠΉ исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°:

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π“ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ шаблон ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь.
ΠŸΠ°ΠΊΠ΅Ρ‚ для подсвСтки asm синтаксиса ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

АссСмблСр для Windows ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Visual Studio

МногиС ΠΈΠ· нас ΠΈΠ·ΡƒΡ‡Π°Π»ΠΈ ассСмблСр Π² унивСрситСтС, Π½ΠΎ ΠΏΠΎΡ‡Ρ‚ΠΈ всСгда это ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π»ΠΎΡΡŒ простыми Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌΠΈ ΠΏΠΎΠ΄ DOS. ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для Windows ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° Π½Π° ассСмблСр, Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я Ρ…ΠΎΡ‡Ρƒ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ Π²Π°ΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ассСмблСр Π² Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… ΠΏΠΎΠ΄ Visual Studio 2005.

ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. image loader. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio Ρ„ΠΎΡ‚ΠΎ. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠΠ°Ρ‡Π°Π»ΠΎΡΡŒ всС с прочтСния ΠΌΠ½ΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ «АссСмблСр для Windows ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Visual StudioΒ» (ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄). Π’Π°ΠΌ рассмотрСно использованиС Visual Studio 2005, Π° для 2013-ΠΉ студии процСсс ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ, Π½ΠΎ Π΅ΡΡ‚ΡŒ нСсколько ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ заставят Π½Π΅ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»Π³ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ всСх ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ со сборкой.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим ΠΊΠ°ΠΊ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ассСмблСр ΠΈΠ· Π‘++ ΠΊΠΎΠ΄Π° ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ встроСнный Π² Visual Studio 2005 для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΊΠΎΠ΄Π° Π½Π° ассСмблСр.

Для Π½Π°Ρ‡Π°Π»Π° Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Π’ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Visual Studio, Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ File > New > Project. Π’ Visual Studio Π½Π΅Ρ‚ языка ассСмблСр Π² ΠΎΠΊΠ½Π΅ Π²Ρ‹Π±ΠΎΡ€Π° Ρ‚ΠΈΠΏΠ° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, поэтому создаСм Π‘++ Win32 ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Π’ ΠΎΠΊΠ½Π΅ настроСк Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Β«Empty ProjectΒ».

ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. image loader. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio Ρ„ΠΎΡ‚ΠΎ. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠΠ°Ρ‡Π°Π»ΠΎΡΡŒ всС с прочтСния ΠΌΠ½ΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ «АссСмблСр для Windows ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Visual StudioΒ» (ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄). Π’Π°ΠΌ рассмотрСно использованиС Visual Studio 2005, Π° для 2013-ΠΉ студии процСсс ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ, Π½ΠΎ Π΅ΡΡ‚ΡŒ нСсколько ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ заставят Π½Π΅ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»Π³ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ всСх ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ со сборкой.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Visual Studio Π½Π΅ распознаСт Ρ„Π°ΠΉΠ»Ρ‹ с ΠΊΠΎΠ΄ΠΎΠΌ Π½Π° ассСмблСр. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ассСмблСр Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ условия сборки ΡƒΠΊΠ°Π·Π°Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ *.asm. Для этого Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ ΠΏΡƒΠ½ΠΊΡ‚ мСню Β«Custom Build Rules. Β».

ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. image loader. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio Ρ„ΠΎΡ‚ΠΎ. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠΠ°Ρ‡Π°Π»ΠΎΡΡŒ всС с прочтСния ΠΌΠ½ΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ «АссСмблСр для Windows ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Visual StudioΒ» (ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄). Π’Π°ΠΌ рассмотрСно использованиС Visual Studio 2005, Π° для 2013-ΠΉ студии процСсс ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ, Π½ΠΎ Π΅ΡΡ‚ΡŒ нСсколько ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ заставят Π½Π΅ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»Π³ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ всСх ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ со сборкой.

Π’ ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° компиляции для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², Visual Studio 2005 ΡƒΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ для Ρ„Π°ΠΉΠ»ΠΎΠ² *.asm, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ лишь Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ, установив Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ² ΠΏΡ€Π°Π²ΠΈΠ»Π° Β«Microsoft Macro AssemblerΒ» Π³Π°Π»ΠΎΡ‡ΠΊΡƒ.

ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. image loader. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio Ρ„ΠΎΡ‚ΠΎ. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠΠ°Ρ‡Π°Π»ΠΎΡΡŒ всС с прочтСния ΠΌΠ½ΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ «АссСмблСр для Windows ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Visual StudioΒ» (ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄). Π’Π°ΠΌ рассмотрСно использованиС Visual Studio 2005, Π° для 2013-ΠΉ студии процСсс ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ, Π½ΠΎ Π΅ΡΡ‚ΡŒ нСсколько ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ заставят Π½Π΅ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»Π³ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ всСх ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ со сборкой.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ исходного ΠΊΠΎΠ΄Π°

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ написанию исходного ΠΊΠΎΠ΄Π° нашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. НачнСм с добавлСния исходного ΠΊΠΎΠ΄Π° Π½Π° c++. Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π² ΠΏΠ°ΠΏΠΊΡƒ Source Files. Π’ качСствС Template Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ C++ File ΠΈ Π²Π²ΠΎΠ΄ΠΈΠΌ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ΅ имя Ρ„Π°ΠΉΠ»Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ main.cpp. НапишСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ имя Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, ΠΎΡ„ΠΎΡ€ΠΌΠΈΠ² это Π² Π²ΠΈΠ΄Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ readName() которая Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ссылку Π½Π° считанноС имя. ΠœΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ содСрТимоС Ρ„Π°ΠΉΠ»Π°:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ вывСсти привСтствиС, Π΅Π³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ функция sayHello() ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ напишСм Π½Π° ассСмблСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ сначала ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅, для этого Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π±Π»ΠΎΠΊ ΠΊ main.cpp:

Π­Ρ‚ΠΎΡ‚ Π±Π»ΠΎΠΊ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ компилятору, Ρ‡Ρ‚ΠΎ функция sayHello() Π±ΡƒΠ΄Π΅Ρ‚ объявлСна Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π²Ρ‹Π·ΠΎΠ²Π° Β«CΒ». ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ C++ искаТаСт ΠΈΠΌΠ΅Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ» Π²Ρ‹Π·ΠΎΠ²Π° ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ readName() ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ sayHello(), для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ extern Β«CΒ» ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ readName(), это ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π²Ρ‹Π·ΠΎΠ²Π° Β«CΒ».

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, для этого просто Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Debug > Start Without Debugging ΠΈΠ»ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ Ctrl-F5. Если всС сдСлано Π²Π΅Ρ€Π½ΠΎ, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΎΠΊΠ½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. image loader. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio Ρ„ΠΎΡ‚ΠΎ. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠΠ°Ρ‡Π°Π»ΠΎΡΡŒ всС с прочтСния ΠΌΠ½ΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ «АссСмблСр для Windows ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Visual StudioΒ» (ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄). Π’Π°ΠΌ рассмотрСно использованиС Visual Studio 2005, Π° для 2013-ΠΉ студии процСсс ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ, Π½ΠΎ Π΅ΡΡ‚ΡŒ нСсколько ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ заставят Π½Π΅ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»Π³ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ всСх ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ со сборкой.

НСмного услоТним Π·Π°Π΄Π°Ρ‡Ρƒ, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° ассСмблСр Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΡƒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΡƒΡŽ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° напишСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ calcSumm() которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ†Π΅Π»ΠΎΠ΅ число ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ сумму Π΅Π³ΠΎ Ρ†ΠΈΡ„Ρ€. ИзмСним наш ΠΊΠΎΠ΄ Π½Π° Π‘++ Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π² Π½Π΅Π³ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ calcSumm, Π²Π²ΠΎΠ΄ числа ΠΈ собствСнно Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π”ΠΎΠ±Π°Π²ΠΈΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² Ρ„Π°ΠΉΠ» hello.asm, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ помСщаСтся Π² eax, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ послС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова PROC. ВсС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠΎΠ΄Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, ΠΎΠ½ΠΈ автоматичСски извлСкутся ΠΈΠ· стСка. Π’Π°ΠΊΠΆΠ΅ Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. Π’Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π²Π½Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹. Они сохранСны Π² стСкС ΠΈ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π΅ ΠΈΠ· ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹:

Запустив ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния:

ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. image loader. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio Ρ„ΠΎΡ‚ΠΎ. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠΠ°Ρ‡Π°Π»ΠΎΡΡŒ всС с прочтСния ΠΌΠ½ΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ «АссСмблСр для Windows ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Visual StudioΒ» (ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄). Π’Π°ΠΌ рассмотрСно использованиС Visual Studio 2005, Π° для 2013-ΠΉ студии процСсс ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ, Π½ΠΎ Π΅ΡΡ‚ΡŒ нСсколько ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ заставят Π½Π΅ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»Π³ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ всСх ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ со сборкой.

ΠžΡ‚Π»Π°Π΄ΠΊΠ°

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ Π½Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ слоТного ΠΈ ΠΎΠ½Π° вовсС Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ использования ассСмблСр. Π‘ΠΎΠ»Π΅Π΅ интСрСсным Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Π° Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Π½Π°ΠΌ Π΄Π°Π΅Ρ‚ Visual Studio для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° ассСмблСр. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈ установим Ρ‚ΠΎΡ‡ΠΊΡƒ остановки Π² hello.asm, запустим ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. image loader. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio Ρ„ΠΎΡ‚ΠΎ. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠΠ°Ρ‡Π°Π»ΠΎΡΡŒ всС с прочтСния ΠΌΠ½ΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ «АссСмблСр для Windows ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Visual StudioΒ» (ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄). Π’Π°ΠΌ рассмотрСно использованиС Visual Studio 2005, Π° для 2013-ΠΉ студии процСсс ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ, Π½ΠΎ Π΅ΡΡ‚ΡŒ нСсколько ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ заставят Π½Π΅ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»Π³ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ всСх ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ со сборкой.

Окно Disassembly (Debug > Windows > Disassembly) ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ассСмблСр для Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°. Код ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ написали Π½Π° Π‘++ показываСтся Ρ‡Π΅Ρ€Π½Ρ‹ΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠΌ. Disassembled code показываСтся сСрым послС ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Π΅ΠΌΡƒ ΠΊΠΎΠ΄Π° Π½Π° C++/ассСмблСр. Окно Disassembly позволяСт ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΈ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ stepping ΠΏΠΎ Π½Π΅ΠΌΡƒ.

Окно рСгистров (Debug > Windows > Registers) позволяСт ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ рСгистров.

Окно памяти (Debug > Windows > Memory) позволяСт ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π΄Π°ΠΌΠΏ памяти, слСва ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹Π΅ адрСс, справа ΡˆΠ΅ΡΠ½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹Π΅ значСния ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ячССк памяти, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ, вводя адрСс Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ ΠΏΠΎΠ»Π΅ Π² Π²Π΅Ρ€Ρ…Ρƒ ΠΎΠΊΠ½Π°.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

MASM для x64 (ml64.exe)

Visual Studio Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ 32-Ρ€Π°Π·Ρ€ΡΠ΄Π½ΡƒΡŽ ΠΈ 64-Ρ€Π°Π·Ρ€ΡΠ΄Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Microsoft Assembler (MASM) для Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° x64. Π˜ΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ml64.exe β€” это ассСмблСр, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ язык ассСмблСра x64. ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки MASM ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ C++ Π²ΠΎ врСмя установки Visual Studio. БрСдства MASM нСдоступны для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ. инструкции ΠΏΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΈ установкС ΠΊΠΎΠΏΠΈΠΈ Visual Studio см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ install Visual Studio. Ссли Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Visual Studio, Π½ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, скачайтС срСдства сборки для Visual Studio.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ MASM для построСния ΠΊΠΎΠ΄Π° для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ x64 Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° для Ρ†Π΅Π»Π΅Π²Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ x64, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π΄Π°ΡŽΡ‚ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды. БвСдСния ΠΎ запускС ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Π‘Π±ΠΎΡ€ΠΊΠ° ΠΊΠΎΠ΄Π° C/C++ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС.

свСдСния ΠΎ ml64.exe ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ справочник ΠΏΠΎ ML ΠΈ ML64 Command-Line.

ВстроСнный ассСмблСр ΠΈΠ»ΠΈ использованиС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова ASM Π½Π΅ поддСрТиваСтся для Ρ†Π΅Π»Π΅Π²Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² x64 ΠΈ ARM. Π§Ρ‚ΠΎΠ±Ρ‹ пСрСнСсти ΠΊΠΎΠ΄ x86, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ встроСнный ассСмблСр для x64 ΠΈΠ»ΠΈ ARM, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² C++, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ компилятора ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ исходного ΠΊΠΎΠ΄Π° Π½Π° языкС ассСмблСра. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Microsoft C++ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ инструкции, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅, Π±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ сканирования ΠΈ тСстирования, Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈ Ρ‚. Π΄., Π² качСствС максимально Π±Π»ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΠΊ кросс-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΠΌΡƒ способу. БвСдСния ΠΎ доступных встроСнных функциях см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ компилятора.

Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° ассСмблСрного языка Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Visual Studio C++

систСма ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Visual Studio ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ Π½Π° языкС ассСмблСра, созданныС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ MASM Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… C++. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ исходного ΠΊΠΎΠ΄Π° Π½Π° языкС ассСмблСра x64 ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΡ… Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ MASM, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ 64-Ρ€Π°Π·Ρ€ΡΠ΄Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ. Π—Π°Ρ‚Π΅ΠΌ эти Ρ„Π°ΠΉΠ»Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ с ΠΊΠΎΠ΄ΠΎΠΌ C++, созданным для Ρ†Π΅Π»Π΅Π²Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ x64. Π­Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· способов прСодолСния отсутствия встроСнного ассСмблСра x64.

Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° ассСмблСрного языка Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Visual Studio C++

Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ. Π² строкС мСню Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Project, настройки сборки.

Π² строкС мСню Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Project, Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт.

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ΄ Π½Π° языкС ассСмблСра Π² Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠΌ ASM-Ρ„Π°ΠΉΠ»Π΅. ΠŸΡ€ΠΈ сборкС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ вызываСтся ассСмблСр MASM Assembler для сборки ASM-Ρ„Π°ΠΉΠ»Π° Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Ρ‚Π΅ΠΌ связываСтся с ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ доступ ΠΊ символам, ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ассСмблСра ΠΊΠ°ΠΊ extern «C» Π² исходном ΠΊΠΎΠ΄Π΅ C++ вмСсто использования соглашСний ΠΎΠ± ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠΈ ΠΈΠΌΠ΅Π½ c++ Π² исходных Ρ„Π°ΠΉΠ»Π°Ρ… Π½Π° языкС ассСмблСра.

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹, относящиСся ΠΊ ml64

Π’ исходном ΠΊΠΎΠ΄Π΅ Π½Π° языкС ассСмблСра, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠΌ для x64, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ ml64:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. userinfo v8. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio Ρ„ΠΎΡ‚ΠΎ. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio-userinfo v8. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° userinfo v8. ΠΠ°Ρ‡Π°Π»ΠΎΡΡŒ всС с прочтСния ΠΌΠ½ΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ «АссСмблСр для Windows ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Visual StudioΒ» (ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄). Π’Π°ΠΌ рассмотрСно использованиС Visual Studio 2005, Π° для 2013-ΠΉ студии процСсс ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ, Π½ΠΎ Π΅ΡΡ‚ΡŒ нСсколько ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ заставят Π½Π΅ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»Π³ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ всСх ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ со сборкой.m_i_kuznetsov

Π Π°Π·ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΡ ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм

Π’ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Π°ΠΆΠ½ΠΎ, Π½ΠΎ Ρ‡Π΅ΠΌΡƒ Π½ΠΈΠ³Π΄Π΅ Π½Π΅ ΡƒΡ‡Π°Ρ‚

Π Π΅Ρ‡ΡŒ ΠΏΠΎΠΉΠ΄Ρ‘Ρ‚ Π½Π΅ ΠΎ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ IL, Π° ΠΎΠ± инструкциях процСссора, сформированных JIT-компилятором.

Π’ процСссС ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΊΠΎΠ΄Π° Π±Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Π²ΠΎ Ρ‡Ρ‚ΠΎ прСвратился написанный программистом ΠΊΠΎΠ΄. НапримСр, для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π²Ρ€ΠΎΠ΄Π΅ Π±Ρ‹ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΠΎΡ‚Π΅Ρ€Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

Если Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎΠ± управляСмом ΠΊΠΎΠ΄Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ΄Π΅ C#, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ†Π΅Π»Ρ‹Ρ… Ρ‚Ρ€ΠΈ (!) стадии, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΏΡ€ΠΈ Π΅Π³ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ:

Π‘Π½Π°Ρ‡Π°Π»Π° Π² VS создадим Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° языкС C#.

Π’ Ρ„Π°ΠΉΠ»Π΅ Program.cs я Π½Π°ΠΏΠΈΡˆΡƒ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄:

namespace DasmInt
<
class Program
<
static void Main(string[] args)
<
int a = 4;
int b = 8;
int r;
r = a + b;
Console.WriteLine(«a + b = » + r);
Console.ReadLine();
>
>
>

Код просто ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ Ρ‚Ρ€ΠΈ цСлочислСнныС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ Π·Π°Ρ‚Π΅ΠΌ складываСт значСния Π΄Π²ΡƒΡ… ΠΈΠ· Π½ΠΈΡ… ΠΈ записываСт Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² Ρ‚Ρ€Π΅Ρ‚ΡŒΡŽ. ПослС этого ΠΊΠΎΠ΄ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π² консоль Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ слоТСния ΠΈ ΠΆΠ΄Ρ‘Ρ‚ Ρ€Π΅Π°ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°Π΄ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ дизассСмблированиС. Для этого Π² мСню Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Debug/Options ΠΈΠ»ΠΈ Tools/Options. Π’ ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ настроСк Π½Π°Π΄ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² Ρ€Π°Π·Π΄Π΅Π» Debugging/General. Π—Π°Ρ‚Π΅ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ Enable address-level debugging.

ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. 64261 original. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio Ρ„ΠΎΡ‚ΠΎ. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio-64261 original. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 64261 original. ΠΠ°Ρ‡Π°Π»ΠΎΡΡŒ всС с прочтСния ΠΌΠ½ΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ «АссСмблСр для Windows ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Visual StudioΒ» (ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄). Π’Π°ΠΌ рассмотрСно использованиС Visual Studio 2005, Π° для 2013-ΠΉ студии процСсс ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ, Π½ΠΎ Π΅ΡΡ‚ΡŒ нСсколько ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ заставят Π½Π΅ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»Π³ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ всСх ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ со сборкой.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ я ΠΏΠΎΡΡ‚Π°Π²Π»ΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ прСрывания (breakpoint) Π½Π° объявлСнии ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ Π·Π°ΠΏΡƒΡ‰Ρƒ ΠΊΠΎΠ΄ Π½Π° исполнСниС ΠΏΠΎΠ΄ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΎΠΌ.

ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. 64644 original. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio Ρ„ΠΎΡ‚ΠΎ. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio-64644 original. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 64644 original. ΠΠ°Ρ‡Π°Π»ΠΎΡΡŒ всС с прочтСния ΠΌΠ½ΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ «АссСмблСр для Windows ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Visual StudioΒ» (ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄). Π’Π°ΠΌ рассмотрСно использованиС Visual Studio 2005, Π° для 2013-ΠΉ студии процСсс ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ, Π½ΠΎ Π΅ΡΡ‚ΡŒ нСсколько ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ заставят Π½Π΅ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»Π³ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ всСх ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ со сборкой.

Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚ объявлСния ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ прСрвётся.

ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. 64910 original. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio Ρ„ΠΎΡ‚ΠΎ. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio-64910 original. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 64910 original. ΠΠ°Ρ‡Π°Π»ΠΎΡΡŒ всС с прочтСния ΠΌΠ½ΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ «АссСмблСр для Windows ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Visual StudioΒ» (ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄). Π’Π°ΠΌ рассмотрСно использованиС Visual Studio 2005, Π° для 2013-ΠΉ студии процСсс ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ, Π½ΠΎ Π΅ΡΡ‚ΡŒ нСсколько ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ заставят Π½Π΅ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»Π³ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ всСх ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ со сборкой.

К этому ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρƒ JIT-компилятор ΡƒΠΆΠ΅ создал исполняСмый ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΅Π³ΠΎ Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ дизассСмблированный ΠΊΠΎΠ΄, Π½ΡƒΠΆΠ½ΠΎ Π² мСню Debug/Windows Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚ Disassembly. ΠžΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ΡΡ ΠΎΠΊΠ½ΠΎ с дизассСмблированным ΠΊΠΎΠ΄ΠΎΠΌ.

ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. 65132 original. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio Ρ„ΠΎΡ‚ΠΎ. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio-65132 original. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 65132 original. ΠΠ°Ρ‡Π°Π»ΠΎΡΡŒ всС с прочтСния ΠΌΠ½ΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ «АссСмблСр для Windows ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Visual StudioΒ» (ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄). Π’Π°ΠΌ рассмотрСно использованиС Visual Studio 2005, Π° для 2013-ΠΉ студии процСсс ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ, Π½ΠΎ Π΅ΡΡ‚ΡŒ нСсколько ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ заставят Π½Π΅ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»Π³ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ всСх ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ со сборкой.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π² дизассСмблированном ΠΊΠΎΠ΄Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ исходного ΠΊΠΎΠ΄Π°. Π­Ρ‚ΠΎ сильно ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΡŽ ΠΏΠΎ ΠΊΠΎΠ΄Ρƒ.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² дизассСмблированном ΠΊΠΎΠ΄Π΅ ΡƒΠΊΠ°Π·Π°Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° прСрывания, Ρ‚.Π΅. строка ΠΊΠΎΠ΄Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±Ρ‹Π»ΠΎ приостановлСно Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π² процСссС ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ассСмблСра. ΠŸΡ€ΠΈΡ‡Ρ‘ΠΌ справа Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ, сколько Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·Π°Ρ‚Ρ€Π°Ρ‡Π΅Π½ΠΎ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° прСрывания.

ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. 65431 original. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio Ρ„ΠΎΡ‚ΠΎ. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio-65431 original. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 65431 original. ΠΠ°Ρ‡Π°Π»ΠΎΡΡŒ всС с прочтСния ΠΌΠ½ΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ «АссСмблСр для Windows ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Visual StudioΒ» (ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄). Π’Π°ΠΌ рассмотрСно использованиС Visual Studio 2005, Π° для 2013-ΠΉ студии процСсс ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ, Π½ΠΎ Π΅ΡΡ‚ΡŒ нСсколько ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ заставят Π½Π΅ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»Π³ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ всСх ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ со сборкой.

ΠžΡΡ‚Π°Ρ‘Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСтся ΠΏΠΎΠ΄ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΎΠΌ Π² VS, ΠΈ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ формируСтся JIT-компилятором ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Ρ€Π΅Π»ΠΈΠ·Π½ΠΎΠΉ вСрсии, ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ сущСствСнныС различия.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

АссСмблСр. Настройка срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

Обновл. 16 БСн 2021 |

Π―Π·Ρ‹ΠΊ ассСмблСра Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ зависит ΠΎΡ‚ Π½Π°Π±ΠΎΡ€Π° ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ процСссора. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½ΠΎΠΌΡƒ руководству, Π²Π°ΠΌ понадобятся:

дистрибутив ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Linux (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Debian ΠΈΠ»ΠΈ Ubuntu);

копия ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ассСмблСра NASM.

Π•ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ассСмблСра, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ:

Microsoft Assembler (MASM);

Borland Turbo Assembler (TASM);

The GNU assembler (GAS).

ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ассСмблСр NASM, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½:

бСсплатный. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π΅Π³ΠΎ c Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π²Π΅Π±-рСсурсов;

Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ. Π’ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ Π²Ρ‹ смоТСтС Π½Π°ΠΉΡ‚ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎ Π½Π΅ΠΌΡƒ;

кроссплатформСнный. Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π½Π° Linux, Ρ‚Π°ΠΊ ΠΈ Π½Π° Windows.

Установка NASM

Если ΠΏΡ€ΠΈ установкС Linux Π²Ρ‹ устанавливали Β«Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈΒ», Ρ‚ΠΎ NASM Ρƒ вас ΡƒΠΆΠ΅ установлСн. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, установлСн Π»ΠΈ Ρƒ вас NASM, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия:

Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ whereis nasm ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ENTER.

Если ΠΎΠ½ Ρƒ вас установлСн, Ρ‚ΠΎ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. assembler1. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio Ρ„ΠΎΡ‚ΠΎ. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio-assembler1. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° assembler1. ΠΠ°Ρ‡Π°Π»ΠΎΡΡŒ всС с прочтСния ΠΌΠ½ΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ «АссСмблСр для Windows ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Visual StudioΒ» (ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄). Π’Π°ΠΌ рассмотрСно использованиС Visual Studio 2005, Π° для 2013-ΠΉ студии процСсс ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ, Π½ΠΎ Π΅ΡΡ‚ΡŒ нСсколько ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ заставят Π½Π΅ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»Π³ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ всСх ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ со сборкой.

Если ΠΆΠ΅ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ:

Π’ΠΎ NASM Ρƒ вас Π½Π΅ установлСн, ΠΈ Π΅Π³ΠΎ потрСбуСтся ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ NASM, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги:

Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Visual Studio Code

Π― Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΊΠΎΠ΄Π° Visual Studio Code. Он ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° ассСмблСрС ΠΏΠΎΠ΄ Linux, Π½ΠΎ ΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… языках.

Для установки Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ сайт Microsoft Visual Studio Code, ΠΏΡ€ΠΎΠ»ΠΈΡΡ‚Π°Ρ‚ΡŒ страницу Π²Π½ΠΈΠ· ΠΈ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ .deb:

ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. deb download. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio Ρ„ΠΎΡ‚ΠΎ. ΠΊΠΎΠ΄ ассСмблСра Π² visual studio-deb download. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠΎΠ΄ ассСмблСра Π² visual studio. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° deb download. ΠΠ°Ρ‡Π°Π»ΠΎΡΡŒ всС с прочтСния ΠΌΠ½ΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ «АссСмблСр для Windows ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Visual StudioΒ» (ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄). Π’Π°ΠΌ рассмотрСно использованиС Visual Studio 2005, Π° для 2013-ΠΉ студии процСсс ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ, Π½ΠΎ Π΅ΡΡ‚ΡŒ нСсколько ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ заставят Π½Π΅ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»Π³ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ всСх ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ со сборкой.

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ VS Code Π±ΡƒΠ΄Π΅Ρ‚ установлСн, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚:

Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ клавиш Ctrl+P ;

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ Π² ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сСтях:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *