2017-02-18 10 views
1
.data 
num dd 090F0433H 
.code 
mov ax, @data 
mov ds, ax 
mov ax, word ptr num 
mov bx, word ptr num+2 
mov cl, byte ptr num+1 

= 04 AH, AL 의미 = 33조립 말씀은 ptr에 mov 인 도끼, 단어 PTR의 납입에 대한

이유는 무엇입니까? 누군가 내게 이것을 설명하는 방법을 설명 할 수 있습니까?

+2

초보자 가이드, 튜토리얼 또는 책에 관한 내용은 그 의미를 말해 줬어야합니다. –

답변

4
num dd 090F0433H 

이 메모리에 DWORD 값을 정의합니다. x86은 거의 엔디안을 사용하지 않기 때문에이 dword의 가장 낮은 바이트가 가장 낮은 주소에 저장됩니다. 가장 낮은 주소 인 "num"의 이름을 선택했습니다. 메모리에서

는 :

33h,04h,0Fh,09h 
^ 
| 
\num points here 
mov ax, word ptr num 

당신은 당신이 효과적으로 "NUM"주소 만 가장 낮은 단어 (2 바이트)를 검색하도록 요청이 mov ax, word ptr num을 썼을 때.
AL의 첫 번째 바이트 33h와 AH의 두 번째 바이트 04h가 하나의 레지스터에 결합되어 있습니다 : AX=0433h.

mov bx, word ptr num+2 

이 사람은 비슷하게 작동하지만 대신 오직 최고 단어을 줄 것이다.
당신은 여기 BX=090Fh

mov cl, byte ptr num+1 

를 얻을 수 있습니다 당신은 "NUM"주소 에만 2 바이트를 검색 할 물었다.
CL=04h이 표시됩니다.