머갈통말
vs는 컴파일러를 통해서 x64인라인 어셈블리를 지원하지 않음간단한 어셈블리 프로젝트를 작성하는데 nasm와 같은 외부 어셈블러 사용시 어려움을 느낄 수 있음이번 글을 통해서 외부 어셈블러를 사용하지 않고 간단한 어셈블리 프로젝트를 작성해봄
미리 말함
x86에서는 코드에서 asm, _asm을 사용 가능
x64에서는 코드에서 asm, _asm을 사용 불가
이 글에서는 x86과 x64의 플랫폼 변경시에 비교적 유연하게 대처할 수 있도록 asm파일을 따로 만들어서 실습함
순서
- 프로젝트 생성
- main.cpp, asm_lib.asm 추가
- 사용자 지정 빌드 추가
- 코드 작성
- 끝
프로젝트 생성
프로젝트 생성 -> c++ 빈프로젝트 생성
main.cpp, asm_lib.asm 추가
main.cpp를 만든 뒤에 asm_lib.asm을 추가한다
따로 asm항목을 추가할 수 있는 형식이 없으니 직접 확장자를 작성한다
위 이미지와 같이 작성했다면 추가한다
사용자 지정 빌드 추가
프로젝트 우클릭 -> 빌드 종속성 -> 사용자 지정 빌드 클릭
masm을 체크
marmasm은 arm용이니까 체크하지마셈
소스 트리에서 asm_lib.asm을 우클릭 후 속성
항목 형식을 Microsoft macro Assembler로 변경한 뒤 확인
빌드에서 제외를 아니오 또는 빈칸으로 설정
코드 작성
x86으로 빌드 후 실행하면 다음과 같은 결과를 볼 수 있다
끝
이번 글에서는 x86에서 코드의 asm을 사용하지 않고 외부 파일을 이용하는 방법을 진행해봤음
다음 글에서는 x64에서 진행해봄
참고하셈
https://learn.microsoft.com/en-us/cpp/assembler/masm/dot-model?view=msvc-170
https://stackoverflow.com/questions/33751509/external-assembly-file-in-visual-studio
'날먹을 위한 몸부림 > 나중에 옮기겠지' 카테고리의 다른 글
자리 확보용 (2) | 2023.02.07 |
---|---|
오토핫키 딥러닝 (0) | 2023.02.02 |
c++ x64에서 vmx지원 체크 (2) | 2023.01.10 |
c++ x64에서 cpu 공급업체 가져오기 (0) | 2023.01.09 |
visual studio2019에서 인라인 어셈블리 - 2 (0) | 2023.01.09 |