masm 예제

    어셈블리 언어로 레지스터를 참조할 때 이름은 대/소문자를 구분하지 않습니다. 예를 들어 EAX 및 eax 이름은 동일한 레지스터를 참조합니다. 배열이 많은 차원을 가질 수 있고 인덱스로 액세스할 수 있는 높은 수준의 언어와 달리 x86 어셈블리 언어의 배열은 단순히 메모리에 연속적으로 있는 셀수입니다. 배열은 아래 첫 번째 예제에서와 같이 값을 나열하기만 하면 선언할 수 있습니다. 데이터 배열을 선언하는 데 사용되는 다른 두 가지 일반적인 방법은 DUP 지시문과 문자열 리터럴의 사용입니다. DUP 지시문은 어셈블러에게 지정된 횟수를 복제하도록 지시합니다. 예를 들어, 4 DUP(2)는 2, 2, 2, 2와 동일합니다. 새 16비트 명령을 테스트하려면 열려 있는 Visual Studio 프로젝트를 닫습니다. 그런 다음 파일 | 오픈 | 메뉴에서 파일을 선택하고 책의 예제 프로그램의 ch03 폴더에서 16 비트.asm라는 파일을 선택합니다. 도구 메뉴에서 16비트 ASM 빌드를 선택합니다.

    어셈블러와 링커의 성공적인 실행을 보여주는 다음이 프로그램과 관련된 모든 파일의 목록을 보여주는 다음 명령 창이 나타나야 합니다. 솔루션 탐색기 창에서 기존 어셈블리 언어 파일을 제거하고 프로젝트에 새 .asm 파일을 삽입할 수 있습니다. 다음 예제에서는 을 사용하는 것을 보여 줍니다. 모델 지시문입니다. EAX, EBX, ECX 및 EDX 레지스터의 경우 하위 섹션이 사용될 수 있습니다. 예를 들어, EAX의 가장 유의한 2바이트는 AX라는 16비트 레지스터로 처리될 수 있습니다. AX의 가장 중요한 바이트는 AL이라는 단일 8비트 레지스터로 사용할 수 있으며, AX의 가장 중요한 바이트는 AH라는 단일 8비트 레지스터로 사용할 수 있습니다. 이러한 이름은 동일한 물리적 레지스터를 참조합니다. 2바이트 수량이 DX에 배치되면 업데이트는 DH, DL 및 EDX값에 영향을 줍니다. 이러한 하위 레지스터는 주로 명령 집합의 이전 16비트 버전의 홀드오버입니다. 그러나 32비트 보다 작은 데이터(예: 1바이트 ASCII 문자)를 처리할 때 편리할 때가 있습니다. 표기

    레이블 이름을 입력한 다음 콜론을 입력하여 x86 어셈블리 코드 텍스트의 아무 곳에나 레이블을 삽입할 수 있습니다. 예를 들어 전체 x86 명령 어 세트는 크고 복잡합니다 (인텔의 x86 지침 집합 설명서는 2900 페이지 이상으로 구성됨) 이 가이드에서는 모두 다루지 않습니다.