336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

다운로드 : http://yasm.tortall.net/Download.html
 - Win32 VS2010.zip

파일명 변경 : vsyasm.exe > yasm.exe
복사 : C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\

파일명 변경 : vsyasm.props, vsyasm.targets, vsyasm.xml > yasm.props, yasm.targets, yasm.xml
복사 : C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations\

도구 > 옵션 > 프로젝트 및 솔루션 > VC++ 프로젝트설정 > 빌드 사용자 지정 검색 경로에 아래 경로 입력
  - C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations


***실행파일명같은경우에는 .asm파일의 속성에서 사용자지정빌드도구에서 명령줄에서 수정이 가능하다.



Readme.txt

========================================================================

The YASM version vsyasm.exe is designed specifically for use
with Visual Studio 2010. To tell Visual Studio where to find
vsyasm.exe, the environment variable YASMPATH can be set to
the absolute path of the directory in which vsyasm.exe is
located (this path should include the final backslash).

Alternatively you can find the directory (or directories)
where the VC++ compiler binaries are located and put copies
of the vsyasm.exe binary in these directories. The typical
location on 64-bit Windows is:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin

On 32-bit Windows it is normally at:
 
C:\Program Files\Microsoft Visual Studio 10.0\VC\bin

Depending on your system you can use either the win32 or the
x64 version of vsyasm.exe, which must be named vsyasm.exe.

To use the new custom tools facility in Visual Studio 2010, you
need to place a copy of three files - yasm.props, yasm.targets
and yasm.xml - into a location where they can be found by the
Visual Studio build customisation processes.  There are several
ways to do this:

  a. put these files in the MSBUILD customisation directory,
  which is typically at:

    C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations
 
  or:
 
    C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations

  b. put them in a convenient location and set this path in the
     'Build Customisations Search Path' in the Visual Studio
     'Projects and Solutions|VC++ Project Settings' item in
     the 'Tools|Options' menu;

  c. put them in a convenient location and set this path in the
     'Build Customisation dialogue (discussed later).

To use YASM in a project, right click on the project in the Solution
Explorer and select 'Build Customisations..'. This will give you a
dialog box that allows you to select YASM as an assembler (note that
your assembler files need to have the extension '.asm').  If you have
used option c. above, you will need to let the dialogue find them
using the 'Find Existing' button below the dialogue.

To assemble a file with YASM, select the Property Page for the
file and the select 'Yasm Assembler' in the Tool dialog entry.
Then click 'Apply' and an additional property page entry will
appear and enable YASM settings to be established.
========================================================================

'Analysis > Assembly' 카테고리의 다른 글

LEA와 MOV의 차이점  (0) 2016.04.27
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

LEA와 MOV의 차이점


MOV는 말 그대로 데이터값을 옮겨 주는 것
(인텔 명령어셋 : 명령어 DST, SRC)


MOV REG1, REG2
REG2의 값을 REG1에 옮긴다는 뜻


MOV EAX, ECX
ECX에 있는 값을 EAX에 옮긴다.

단순하게 보면 LEA도 비슷하다.


LEA REG, MEM
MEM 주소값을 REG에 옮긴다는 뜻


LEA EAX, 1234
EAX가 1234이라는 값을 가지게 된다.

MOV EAX, 1234와 차이점을 비교하면 차이가 없다.
MOV EAX, 1234도 EAX에 1234값을 옮기기 때문이다.


하지만
LEA는 OPCODE의 ModR/M 을 이용하고
SRC의 값을 연산한 뒤 REG에 옮길 수 있다.


즉, MOV는 특정 메모리나 레지스터의 값을 옮기기만 하는 것이지
옮겨지는 값에 연산을 할 수 없다.


LEA EAX, [EBP+1000]
EBP의 값에 1000을 더한 뒤 EAX에 그 값을 넣게 된다.

즉, EBP가 2000이었으면 EAX의 값을 3000이 된다.


위와 같은 명령을 MOV로 표현을 하려면
ADD EBP, 1000
MOV EAX, EBP로 두개의 명령어로 표현해야 한다.

즉, LEA를 이용하여 좀 더 명령어를 줄일 수 있게 된다.


?? MOV EAX, [EBP+5] ???
EBP+5의 위치에 있는 값을 EAX에 넣는다.
즉, EBP가 100이었으면, LEA처럼 계산된 값인 105를 EAX에 넣는게 아니라
주소가 105번지에 있는 값을 EAX에 넣게된다.


즉, LEA만이 실행중에 계산된값을 넣을 수 있다.

'Analysis > Assembly' 카테고리의 다른 글

VS2010 YASM설치  (0) 2016.07.26

+ Recent posts