조립에 대한 기본적인 질문이 있습니다.조립 : 왜 우리는 레지스터로 귀찮게합니까?
메모리에서 작업 할 수 있다면 레지스터에서만 산술 연산을 수행해야하는 이유는 무엇입니까?
예를 들어 다음과 같은 이유 (실질적으로) 동일한 값을 응답으로 계산되어야 양 :
니핏 1
.data
var dd 00000400h
.code
Start:
add var,0000000Bh
mov eax,var
;breakpoint: var = 00000B04
End Start
니핏 2
.code
Start:
mov eax,00000400h
add eax,0000000bh
;breakpoint: eax = 0000040B
End Start
대부분의 텍스트와 자습서는 대부분 레지스터에서 산술 연산을 수행합니다. 레지스터로 작업하는 것이 더 빠릅니까?
편집 : 빠른 것이 었습니다.
몇 가지 큰 답이 주어졌습니다. 가장 좋은 대답은 첫 번째 좋은 대답을 기반으로 선정되었습니다.
나는 전문가 (따라서 주석 만) 아니지만, 레지스터는 CPU 내부이기 때문에, 빠른 메모리 작업보다 더있다. 1000x의 작은 여백이 아니라 더 빠른 속도로 빠릅니다. –
일부 (일반적으로 RISC) 아키텍처 *하지 * 현실에서 그들은 상대적으로 거의 사용되지 있기 때문에, 메모리 주소의 내용을 직접 운영 산술 명령이있다. (86 물론, 미친 오래된 86의뿐만 아니라 다른 모든 가능한 이상한 기능으로, 때문에, 그것들을 가지고 있습니다.) – bobince