나는 그것이 말하는를 해결이 https://en.wikibooks.org/wiki/X86_Assembly/X86_Architecture#General-purpose_registers_.2864-bit_naming_conventions.29직접 메모리는 국회에서 해결하고 []
에서 직접 메모리를 읽고 있어요 : 그것은 []의 경우없이 도끼로 복사 것이 무엇
.data
my_var dw 0abcdh ; my_var = 0xabcd
.code
mov ax, [my_var] ; copy my_var content into ax (ax=0xabcd)
궁금, 그 값은 0xabcd가 아닌가?
왜 처음에는 콘텐츠입니까? 0xabcd을 메모리 주소로 사용하고 0xabcd에 저장된 내용을 대신보아야합니까?
'메모리 참조를 사용하지 않으면 기호 my_var의 값, 즉 해당 변수의 주소가 복사됩니다. '- 이것은 어셈블리에서 HLL과 달리 변수가 기본적으로 포인터라는 것을 의미합니까? – Kotaa
또한,'mov bx, [myvar]'는 my_var의 내용을 가져옵니다. 맞습니까? 하지만 그 대답에 반대된다 http://stackoverflow.com/questions/42050480/storing-a-value-in-a-register-and-when-is-it-address-and-when-pure-value/42050785# 42050785 --- ** .... esp의 내용을 eax로 옮기지 않습니다 ** – Kotaa
@Kotaa (정적) 변수는 메모리입니다. 기호는 주소를 나타내므로 변수의 기호는 항상 해당 변수의 주소를 나타냅니다. 프로그램이 시작되기 전에 기호가 해석되면 런타임에 기호의 값을 변경할 수 없습니다. 링크하기 :'esp'는 심볼이 아니라 레지스터입니다. 레지스터에는 값이 포함될 수 있으며 이러한 값은 변경 될 수 있습니다. 설명은 완전히 정확합니다. – fuz