학교용으로 ARM 시뮬레이터 작성 중입니다. ARM ARM (http://www.eecs.umich.edu/~prabal/teaching/eecs373-f11/readings/ARMv7-M_ARM.pdf)에서 분기 오프셋에 대한 두 번째 및 세 번째 최상위 비트를 I1 = NOT(J1 EOR S);
및 I2 = NOT(J2 EOR S);
(ARM ARM Pg 239)으로 계산합니다. 왜 이런 식으로하는지 아는 사람이 있습니까? 웬일인지 그것이 나를 일으키는 원인이되고있는 것처럼 보인다.B 명령어 인코딩
1
A
답변
2
이것은 조금은 수수께끼 같지만 I1과 I2 비트를 유효한 명령어 인코딩으로 매핑하는 기법 인 것으로 보입니다.
Thumb 분기 명령어는 16 비트 하위 명령어 쌍으로 인코딩됩니다. 각 16 비트 하위 명령어는 고유 한 명령어 인코딩을 필요로합니다.
'S'비트는 부호 비트이므로 T3 인코딩과 T4 인코딩을 첫 번째 16 비트 하위 명령어와 구분할 방법이 없음을 알 수 있습니다.
두 번째 하위 명령어 비트 12에서는 인코딩 T3와 T4를 구별합니다. 그러나 I1과 I2를 직접 사용하면 기존 지침과 충돌하기 때문에 분기의 범위를 결정하는 네 가지 인코딩 중 하나에 포함됩니다.
관련 문제
- 1. x86 명령어 인코딩 테이블
- 2. 어셈블리 비교 명령어
- 3. Python과 Tkinter의 변수에서 명령어 빌드하기
- 4. 빈번히 사용되는 명령어 저장을위한 linux 명령어
- 5. goback 명령어?
- 6. Media Foudation을 사용한 WMV 인코딩 : "B 프레임 수"지정
- 7. b = false if (b) b = false
- 8. \ b 대 정규식의 \\ b
- 9. AltiVec에 MMX/SSE 명령어 포팅하기
- 10. Python에서 키 명령어 만들기
- 11. 잘못된 명령어 피연산자 MASM와 지시어
- 12. $ {$ b}
- 13. 중요한 데이터를 무시하는 분기 명령어?
- 14. 리눅스에서 Intel 어셈블리 명령어 코드를 쉽게 확인하십시오.
- 15. 펄 명령어 디버거의 X 명령어 (디스플레이 변수)에 대해
- 16. LLVM 세그먼트 화 오류/필요 명령어 대신 명령어 사용 *
- 17. x86 명령어 세트 로드맵
- 18. Vala에서 시스템 명령어 실행
- 19. GLSL break 명령어
- 20. JMP 명령어 주소 계산하기
- 21. 가장 빠른 CPU 명령어
- 22. 쉘 시작 명령어
- 23. 명령어 기능에서 UI 변경
- 24. 플렉스/들소에서의 JMP 명령어
- 25. lightTPD에 Put 명령어 활성화
- 26. 가상 머신에서의 명령어 표현
- 27. JVM 명령어 란 무엇입니까?
- 28. 쉘 명령어 출력 포맷하기
- 29. plink 명령어 잘림
- 30. 명령어 설명을위한 의사 코드
인코딩을 보여주는 몇 가지 예제 디스 어셈블리가 있습니까? –