2014-07-20 5 views
-1

assmbly 명령 우리 :왜 어셈블리 명령이 잘못 되었습니까?

movb의 $의를 0xFF (%의 BL)

내 질문 :

어셈블리 명령이 잘못이 대답은 %의 BL 주소 레지스터가 될 수 없다고 말했다. 나는이 대답을 이해할 수 없다. 저를 도와주세요., 주소가 는 32 비트 레지스터에서 32 비트 모드 어셈블리를 찾을 수있다이 있기 때문에

답변

3

(이 & 어셈블리 언어 AT, 32 비트 컴퓨터입니다). 구조체 ()은 주소 (또는 표현식)를 주소로 사용하며 %bl은 8 비트 레지스터이므로 명령에 일관성이 없습니다. 나는 그것이 심지어 인코딩 될 수 있다고 생각하지 않는다.

+0

또한 모든 32 비트 레지스터를 주소 지정에 사용할 수있는 것은 아니라고 덧붙였습니다. – SomeWittyUsername

+0

그래, 고마워 당신의 대답은,이 질문을 이해했습니다. 감사합니다. – LittleDriver

+0

@icepack 단락을 추가해도 괜찮지 만 32 비트 레지스터는 32 비트 레지스터와 혼동 될 수 있다고 생각하고 있습니다. 주소 지정에 사용됩니까? –

1

x86 CPU의 경우 모든 8 비트 레지스터와 16 비트 레지스터 ax, cx 및 dx는 대괄호 [] 안에 주소 레지스터로 사용할 수 없지만 bx, si, di (기본 세그먼트 DS를 사용) 및 bp sp (기본 세그먼트 SS) 및 80386+ 모든 32 비트 레지스터

관련 문제