UXDE dot Net Wordpress Themes

어셈블리 예제

대부분의 다른 컴퓨터 언어와 마찬가지로 어셈블리 언어를 사용하면 어셈블리 중에 무시되는 주석을 프로그램 소스 코드에 추가할 수 있습니다. 이진 기계 명령 의 의미와 목적을 결정하기 어려울 수 있으므로 현명한 주석처리는 어셈블리 언어 프로그램에서 필수적입니다. 컴파일러 또는 디스어셈블러에서 생성되는 “원시” 어셈블리 언어는 변경해야 할 때 읽기가 매우 어렵습니다. 여기에 제시된 모든 자료는 수년 동안 제 가르침 [1]에서 나왔습니다. 따라서 이 문서를 읽으려면 인텔 x86-64 어셈블리 언어에 대한 일반적인 이해가 필요하며 Visual Studio 2010 이상에 대해 잘 알고 있는 것으로 가정합니다. 선호하는 것은 킵 어바인의 교과서 [2]와 MASM 프로그래머 가이드 [3]을 읽는 것이 좋습니다. 어셈블리 언어 프로그래밍 수업을 수강하는 경우, 이것은 연구를 위한 보충 독서가 될 수 있습니다. 다음 예제에서 볼 수 있듯이 MOV 구문도 더 복잡할 수 있습니다. [15] 어셈블리 언어는 각 낮은 수준의 기계 명령 또는 opcode를 나타내기 위해 니모닉을 사용하며, 일반적으로 각 아키텍처 레지스터, 플래그 등도 나타냅니다. 대부분의 작업에는 완전한 명령을 작성하기 위해 하나 이상의 나연산자가 필요합니다. 대부분의 어셈블러는 프로그램 및 메모리 위치에 대한 명명된 상수, 레지스터 및 레이블을 허용하고 발산체에 대한 식수를 계산할 수 있습니다. 따라서 프로그래머는 지루한 반복 계산에서 해방되며 어셈블러 프로그램은 기계 코드보다 훨씬 더 읽기 쉽습니다. 아키텍처에 따라 이러한 요소는 고정 된 주소뿐만 아니라 오프셋 또는 기타 데이터를 사용하여 특정 명령이나 주소 모드에 대해 결합 될 수 있습니다.

많은 어셈블러는 프로그램 개발을 용이하게 하고, 조립 공정을 제어하며, 디버깅을 돕기 위한 추가 메커니즘을 제공합니다. 여기서 B0은 `다음 값의 복사본을 AL로 이동`을 의미하고 61은 소수점 의 97인 값 01100001의 육각형 표현입니다. 8086 제품군의 어셈블리 언어는 이와 같은 지침에 대해 mnemonic MOV(이동 약어)를 제공하므로 위의 컴퓨터 코드를 어셈블리 언어로 다음과 같이 작성할 수 있으며, 세미콜론 이후에 필요한 경우 설명 주석이 함께 작성됩니다.