2010-03-14 5 views
1

x86 GNU 어셈블러에는 메모리 관련 작업에 다른 접미사가 있습니다. 예 : 이제 내 질문은 다음과 메모리에서 접미어가 캐시 작업에 미치는 영향

movb, movs, movw, movl, movq, movt(?) 

입니다

:

는 접미사 프로세서가 메인 메모리에서 데이터를 얻는 방법에 어떤 영향이 있거나 항상 32 비트 하나 이상의 (86됩니다합니까) 청크가 캐시에로드 되었습니까?

메모리 액세스 이외의 효과는 무엇입니까?

답변

2

"접미사"가 아닙니다. 6 가지의 다른 기계 지침을보고 있습니다. 각각은 서로 다른 양의 데이터를 이동합니다. movb은 예를 들어 한 바이트 만 이동합니다.


이제 캐시에 대해 묻습니다. 전체 캐시 라인 만 캐시로 이동되는 경우가 항상 있습니다. 예를 들어, 캐시 크기가 16 바이트 인 경우 16 또는 32 바이트가 주 메모리 (하나 또는 두 개의 캐시 라인)에서 이동됩니다.

그러나 캐시에서 레지스터로 이동하는 것은 명령어에 따라 다릅니다.

3

메모리 액세스 방식에 영향을주지 않습니다. 그 영향을 줄 수있는 유일한 것은 CPU의 데이터 버스의 너비입니다. 영향을받는 것은 데이터 조작의 세분화입니다.

관련 문제