어셈블리 언어 예제

의사 opcodes, 의사 작업 또는 의사 작전이라고도 하는 어셈블리 지시문은 어셈블러에 “명령 어셈블 이외의 작업을 수행하도록 지시”하는 명령입니다. [9] 지시문은 어셈블러의 작동 방식에 영향을 미치며 “개체 코드, 기호 테이블, 목록 파일 및 내부 어셈블러 매개 변수값에 영향을 줄 수 있습니다.” 경우에 따라 pseudo-opcode라는 용어는 데이터를 생성하는 것과 같은 개체 코드를 생성하는 지시문에 대해 예약되어 있습니다. [19] 대부분의 다른 컴퓨터 언어와 마찬가지로 어셈블리 언어를 사용하면 어셈블리 중에 무시되는 주석을 프로그램 소스 코드에 추가할 수 있습니다. 이진 기계 명령 의 의미와 목적을 결정하기 어려울 수 있으므로 현명한 주석처리는 어셈블리 언어 프로그램에서 필수적입니다. 컴파일러 또는 디스어셈블러에서 생성되는 “원시” 어셈블리 언어는 변경해야 할 때 읽기가 매우 어렵습니다. 1948년 말, 전자 지연 저장 자동 계산기(EDSAC)에는 조립어(“초기 주문”)가 부트스트랩 프로그램에 통합되었습니다. 그것은 첫 번째 “어셈블러”의 창조자로 IEEE 컴퓨터 학회에 의해 적립 데이비드 휠러에 의해 개발 한 글자 mnemonics을 사용했다. [31] [32] [33] EDSAC에 대한 보고서는 필드를 명령어로 결합하는 프로세스에 대해 “어셈블리”라는 용어를 도입했습니다. [34] SOAP(상징적 최적 조립 프로그램)는 1955년 스탠 폴리(Stan Poley)가 작성한 IBM 650 컴퓨터의 어셈블리 언어이다. [35] 일부 어셈블러는 실행 흐름을 인코딩하기 위해 구조화 된 프로그래밍 요소를 통합했습니다. 이 접근 법의 초기 예는 개념-14 매크로 세트에 있었다, 원래 박사 할란 밀스에 의해 제안 (3 월 1970), IBM의 연방 시스템 부문에서 마빈 케슬러에 의해 구현, IF / ELSE / ENDIF와 S / 360 매크로 어셈블러를 확장 유사한 제어 흐름 블록.

[24] 이것은 어셈블리 코드에서 GOTO 작업의 사용을 줄이거나 제거하는 방법, 어셈블리 언어에서 스파게티 코드를 일으키는 주요 요인 중 하나였다. 이 방법은 80 년대 초반에 널리 받아 들여졌다 (대규모 어셈블리 언어 사용의 후기). 이식성은 상위 수준의 언어의 주요 장점 중 하나입니다. C 프로그래밍 언어는 거의 모든 최신 시스템 아키텍처에 C 컴파일러가 존재하기 때문에 종종 “이식 가능한 어셈블리”라고 합니다. C로 작성된 프로그램은 다른 컴퓨터에서 컴파일하기 전에 약간의 변경이 필요할 수 있지만 핵심 언어는 이식 가능합니다. 어셈블리 언어에는 중요한 특정 틈새 시장이 있지만(아래 참조) 최적화를 위한 다른 도구가 있습니다. [38] 어셈블리 언어 프로그래밍 비디오 코스, 아서 그리피스에 의해 가르쳐 70 부분 비디오 시리즈, 누가 매우 민속 매력을 가지고 MOV의 구문은 또한 다음과 같은 예쇼로 더 복잡 할 수 있습니다. [15] MOV와 같은 일부 어셈블리 언어(이 언어 포함)에서는 즉각적인 값인지, 레지스터의 값인지 또는 가리키는 메모리 위치인지 여부에 관계없이 데이터를 로드, 복사 및 이동하기 위한 관련 지침의 패밀리에 사용할 수 있습니다. 레지스터 또는 즉각적인(a/k/a direct) 주소의 값입니다. 다른 어셈블러는 “등록할 메모리 이동”, “메모리로 레지스터 이동”을 위한 ST, “등록을 위해 레지스터이동”을 위한 LR, “즉시 피연산자를 메모리로 이동”하는 MVI 등의 별도의 opcode 기억기를 사용할 수 있습니다. X86 어셈블리 언어 프로그래밍, OS 프로그래밍 컨텍스트에서 어셈블리 언어를 잘 배치 하는 또 다른 자습서, 리눅스에 대 한 참조이 하나, 윈도우, 그리고 맥 OS X 어셈블리 언어에 대 한 심지어 조금은 여전히 대부분의 컴퓨터 과학 및 전자에서 가르쳐 엔지니어링 프로그램.

오늘날 어셈블리 언어를 도구로 정기적으로 작업하는 프로그래머는 거의 없지만 기본 개념은 여전히 중요합니다.