A86(소프트웨어)

A86 (software)
A86
개발자에릭 아이작슨
안정적 해제
4.05 / 2006; 16년 전(2006)
운영 체제MS-DOS
플랫폼x86
유형조립자
면허증소유권
웹 사이트.eji.com/a86

A86MS-DOS위한 조립자로, 마이크로프로세서의 인텔 x86 제품군에 대한 코드를 생성한다.에릭 아이작슨이 쓴 이 책은 1986년 6월에 쉐어웨어로 처음 출시되었다.조립자는 하나의 32K 실행 파일에 포함되어 있으며 표준 링커와 함께 사용할 수 있는 COM 파일이나 객체 파일을 직접 생성할 수 있다.디버거 D86과 함께 나온다.[1][2]

예상 x86 구문을 지원하는 한편, A86은 경우에 따라 더 간단한 속기를 허용하며, 다음과 같은 지시사항을 요구하지 않는다.ASSUME그리고PROC마이크로소프트 매크로 어셈블러와 다른 동시대 사람들이 의존하는.조립 속도는 주요 판매점이다.아이작슨은 A86이 펜티엄 2호 이상에서 초당 10만줄의 선원을 조립할 수 있다고 주장했다.[3]

A86 및 D86 대상 16비트 x86 플랫폼.아이작슨은 1990년대 중반 A386D386의 형태로 32비트 지원을 추가했다.[1][2]이것들은 쉐어웨어로 배포되지 않고 A86을 등록한 사용자들에게 제공되었다.A86 제품군은 Microsoft Windows에 포팅되지 않았지만, A386이 생성한 객체 파일을 Windows 링커로 사용할 수 있다.[4]조립자는 64비트 코드를 지원하지 않는다.

A86별 기능

한 글자 뒤에 한 자리 이상의 숫자로 구성된 모든 라벨은 국부적이며 필요에 따라 다시 정의될 수 있으며 각 정의가 이전 정의를 대체한다.사용 설명서에서 권장하는 사용법L1을 통해L9일반 코드 및M1을 통해M9매크로로로컬 레이블에 대한 분기는 뒤로 이동하는 것으로 가정하지만, 라벨 참조에 큰 기호(예: 보다 큰 기호)로 접두사를 붙여 전방 분기를 지정할 수 있다.>L2).

0으로 시작하는 숫자는 다음과 같이 16진법이다.00FF사용자 지정 접두사를 사용하는 대신후행 "K"는 키비바이트를 나타낸다.[5] 16K16*1024 또는 16384와 동일하다.

여러 개의 레지스터를 동일한 소스 라인에서 푸시하거나 푸시할 수 있다. push eax, edx, ebp세 피연산자 각각에 대해 하나의 명령을 생성한다.

단일 명령을 조건부로 실행하기 위한 속기가 있다. if z mov ax,bx두 가지 지시사항을 출력한다: 조건부 분기 다음에 이동.

만약ret조건부 분기의 라벨로 지정되며, 8비트 분기 범위(예:) 내에서 자동으로 반환 명령을 대상으로 한다.jz ret).

매크로는 동시대적인 조립자와는 다른 구문을 사용한다.

코드 지문

조립자는 기능적으로 동등한 특정 명령 인코딩을 사용하도록 설계되었지만, 함께 실행 파일에 내장된 지문을 생성한다.이것은 매뉴얼의 법률 용어 섹션에 언급되어 있다.지문을 통해 A86으로 코드가 조립되었는지 여부를 알 수 있고, 조립자의 등록 버전과 등록되지 않은 버전을 구별할 수 있다.이 분석에는 소스 코드에 대한 접근이 필요하다.[6]

참조

  1. ^ a b Isaacson, Eric (2008). "A86/A386 assembler and D86/D386 debugger". Archived from the original on 2 July 2008. Retrieved 2008-07-02.
  2. ^ a b Randall Hyde. "Which Assembler is the Best?". Archived from the original on 15 May 2008. Retrieved 2008-05-18.
  3. ^ Isaacson, Eric (2006). "A86/A386 and D86/D386 features".
  4. ^ Isaacson, Eric (2006). "A386 and Win32 Programming".
  5. ^ Hague, James (July 20, 2008). "Kilobyte Constants, a Simple and Beautiful Idea that Hasn't Caught On". Programming in the 21st Century.
  6. ^ El-Khalil, Rakan; Keromyti, Angelos D. (2004). "Hydan: Hiding Information in Program Binaries" (PDF). In Lopez, Javier; Qing, Sihan; Okamoto, Eiji (eds.). Information and communications security: 6th International Conference, ICICS 2004, Malaga, Spain, October 27–29, 2004 : Proceedings. Lecture Notes in Computer Science. Vol. 3269. Springer. p. 190. ISBN 3-540-23563-9.