2013-02-14 4 views
1

Visual Studio에서 x86 어셈블리 언어에 대한 코드 자동 완성 기능을 지원합니까? 자동 완성이 Java 및 C++와 같은 고급 프로그래밍 언어로 작업 할 때 유용하다는 것을 알았습니다. Visual Studio에서 유사한 기능을 어셈블리 언어로 사용할 수 있는지 알고 싶습니다. 예를 들어 m을 입력하면 mov을 제안 및 입력 j은 제안으로 j1을 제공합니다.x86 어셈블리 언어 용 코드 자동 완성

+0

x86 어셈블리 언어에 대해 모든 단일 키워드를 외우는 것이 어렵다는 것을 알았습니다. 따라서 어떤 종류의 자동 완성 기능은 (존재한다면) 매우 유용 할 것입니다. 최소한 이론 상으로는 어셈블리 언어에 대한 코드 자동 완성 기능을 구현할 수 있습니까? –

+2

매 명령어 나 키워드를 모두 기억할 필요가 없습니다. 여러분은 가장 기본적이고 유용한 것들 (예를 들어'mov','add','ret','jz' 등)을 매우 빨리 암기 할 것입니다. –

+0

@AlexeyFrunze 그래도 자동 완성 기능을 사용하면 이러한 기본 지침 (각 지침의 목적과 함께)을 더 쉽게 익힐 수 있습니다. 각 키워드에 대한 문서가 마우스 오버로 표시 될 수 있다면 유용 할 것입니다. 이는 다른 언어에 대한 IDE의 기능입니다. –

답변

2

GitHub의 하나가, 어셈블리 언어에 대한 몇 가지 자동 완성을 제공하는 유일한 십오 특히 어셈블리 언어를 위해 설계된이다.

RADASM은 이러한 IDE의 한 예입니다.

어셈블리 자동 완성의 주요 대상은 (짧고 입력하기 쉽기 때문에) 지침이 아니라 레이블 및 기타 식별자입니다.

큰 어셈블리 프로젝트에는 수천 개의 레이블이있을 수 있으므로이 세트 내부의 빠른 탐색이 실제로 매우 유용합니다.

가장 진보 된 자동 완성 엔진 중 하나는 Fresh IDE입니다.

내 프로젝트이지만이 추정에서는 편견이 없다고 생각합니다.

대부분의 어셈블리 IDE는 고정 된 API 레이블 목록을 사용하고 감지 된 레이블 목록을 만들기 위해 소스 파일을 스캔하는 경우가 있습니다. 일반적으로 여러 다른 어셈블러와 HLL 컴파일러를 지원해야하는 보편적 인 IDE이기 때문에 이러한 트릭을 사용해야합니다.

신선한 IDE는 다릅니다. 컴파일 후 어셈블러에서 감지 한 식별자 세트를 수집하기 위해 FASM 어셈블러를 사용하여 실제 컴파일을 실행합니다. 이 방법으로 모든 레이블은 조립 과정에서 매크로에 의해 생성 된 라벨과 함께 값, 유형 및 계층 구조와 함께 올바르게 감지됩니다.

FASM에는 매우 복잡하고 유연한 매크로 시스템이있어 다른 검색 메커니즘을 신뢰할 수 없게 만들었 기 때문에이 솔루션이 강제되었습니다.

신선한 IDE가 특정 API에 바인딩되어 있지 않기 때문에 고정 된 API 목록을 사용하는 것도 불가능합니다. 그러나 지원되는 여러 OS 및 심지어 OS 개발을위한 애플리케이션 프로그래밍을 목표로합니다.

+0

FASM뿐만 아니라 MASM에서도 Fresh IDE를 사용할 수 있습니까? –

+0

아니요 - 불행히도, 정말 좋은 IDE를 얻는 유일한 방법은 대상 컴파일러와 긴밀하게 통합하는 것입니다. 나는 HLL과 함께 일하지는 않지만 AFAIK, FASM은 C/C++ 프로그램과 함께 사용할 수 있습니다. COFF 개체 형식으로 컴파일 한 다음 모든 항목과 연결할 수 있습니다. – johnfound