2012-01-15 2 views
3

제목이 정말로 진술했듯이 Visual Studio에서 어셈블리 코드를 작성할 수 있습니까?Visual Studio를 사용하여 인텔 어셈블리를 작성할 수 있습니까?

인텔 임베디드 언어 작성을위한 사용하기 쉬운 IDE를 찾고 있습니다. 몇 달 전에 몇 가지 IDE를 살펴 봤는데 그들이 많은 설정을 필요로하지 않는다면 (IDE에 예제를 복사하여 붙여 넣기 만하면) 그들은 작동하지 않을 것입니다 ...... ......

아주 간단한 IDE가 있어야합니다 VS를 사용하여 어셈블리를 작성하고 CPU를 선택한 다음 실행할 수 있습니까?

답변

3

Visual Studio의 인라인 어셈블러는 신뢰할 수는 없지만 MASM (the Microsoft Macro Assembler)과 함께 Visual Studio를 사용하여 스트레이트 어셈블리 프로그램을 작성할 수 있습니다. 어셈블리에있어서, 윈도우를 개방 출력을 설정하는 "아교"코드 작성

, 은 오히려 고통스럽고, 그래서 ou는 대부분의 프로그램을 C++로 작성하는 것이 더 편할뿐만 아니라 어셈블리의 파일 몇 개를 작성할 수도 있습니다. 그렇게하면 직선 어셈블리에서 간단한 테스트 함수를 작성하여 C++ 프레임 워크에서 호출 할 수 있습니다.

+1

@Nocturn을 당신을 도움이 될 것입니다 : 그것은 64에서 지원되지 않습니다. (http://msdn.microsoft.com/en-us/library/4ks26t93.aspx) 또한 C++ 함수의 중간에 인라인 어셈블 할 경우 몇 가지 코드 생성 버그를 발견했습니다. 큰 함수를 가지고 있고 그 중간에 C++ 변수를 레지스터에로드하려고 시도하는 __asm ​​블록을 사용합니다. 때로는 잘못된 변수가로드되거나 레지스터가 clobbered됩니다. 자주 발생하지는 않습니다. 나는 마이크로 소프트가 더 이상 인라인 어셈블러를 지원하지 않는다고 생각하고 희소 한 버그가 들끓기 시작했다. – Crashworks

+1

@Nocturn 무엇이 * 아직도 * 나를 위해 일하는가 (x86 어쨌든), __declspec (naked) 함수를 쓰고있다. 모든 어셈블리이고, C에서 그것들을 호출한다. 아직 컴파일러 버그를 수행하지 않았다. 나는 여전히 보통의 인라인 어셈블리를 사용하기도하지만 나중에 생성 된 코드 (예 :/FACS)를 확인하여 나중에 제대로되었는지 확인해야합니다. – Crashworks

+0

[이 답변] (http://stackoverflow.com/a/4549741/422797)도 참조하십시오. –

관련 문제