>일반적인 문제 >어셈블리 프로그램은 여러 언어를 혼합하여 작성된 프로그램입니까?

어셈블리 프로그램은 여러 언어를 혼합하여 작성된 프로그램입니까?

青灯夜游
青灯夜游원래의
2020-07-21 15:15:439915검색

오류, 어셈블러는 여러 언어를 혼합하여 작성된 프로그램이 아닙니다. 어셈블러는 어셈블리 언어로 작성된 프로그램을 동등한 기계어 프로그램으로 번역하는 번역 프로그램입니다. 어셈블러의 입력은 어셈블리어로 작성된 소스 프로그램이고, 출력은 기계어로 표현된 타겟 프로그램이다.

어셈블리 프로그램은 여러 언어를 혼합하여 작성된 프로그램입니까?

어셈블리 언어는 특정 컴퓨터나 컴퓨터 시리즈를 위해 설계된 기계 지향 언어입니다. 어셈블리 실행 명령어와 어셈블리 의사 명령어로 구성됩니다.

어셈블리 언어로 프로그램을 작성하는 것은 고급 프로그래밍 언어만큼 간단하고 직관적이지는 않지만, 어셈블리된 대상 프로그램은 메모리를 덜 차지하고 운영 효율성이 높으며 컴퓨터의 다양한 장치 리소스를 직접 참조할 수 있습니다. 일반적으로 시스템의 핵심 부분에 대한 프로그램을 작성하거나 실행 시간이 많이 필요하고 높은 실시간 성능이 필요한 프로그램 세그먼트를 작성하는 데 사용됩니다.

배경 정보

어셈블리 실행 명령은 기계 명령의 기호 표현입니다. 연산 코드는 메모리 기호로 표시되고 주소 코드는 레이블, 변수 이름, 상수 등으로 직접 표시됩니다. 어셈블리 실행 명령어는 어셈블러에 의해 기계 명령어로 변환되며, 두 명령어는 기본적으로 일대일 대응을 유지합니다. 어셈블리 명령어라고도 하는 어셈블리 의사 명령어는 어셈블러에 사용자 정의 기호, 데이터 유형, 데이터 공간 길이는 물론 대상 프로그램의 형식 및 저장 위치와 같은 프롬프트 정보를 제공하는 데 사용됩니다. 그 기능은 어셈블러에게 어셈블 방법을 지시하는 것입니다. 어셈블리 언어로 작성된 소스 코드는 해당 어셈블러를 사용하여 실행 가능한 기계어로 변환해야 합니다. 이 과정을 조립 과정이라고 합니다.

많은 어셈블러는 주소와 상수를 나타내는 레이블과 기호를 인식할 수 있으므로 하드 코딩하지 않고도 문자를 사용하여 피연산자를 나타낼 수 있습니다. 일반적으로 특정 어셈블리 언어와 특정 기계 언어 명령어 세트 간에는 일대일 대응이 있습니다.

많은 어셈블러는 프로그램 개발, 어셈블리 제어 및 보조 디버깅을 위한 추가 지원 메커니즘을 제공합니다. 일부 어셈블리 언어 프로그래밍 도구는 매크로 어셈블러라고도 하는 매크로를 제공하는 경우가 많습니다.

어셈블리 언어는 실제 응용 프로그램에서 대부분의 다른 프로그래밍 언어처럼 프로그래밍에 널리 사용되지 않으며 일반적으로 낮은 수준의 하드웨어 작업 및 수요가 높은 프로그램 최적화에 사용됩니다. 드라이버, 임베디드 운영체제, 실시간 실행 프로그램에는 어셈블리 언어가 필요합니다.

Category

  • 간단한 어셈블러

    간단한 어셈블러 "로드 및 실행" 어셈블러라고도 합니다. 단순성으로 인해 널리 사용됩니다. 이런 종류의 어셈블러의 특징은 어셈블된 기계어 프로그램이 실행 준비가 된 메모리에 직접 배치된다는 것입니다. 대상 프로그램이 차지하는 저장 위치는 조립 중에 고정되어 나중에 변경할 수 없습니다. 따라서 이 작업 방법은 독립적으로 조립된 여러 하위 프로그램을 완전한 프로그램으로 병합할 수 없으며 대상 프로그램과 충돌하지 않는 위치만 호출할 수 있습니다. 프로그램 라이브러리에서.

  • 모듈 어셈블러

    모듈 어셈블러 모듈러 프로그래밍 방식에 적합하도록 개발되었습니다. 단순한 어셈블리 프로그램의 단점을 극복하는 것 외에도 다양한 프로그램 모듈을 병렬로 설계, 코딩 및 디버깅할 수 있는 기능도 제공하며, 프로그램 변경 시 해당 모듈만 변경하는 기능도 제공합니다. 각각의 조립된 프로그램 모듈을 객체 모듈이라고 하며, 여러 객체 모듈은 조립 프로그램을 연결하여 완전한 실행 프로그램으로 결합됩니다.

  • 조건부 어셈블러

    조건부 어셈블러의 주요 기능은 특정 프로그램 세그먼트를 어셈블하도록 선택하는 기능입니다. 보다 선택적인 프로그램이나 프로그램 패키지를 작성하는 데 적합하므로 사용자의 요구와 장치 구성에 따라 적절한 소프트웨어를 맞춤화하고 컴파일할 수 있습니다. 이러한 종류의 어셈블리 언어는 일반적으로 사용자가 지정한 어셈블리 조건에 따라 특정 프로그램 세그먼트를 선택적으로 조립하거나 어셈블리 프로그램의 처리 경로를 제어하기 위해 "조건부 전송", "전송"과 같은 어셈블리 명령을 도입합니다.

  • 매크로 어셈블러

    매크로 어셈블러 주요 기능은 어셈블러에 매크로 처리 기능을 추가하는 것입니다. 사용자가 매크로 명령을 쉽게 정의하고 사용할 수 있도록 하며 프로그램의 여러 위치에 나타나고 특정 형식을 가지며 몇 가지 매개변수를 조정하여 변경할 수 있는 프로그램 단락에 적합합니다. 이 방법을 사용하면 프로그램의 길이가 줄어들고 가독성이 높아질 뿐만 아니라 프로그램 문단의 형식을 변경해야 하는 경우 모든 사용 지점이 아닌 정의 부분만 변경하면 됩니다.

  • 고급 어셈블러

    고급 어셈블러 고급 프로그래밍 언어의 제어문 구조를 사용하는 어셈블러입니다. 어셈블리 언어의 강력한 표현력과 높은 프로그램 운영 효율성의 장점을 유지할 뿐만 아니라, 고급 언어의 간단한 쓰기와 읽기 쉬운 장점을 완벽하게 흡수합니다.

    고수준 어셈블리 프로그램에서는 사용자가 고급 프로그래밍 언어의 제어문(예: 조건문, 루프문, 함수 및 프로시저 등)을 사용하여 프로그램의 제어 부분을 작성할 수 있고, 또한 사용자는 어셈블리 언어를 직접 사용하여 스토리지 할당을 직접 제어하고, 액세스 레지스터 하드웨어를 사용하여 고급 언어로 표현하기 어려운 알고리즘을 설명합니다.

    최초의 고급 어셈블러는 N.Worth가 IBM360 시스템용으로 개발한 PL/360 언어 어셈블러로, 프로그램의 제어 부분은 고급 언어 제어문을 사용하여 작성하고, 데이터 처리 부분은 IBM360 조립 지침을 사용하여 작성되었습니다. 이후 FORTRAN과 유사한 ALGOL, FAT와 유사한 어셈블러가 속속 등장했습니다.

더 많은 관련 지식을 보려면 PHP 중국어 웹사이트를 방문하세요!

위 내용은 어셈블리 프로그램은 여러 언어를 혼합하여 작성된 프로그램입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.