어셈블리 언어에는 어떤 유형이 있습니까?


최상의 답변

거의 모든 답변은 어셈블리 언어가 지원하는 프로세서 유형과 같은 다른 질문에 대한 답변입니다. 그러나 실제 어셈블리 언어는 프로세서 유형에 관계없이 세 가지 유형으로 분류 될 수 있습니다.

  1. 기본 어셈블리 언어입니다. 이것은 명령을 opcode로 변환합니다. 멋진 것은 없습니다. 이들 대부분은 소형 임베디드 기계 용입니다. 79 년에 8080 / 8080 / z80 용으로 하나를 썼습니다. 제한된 표현식에 대한 우선 순위조차 인식하지 못했습니다.
  2. (1)을 수행하지만 세트 코드 세그먼트를 설정하는 의사 명령어 및 지시문도 포함하는 일반 또는 일반적인 어셈블리 언어는 데이터 블록 등을 생성 할 수 있습니다. . 대부분의 어셈블러는 이러한 특성을 가지고 있습니다.
  3. 매크로 어셈블리 언어입니다. 좋은 것은 루프, 대체 등을 포함한 광범위한 매크로 언어를 가지고 있습니다. 그들은 매우 강력 할 수 있습니다. IBM 360 Assembler가 이에 대한 좋은 예입니다. Microsoft x86 / x64 MASM 어셈블러도 이에 대한 예입니다.

다음은 다른 컴파일러에서 어셈블리 언어를 이식 가능하게 만들기 위해 코드에서 사용하는 MASM의 매크로 예제입니다. 마무리해서 죄송합니다.

;

; This macro declares an external data element.

;

External macro dName:req, dType:req

local dataName, xName

xName textequ

forc chr, <&dName>

ifidn <&chr>, <\_>

xName textequ

else

xName catstr xName, <&chr> ;;catstr &xName, &chr

endif

endm

if (\_borland eq true)

dataName catstr <\_>, <&dName&> ;; extern "C": Borland"s 5.5.1 C++

elseif (\_comeau eq true)

dataName catstr <\_>, <&dName&> ;; extern "C": Comeau 4.2.45.2 C++

elseif (\_gnu eq true)

dataName catstr <\_>, <&dName&> ;; extern "C": GNU 2.95.3-5 C++

elseif (\_ibm eq true)

dataName catstr <\_>, <&dName&> ;; extern "C": IBM VisualAge 4.0 C++

elseif (\_intel eq true)

dataName catstr <\_>, <&dName&> ;; extern "C": Intel 5.0.1 reference C++

elseif (\_microsoft eq true)

if (\_x32 eq true)

dataName catstr <\_>, <&dName&> ;; extern "C": Microsoft Visual Studio

else

dataName textequ <&dName&> ;; extern "C": Microsoft Visual Studio

endif

elseif (\_clr eq true)

if (\_x32 eq true)

dataName catstr <\_>, <&dName&> ;; extern "C": Microsoft Visual Studio with -clr option

else

dataName textequ <&dName&> ;; extern "C": Microsoft Visual Studio with -clr option

endif

endif

extern dataName:dType

\%xName equ dataName

endm

답변

여러 유형의 어셈블리 언어가 있습니까? 어셈블리 언어는 고유합니까?

예, 최소한 RISC (일반적으로 3 개 피연산자,로드 / 저장, 많은 레지스터 포함) 및 CISC (일반적으로 2 개 피연산자 및로드와 달리로드)가 있습니다. / store, 레지스터에 먼저로드하지 않고도 메모리에서 작동 할 수 있습니다.)

가장 인기있는 RISC는 ARM입니다 (하지만 엄격하게는 2 ~ 3 개의 아키텍처이며 적어도 ARMv8은 실제로 다릅니다). MIPS 다른 변형. 가장 인기있는 CISC는 Intel의 x86입니다 (예 : 64 비트 x86-64 확장을 만든 AMD). IBM 메인 프레임 용으로 여전히 하나의 CISC를 사용하고 있습니다.

VLIW는 다른 하나 (및 Intel의 EPIC의 변종)이며, 많은 사람들이 TI를 포함한 이러한 유형의 CPU를 만들었습니다.

일부 모호한 것은 하나의 명령어 세트 컴퓨터-Wikipedia (OISC)이며 대부분 이론적 인 연습입니다.

제로 명령 집합 컴퓨터-Wikipedia (ZISC)이므로 어셈블리가 적용되는지 확실하지 않습니다. 🙂

그리고 transport triggered architecture-Wikipedia 는 내 머리 꼭대기에서 마지막 것입니다. 다른 것이 있습니까?

모든 하나의 명령어 세트 컴퓨터 아키텍처 중에서 TTA 아키텍처는 다음을 기반으로하는 프로세서를 보유한 몇 안되는 아키텍처 중 하나입니다. 제작되었으며,이를 기반으로 한 프로세서가 상업적으로 판매되는 유일한 제품입니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다