2016-11-11 1 views
-1

8086 조건부 및 무조건 부 점프가 현재 명령에서 변위 (8 비트 또는 16 비트입니까?)를 서명 했습니까? 아니면 코드 세그먼트 레지스터에서 레이블까지의 오프셋을 지정합니까?점프 문 오프셋 또는 변위?

예컨대, 내가 쓸 때 :

label1: 
.. 
.. 
jmp label1 (unconditional) 

LABEL1 서명 변위로 대체 또는 코드 세그먼트에서 상쇄 될 것인가?

cmp ex, 0 
je label2 (conditional) 

LABEL2 서명 변위로 치환 또는 코드 세그먼트 엇갈리게 것인가? I는 아래와 loop 명령 사용할 때도

:

loop1: 
.. 
.. 
loop loop1 

이것은 loop1은 서명 변위에 의해 대체 될 것이다 것이다 또는 코드 세그먼트로부터 오프셋 (?는 8 비트 또는 16 비트이다)?

+0

이 질문에 대한 명확한 답변을 제공하는 명령어 세트 참조를 참조하십시오. –

답변

0

이 모든 경우에 사용 된 레이블은 현재 명령어의 뒷면에서 서명 된 오프셋으로 대체됩니다. 그래서 코드 세그먼트의 시작과 관련이 없습니다.

jmp label1는 두 가지 종류로 제공 무조건 점프 : 8 비트 16 비트는

조건부 점프 je label2을 상쇄 서명 사용

  • 을 상쇄 서명 사용

    • 및 루핑 명령 loop loop1은 부호가있는 8 비트 오프셋 만 사용합니다. (이후의 프로세서는 조건부 점프에도 16 비트 부호있는 오프셋을주었습니다.)