선생님은 나중에 도로를 사용하면 도움이 될 수 있으므로 어셈블리에 대한 기본적인 이해를 원합니다. 나는 괜찮습니다.하지만 제 대학에서는 4 개의 작은 예문을 제외하고는이 과목에 대한 제로 문서를 제공하지 않습니다.어셈블리에서 수행하는 작업
.DEVICE ATmega32
.CSEG
main:
ldi ZL,low(varclist<<1)
ldi ZH,high(varclist<<1)
.CSEG
varclist:
.db 1, 2
.db 3, 4
.db 5, 6
.db 7, 8
.db 9, 0
내가 AVR 스튜디오 5에서 작업하고 있어요, 그리고 '프로세서'탭을보고 :이 일에 무슨 일이 일어나고 있는지 알아 내려고 노력하고있어. 나는 'varclist'의 값과 레지스터가 보여주는 16 진수 값 사이의 관계를 찾지 못하는 것 같습니다. 어떻게 보입니까?
Z 레지스터에 0x0100이 포함될 것으로 예상됩니다. 가장 중요한 비트가 선언 된 첫 번째 비트이고 마지막으로 최하위 비트가 선언 된 것입니다. 그러나 나는 0x0070을보고있다. 그래도 나는 변화가 무엇인지 모르겠다.
숙제를 위해, 나는 그 태그를 추가해야한다고 생각합니다. 같은 이유로, 코드가 당신을 도울 수있는 최선의 방법이 아닐 수도 있습니다. 당신은 당신이 생각하는 당신의 레지스터에 존재해야한다고 생각하는 것과 당신이 얻는 가치는 무엇인지 말할 수 있습니까? 일단 당신이 이것을 해내었다면 우리는 당신의 추론에서 무엇이 잘못되었는지를 분명히 설명 할 수있었습니다 :) –
그건 공평합니다, 나는 대답을 찾고 있지 않습니다. 이해하고 싶습니다. 더 많은 정보를 추가하겠습니다. – Lg102
코드를 어셈블 한 다음 해체하는 것이 좋습니다. 그런 다음 각 명령어에 대한 정보는 avr 명령어 세트 설명서를 참조하십시오. atmega32 데이터 시트/매뉴얼의 avr 명령어 세트 문서와 코어/cpu 챕터 사이에서 z 레지스터가 무엇인지, gprs에 매핑되는 방법, 그리고 명령이 실제로 코드화 된대로 무엇을하는지 알아낼 수 있어야합니다. 거기에서 어셈블리 언어로 거꾸로 돌아갑니다. –