8086 어셈블리 언어 학습 (E) 8086를 해결

어드레스 8086 조립체 메모리

  이전 블로그 등 MOV 도끼 [2345H]로 어드레싱 메모리 양의 8086 컴파일 칭한다. 8086 조립 다양한 요구를 충족하기 위해 추가,보다 유연한 주소 모드를 제공합니다.

  또, 강조된다 없이 어드레싱 모드는 메모리의 어드레스가 항상베이스 어드레스 및 오프셋 어드레스는 것을 제외된다베이스 어드레스 + 오프셋 어드레스 (베이스 + 오프셋 기간)의 조합에 의해 어드레스 될 나는 어디에서 얻을 수 있습니다 .

8086 어셈블리 모드 세그먼트 기본 주소를 제공한다

  MOV 도끼 [2345H]에서, 상기 값은 세그먼트 어드레스가 있기 때문에, 도시하지 않은 나타내는 컴파일 프로세스 명시 적 세그먼트 기본 명령어, 세그먼트 자료로서 데이터 세그먼트 레지스터 DS의 디폴트 값이 아닌 경우에는 8086 . 즉, MOV AX의 [2345H] 실제로 MOV 도끼 DS [2345H] 약어.

  시 지정된 세그먼트 기본 주소 "오프셋 어드레스 세그먼트 레지스터"접근법 : 8086에 의해 조립체. 하지만 유일한 세그먼트 레지스터 어드레스 세그먼트는 세그먼트 DS 레지스터에 저장 될 수있는 메모리 어드레스이지만, 다른 스토리지 세그먼트 레지스터 DS. 명시 적으로 지정할 수있다 (지침에 MOV AX CS : 이때 [2345H, 코드 세그먼트의 세그먼트 어드레스는 CS 레지스터 ).

8086 조립체 오프셋 어드레싱 제공 방법

  : 8086 조립체 많은 방법과 같은 오프셋 어드레스를 제공하는 다섯 가지로 나눌 수있다 , 상대 기준 어드레싱 인덱스의 순서에 따라 주소 지정 직접, 간접 어드레싱 레지스터 상대적인 어드레스, 인덱스 레지스터 어드레스베이스 유연성과 복잡성을 증가 .

  오프셋 어드레스는 레지스터에 의해 지정 될 수 있고, 메모리의 한 위치에 저장되거나, 명령 버퍼에서, 또는 이들의 조합과 같은 구성 .

직접 주소

  이전에 언급 한 사실을 어드레싱 (MOV 도끼 [2345H]) 어드레싱 직접가 실제 동작 명령에 직접 저장 어드레스 오프셋 어드레스를 지정하고, 명령 버퍼로부터 CPU 실행 얻기 오프셋 값은 메모리 주소에 대응.

  여기에 제안 된 다수의 IDATA (즉시 데이터)를 직접적으로 즉각적인의 개념, 또는 일정한 값 2345H 1000H 등의 지침을 참조하십시오. 명령 값은 CPU에 의해 실행되는 명령 버퍼, 취득, 저장된다 함유 상수, IDATA.

  명령 MOV 도끼, 1000H 도끼의 즉각적인 대표로, 1000H는 다음과 같이 추출 할 수 있습니다 mov 인 도끼, IDATA 형태.

  명령어 MOV 도끼 [1000H, 대표 DS :로 추상화 될 수있다 어드레스 1000H 메모리 MOV 도끼 [IDATA] 형태.

간접 주소를 등록

  간접 어드레싱 레지스터 어드레싱 모드가 명으로부터 얻어 질 수 있고, 어드레스는 그 값이 특정의 레지스터에 존재하는 클래스의 레지스터 값을 찾기 일정하지만 유사한 변수는 아니다.

  8086는 레지스터의 모든 레지스터가 간접 어드레싱 가능하고, 단지 레지스터 BX, BP, SI, 디 네 레지스터 헌트 값 레지스터를 지칭하고, 간접 어드레스를 등록하지 않는 것에주의가 사용될 수있다. (가) 간접 어드레싱을 고려 ​​컴파일러 구문 오류를 등록 할 때 다른 레지스터가 사용된다.

  레지스터 간접 어드레싱 모드이다 [BX] / [BP] / [SI] / [디 4 개의 종류 예컨대 MOV AX, BX : 상기 명령어를 의미하는 메모리 어드레스 DS이다시에 BX 데이터 레지스터 도끼한다.

주소 등록 기준

  특정 유형 또는 IDATA 일정한 오프셋 어드레스와 어드레스 레지스터의 간접 어드레싱 레지스터 직접 또는 직접 IDATA에 하나의 요소를 사용하여, 어드레스 레지스터에 의해 특정 될 수 있으며, 상대적으로 간단하다. 어드레싱은 더 복잡 상수 레지스터 IDATA 조합이 달성 어드레싱.

  등록 상대적인 어드레스 레지스터 IDATA 수행과 조합에 의해 해결된다. 이러한 상대 어드레스 레지스터 + 상수 어드레싱 모드 BX / BP / SI / 디 당량 어드레싱 레지스터.

 (제 1 타입의 표준 형식 -1,2,3,4- 문법적이다) 상대적인 어드레스 유연 대략 다음 등록 :

  1. bx + idata] / [bp + idata] / [si + idata] / [di + idata] 标准 격식

  2 BX]으로 .idata / [BP]으로 .idata / [SI]으로 .idata / [디]으로 .idata 일반 구조용

  3.idata BX : / IDATA [BP] / IDATA [SI] / IDATA [디 일반적 일차원 배열에 사용

  4 BX] IDATA] /    [BP] IDATA] / [SI] IDATA] / [디] IDATA] 일반적으로 2 차원 배열에 사용  

  왜 8086 많은 다른 구문의 편집을 제공 할 것입니다,하지만 기본적으로 주소 레지스터 상대에 대해 동일한 문법 설탕입니까? 주의 깊은 관찰은 많은 방법의 배열 2,3,4 쓰기 높은 수준의 언어 / 개체, 접속의 구조처럼 찾을 수 있습니다. 8086 개 이벤트 프로그램이 이해하기 쉽게 작성 허용 구문의 다양한. 고급 언어의 배열을 시뮬레이션한다 8086 조립 후의 블로그, 메모리 설계의 구조가 상세히 설명.

일이 해결 색인

  일 인덱스 어드레스가 상대 어드레스 지정 모드 레지스터보다 더 유연하고, 두 개의 상이한 어드레싱 레지스터의 조합이다. 그러나 여기 BX / BP /시 / 디 페어는 자유롭게 특징으로는 BX / BP 그룹, SI / 디 그룹, 혼합하지. 두 그룹의 상이한 조합 간의 순서 번지 레지스터는 네있다 : [BX + 실리콘을, [BX + DI], [BP +의 Si], [BP + DI].

     일는 일반적으로 2 차원 어레이에 데이터를 어드레싱에 사용되는 어드레싱 인덱스.

상대베이스 주소 색인

  인덱스 어드레스에 대해 일 그룹별로 어드레스 인덱싱하고 일정한 IDATA의 소자 추가 어드레싱 모드는 두 변수 + 상수이고 , 어드레싱 모드 가장 복잡하고 유연한 방식이다.

  그룹 및 상대 기준 어드레싱 인덱스 어드레싱 인덱스 어드레싱과 같은 네 가지 방법을 갖는다 : [BX + 실리콘 + Idata와, [+ BX + Idata와시] [시 BX + + Idata와, [BX +를 SI는 IDATA +].

  상대 염기 배열 액세스의 자연스런 표현을 비교하여, 중첩 구조 데이터의 오프셋 주소 구조체 편리한 방법을 제공하도록 제공 어드레싱 모드 8086CPU 인덱싱.

추천

출처www.cnblogs.com/xiaoxiongcanguan/p/12397645.html