조립-소개

어셈블리 언어 란 무엇입니까?

각 개인용 컴퓨터에는 컴퓨터의 산술, 논리 및 제어 활동을 관리하는 마이크로 프로세서가 있습니다.

각 프로세서 제품군에는 키보드에서 입력 받기, 화면에 정보 표시 및 다양한 기타 작업 수행과 같은 다양한 작업을 처리하기위한 고유 한 지침 세트가 있습니다. 이러한 명령어 세트를 '기계 언어 명령어'라고합니다.

프로세서는 1과 0의 문자열 인 기계어 명령어 만 이해합니다. 그러나 기계어는 소프트웨어 개발에 사용하기에는 너무 모호하고 복잡합니다. 따라서 하위 수준 어셈블리 언어는 다양한 명령을 기호 코드로 더 이해하기 쉬운 형식으로 나타내는 특정 프로세서 제품군을 위해 설계되었습니다.

어셈블리 언어의 장점

어셈블리 언어를 이해하면 다음을 알 수 있습니다.

  • 프로그램이 OS, 프로세서 및 BIOS와 상호 작용하는 방법
  • 메모리 및 기타 외부 장치에서 데이터를 표현하는 방법
  • 프로세서가 명령을 액세스하고 실행하는 방법
  • 지침이 데이터에 액세스하고 처리하는 방법
  • 프로그램이 외부 장치에 액세스하는 방법.

어셈블리 언어 사용의 다른 장점은 다음과 같습니다.

  • 적은 메모리와 실행 시간이 필요합니다.

  • 더 쉬운 방법으로 하드웨어 특정 복잡한 작업을 허용합니다.

  • 시간이 중요한 작업에 적합합니다.

  • 인터럽트 서비스 루틴 및 기타 메모리 상주 프로그램을 작성하는 데 가장 적합합니다.

PC 하드웨어의 기본 기능

PC의 주요 내부 하드웨어는 프로세서, 메모리 및 레지스터로 구성됩니다. 레지스터는 데이터와 주소를 보유하는 프로세서 구성 요소입니다. 프로그램을 실행하기 위해 시스템은 외부 장치에서 내부 메모리로 프로그램을 복사합니다. 프로세서는 프로그램 명령을 실행합니다.

컴퓨터 스토리지의 기본 단위는 약간입니다. ON (1) 또는 OFF (0) 일 수 있으며 8 개의 관련 비트 그룹은 대부분의 최신 컴퓨터에서 한 바이트를 만듭니다.

따라서 패리티 비트는 바이트의 비트 수를 홀수로 만드는 데 사용됩니다. 패리티가 짝수이면 시스템은 하드웨어 오류 또는 전기적 장애로 인해 발생할 수있는 패리티 오류 (드물지만)가 있다고 가정합니다.

프로세서는 다음 데이터 크기를 지원합니다-

  • 단어 : 2 바이트 데이터 항목
  • 더블 워드 : 4 바이트 (32 비트) 데이터 항목
  • 쿼드 워드 : 8 바이트 (64 비트) 데이터 항목
  • 단락 : 16 바이트 (128 비트) 영역
  • 킬로바이트 : 1024 바이트
  • 메가 바이트 : 1,048,576 바이트

이진수 시스템

모든 숫자 체계는 위치 표기법을 사용합니다. 즉, 숫자가 기록되는 각 위치는 다른 위치 값을 갖습니다. 각 위치는 이진수 시스템의 경우 2 인 밑의 거듭 제곱이며이 거듭 제곱은 0에서 시작하여 1 씩 증가합니다.

다음 표는 모든 비트가 ON으로 설정된 8 비트 2 진수의 위치 값을 보여줍니다.

비트 값 1 1 1 1 1 1 1 1
기수 2의 거듭 제곱으로 위치 값 128 64 32 16 8 4 2 1
비트 번호 7 6 5 4 2 1 0

이진수의 값은 1 비트의 존재와 위치 값을 기반으로합니다. 따라서 주어진 이진수의 값은-

1 + 2 + 4 + 8 +16 + 32 + 64 + 128 = 255

2 8-1 과 같습니다 .

16 진수 시스템

16 진수 시스템은 16 진법을 사용합니다.이 시스템의 숫자 범위는 0에서 15까지입니다. 일반적으로 문자 A에서 F는 10 진수 값 10에서 15에 해당하는 16 진수를 나타내는 데 사용됩니다.

계산에서 16 진수는 긴 이진 표현을 축약하는 데 사용됩니다. 기본적으로 16 진수 체계는 각 바이트를 반으로 나누고 각 반 바이트의 값을 표현하여 이진 데이터를 나타냅니다. 다음 표는 10 진수, 2 진수 및 16 진수 등가물을 제공합니다.

십진수 이진 표현 16 진수 표현
0 0 0
1 1 1
2 10 2
11
4 100 4
5 101 5
6 110 6
7 111 7
8 1000 8
9 1001 9
10 1010 년
11 1011
12 1100 년
13 1101 년
14 1110 년 이자형
15 1111 년 에프

2 진수를 해당하는 16 진수로 변환하려면 오른쪽에서 시작하여 각각 4 개의 연속 그룹으로 나누고 해당 그룹을 16 진수의 해당 자릿수 위에 씁니다.

Example − 이진수 1000 1100 1101 0001은 16 진수와 동일합니다-8CD1

16 진수를 2 진수로 변환하려면 각 16 진수를 4 자리 2 진수로 작성하면됩니다.

Example − 16 진수 FAD8은 2 진수와 동일합니다.-1111 1010 1101 1000

이진 산술

다음 표는 이진 덧셈에 대한 네 가지 간단한 규칙을 보여줍니다.

(나는) (ii) (iii) (iv)
1
0 1 1 1
+0 +0 +1 +1
= 0 = 1 = 10 = 11

규칙 (iii) 및 (iv)는 다음 왼쪽 위치로 1 비트의 캐리를 보여줍니다.

Example

소수 바이너리
60 00111100
+42 00101010
102 01100110

음의 이진 값은 다음과 같이 표현됩니다. two's complement notation. 이 규칙에 따라 이진수를 음수 값으로 변환하는 것은 비트 값반대로하고 1을 더하는 것 입니다.

Example

53 번 00110101
비트 반전 11001010
1 추가 0000000 1
번호 -53 11001011

하나의 값을 다른 값에서 빼려면 빼는 숫자를 2의 보수 형식으로 변환하고 숫자를 더합니다 .

Example

53에서 42 빼기

53 번 00110101
번호 42 00101010
42의 비트 반전 11010101
1 추가 0000000 1
번호 -42 11010110
53-42 = 11 00001011

마지막 1 비트의 오버플로가 손실됩니다.

메모리의 데이터 주소 지정

프로세서가 명령 실행을 제어하는 ​​프로세스를 fetch-decode-execute cycle 아니면 그 execution cycle. 세 개의 연속 단계로 구성됩니다.

  • 메모리에서 명령어 가져 오기
  • 명령어 디코딩 또는 식별
  • 명령 실행

프로세서는 한 번에 하나 이상의 메모리 바이트에 액세스 할 수 있습니다. 16 진수 0725H를 고려해 보겠습니다. 이 숫자에는 2 바이트의 메모리가 필요합니다. 상위 바이트 또는 최상위 바이트는 07이고 하위 바이트는 25입니다.

프로세서는 데이터를 역방향 바이트 시퀀스로 저장합니다. 즉, 하위 바이트는 하위 메모리 주소에 저장되고 상위 바이트는 상위 메모리 주소에 저장됩니다. 따라서 프로세서가 0725H 값을 레지스터에서 메모리로 가져 오면 먼저 25를 하위 메모리 주소로 전송하고 07을 다음 메모리 주소로 전송합니다.

x : 메모리 주소

프로세서가 메모리에서 레지스터로 숫자 데이터를 가져 오면 다시 바이트를 반전시킵니다. 두 종류의 메모리 주소가 있습니다.

  • 절대 주소-특정 위치를 직접 참조합니다.

  • 세그먼트 주소 (또는 오프셋)-오프셋 값이있는 메모리 세그먼트의 시작 주소입니다.