1
ARM 어셈블리를 사용하여 레지스터 값을 주소에 저장하려고합니다. 이런 종류의 것을 찾고 있는데ARM 어셈블리를 사용하여 레지스터의 값을 절대 주소에 저장하려면 어떻게합니까?
STR R0, =0x20000000 // store r0 to 0x20000000
그러나 이것은 잘못된 것입니다. 다음과 같이이 작업을 수행하는
한 가지 방법은
LDR R1, =0x20000000
STR R0, [R1 + #0]
입니다하지만 위에서 언급 한 바와 같이, 하나의 레지스터를 사용하여 수행 할 수 있습니다. 그렇게 할 방법이 있습니까?
전체 32 비트 절대 주소를 인코딩하기에 기계 코드에 충분한 공간이 없으므로 아니오입니다. 사용 가능한 무료 스택이 없다면 스택에 레지스터를 저장할 수 있습니다. – Jester
기계 코드 명령어의 크기는 얼마입니까? –
@MuzahirHussain 엄지 손가락 코드 (Cortex M3에서 사용됨)에서 명령어는 2 또는 4 바이트 길이입니다. – fuz