2011-10-17 3 views
2
이것은 사소한 문제처럼 보인다

2 바이트 변수를 잘라 내기,하지만 난 잃었어요. 레지스터 bx 단일 바이트 동안이 예에서는 character 1 바이트

는 2 바이트 변수이다. 나는 분명하기 때문에 크기의 차이 작동하지 않을 것이다, cmp bx, [character]을 할 노력하고있어.

나는 character의 첫 번째 바이트에 bx을 비교하기 위해 노력하고있어. 생각?

답변

4

BX rebister 16 비트 크기이며, 2 개의 8 비트 BL와 BH로부터 구성된다! 8 비트 BL CMP

cmp bl, byte ptr[character] 

또는 8 비트 BH CMP

cmp bh, byte ptr[character + 1] 
+0

감사에 대한

cmp bx, word ptr[character] 

:

16 비트 CMP 위해 당신은 접두사를 사용할 수 있습니다! 나는 첫 번째 바이트 (두 번째되지 않음) 때문에 CMP의 BH, 바이트 PTR [문자 + 0] 일을했다 찾고 있었다. –

+2

접두사가 필요하지 않습니다 (또는 안). 알맞은 어셈블러는 'bl'이 한 바이트와 비교되고 'bx'가 단어와 비교된다는 것을 알 수 있습니다. –

관련 문제