>  기사  >  어셈블리 언어의 구성 요소는 무엇입니까?

어셈블리 언어의 구성 요소는 무엇입니까?

WBOY
WBOY원래의
2022-08-15 15:44:397981검색

어셈블리 언어의 구성: 1. 일반 데이터 전송 명령어, 조건부 전송 명령어 등을 포함한 전송 명령어 2. 명령어의 이 부분은 산술 및 논리 연산을 수행하는 데 사용됩니다. 레지스터를 전송하거나 메모리 피연산자가 지정된 횟수만큼 이동됩니다. 4. 테스트 명령어 BT, 비트 테스트 및 설정 명령어 BTS 등을 포함한 비트 작업 5. 무조건 전송 명령어 JMP, 조건부 전송 명령어를 포함한 제어 전송 JCC/JCXZ" 등; 6, 데이터 문자열에서 작동하는 데 사용되는 문자열 작업; 7. 주변 장치와 데이터를 교환하는 데 사용되는 입력 및 출력.

어셈블리 언어의 구성 요소는 무엇입니까?

이 튜토리얼의 운영 환경: Windows 10 시스템, DELL G3 컴퓨터.

어셈블리 언어의 구성요소는 무엇인가요?

거대한 어셈블리 명령어 시스템으로 인해 명령어 수가 많고, 형식이 복잡하며, 기억력이 떨어지는 명령어 시스템 시스템을 구축해야 합니다. 명령어에서 가장 어려운 점은 명령어가 지원하는 주소 지정 모드입니다. 그 핵심은 명령어에서 피연산자를 얻는 방법입니다. 프로세서의 경우 필요한 데이터를 찾는 방법입니다. 그러나 컴퓨터의 기본 어셈블리 언어의 경우 이 주소 지정 방법에는 수많은 계산 저장 형식이 포함되며 복잡한 저장 관리 방법과 밀접하게 관련되어 이해하기 어렵습니다. 마지막으로 어셈블리 명령은 플래그 비트에 영향을 미치는 방법과도 관련이 있지만 프로세서 플래그 비트는 매우 복잡하므로 해당 메커니즘을 마스터하기가 어렵습니다.

  • 전송 지침

에는 일반 데이터 전송 지침 MOV, 조건부 전송 지침 CMOVcc, 스택 작업 지침 PUSH/PUSHA/PUSHAD/POP/POPA/POPAD, 교환 지침 XCHG/XLAT/BSWAP, 주소가 포함됩니다. 또는 세그먼트 설명자 선택 하위 전송 명령어 LEA/LDS/LES/LFS/LGS/LSS 등

  • 논리 연산

이 부분의 명령어는 덧셈 명령어 ADD/ADC, 뺄셈 명령어 SUB/SBB, 하나의 명령어 INC, 빼기 하나의 명령어 DEC를 포함한 산술 및 논리 연산을 수행하는 데 사용됩니다. , 비교 연산 명령어 CMP, 곱셈 명령어 MUL/IMUL, 나눗셈 명령어 DIV/IDIV, 부호 확장 명령어 CBW/CWDE/CDQE, 소수점 조정 명령어 DAA/DAS/AAA/AAS, 논리 연산 명령어 NOT/AND/OR/XOR/TEST , 등.

  • Shift 명령

명령의 이 부분은 레지스터 또는 메모리 피연산자를 지정된 횟수만큼 이동하는 데 사용됩니다. 논리 왼쪽 시프트 명령 SHL, 논리 오른쪽 시프트 명령 SHR, 산술 왼쪽 시프트 명령 SAL, 산술 오른쪽 시프트 명령 SAR, 순환 왼쪽 시프트 명령 ROL, 원형 오른쪽 시프트 명령 ROR 등을 포함합니다.

  • 비트 연산

명령의 이 부분에는 비트 테스트 명령어 BT, 비트 테스트 및 설정 명령어 BTS, 비트 테스트 및 재설정 명령어 BTR, 비트 테스트 및 부정 명령어 BTC 및 비트 전달 스캔이 포함됩니다. 명령어 BSF, 비트 역방향 스캔 명령어 BSR 등

  • 제어 전송

이 부분에는 무조건 전송 명령어 JMP, 조건부 전송 명령어 JCC/JCXZ, 루프 명령어 LOOP/LOOPE/LOOPNE, 프로시저 호출 명령어 CALL, 하위 프로세스 반환 명령어 RET 및 인터럽트 명령 INTn, INT3, INTO, IRET 등

  • 문자열 연산

이 부분의 명령어는 문자열 전송 명령어 MOVS, 문자열 비교 명령어 CMPS, 문자열 스캔 명령어 SCANS, 문자열 로드 명령어 LODS, 문자열 저장을 포함한 데이터 문자열을 연산하는 데 사용됩니다. 명령어 STOS , 이러한 명령어는 선택적으로 접두사 REP/REPE/REPZ/REPNE 및 REPNZ를 사용하여 순차적으로 작동될 수 있습니다.

  • 입력 및 출력

명령의 이 부분은 포트 입력 명령 IN/INS 및 포트 출력 명령 OUT/OUTS를 포함하여 주변 장치와 데이터를 교환하는 데 사용됩니다.

어셈블리 언어의 특징

어셈블리 언어는 컴퓨터가 사용자에게 제공하는 언어 중 가장 빠르고 효율적인 언어이기도 하며, 컴퓨터의 모든 하드웨어 기능을 활용하고 하드웨어를 직접 제어할 수 있는 유일한 언어이기도 합니다. 그러나 어셈블리 언어 프로그램을 작성하고 디버깅하는 것은 고급 언어보다 더 복잡하기 때문에 해당 응용 프로그램은 현재 고급 언어만큼 널리 보급되지 않습니다. 어셈블리 언어는 기계어보다 가독성이 좋지만, 고급 언어에 비해 가독성은 여전히 ​​떨어집니다. 그러나 이를 이용해 작성된 프로그램은 저장공간 사용량이 적고 실행 속도가 빠른 특성을 갖고 있어 고급 언어로는 대체할 수 없다. 실제 애플리케이션에서 어셈블리 언어 사용 여부는 특정 애플리케이션 요구 사항, 개발 시간 및 품질에 따라 다릅니다.

장점

어셈블리 언어는 기계어보다 뛰어난 2세대 프로그래밍 언어이기도 합니다.

메모리 상태와 하드웨어 I/O 인터페이스 상태를 쉽게 읽을 수 있습니다.

코드가 적기 때문입니다. write 많은 컴파일 단계를 정확하게 실행할 수 있습니다

저수준 언어로 확장성이 뛰어납니다

단점

코드가 매우 단조롭고 특수 명령 문자가 거의 없기 때문에 코드가 길어지고 쓰기가 어렵습니다.

어셈블리에서는 여전히 데이터를 저장하기 위해 메모리를 호출해야 하기 때문에 BUG가 나타나기 쉽습니다.

완성되어도 프로그램을 작성하면 나중에 유지하는 데에도 많은 시간이 걸립니다.

기계의 특수성으로 인해 코드 호환성이 좋지 않습니다.

관련 지식이 더 궁금하시다면 FAQ 칼럼을 방문해 주세요!

위 내용은 어셈블리 언어의 구성 요소는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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