나는이 과정을 수강 중이며, .align
이라는 개념을 이해하는 데 정말로 어려움을 겪고있다.어셈블리 MIPS의 이해 .ALIGN 및 메모리 어드레싱
는 여기에 내가 이해하지 수있는, 예입니다 :
나는 데이터 세그먼트 내에서, 등, 0x10010000,0x10010020로 시작, 주소가 있다는 것을 알고있다.
그리고 각 주소에는 8 개의 메모리 필드가 있고 각각 32 비트가 있다는 것을 알고 있습니다.
자, 내가 이해할 수없는 것은, 어떻게 그리고 왜 var2
은 주소 0x10010010 안에 있습니까? str1
은 var1
의 3 비트를 예약했기 때문에 주소 0x10010003 안에 있습니다.
마지막으로 정확히 지시문 인 .align' doing? when I tested it in Mars4, it only shifted the data into the next memory field when I used
은 3을 기준으로 위로 정렬되지만 실제로 얻지는 않습니다.
이것이 매우 혼란 스럽다면 미안합니다. 필사적으로 생각합니다.
아무 대답도없는 동안 내 대답을 전화로 입력하고 있었습니까 ... 귀하의 것이 다른 답변의 필요성을 없앴습니다. – gnometorule
답변 해 주셔서 감사합니다. 질문 : 0x10010010은 4의 배수가되는 방식은 무엇입니까? – Sobiaholic
0x10010010 = 2^28 + 2^16 + 2^4, 이는 4의 곱셈입니다. 계산이 이해가되지 않으면 16 진수를 다시 읽으십시오. – gnometorule