Data Transfer Instructions 3

less than 1 minute read

4. Type Conversion Instructions

  1. cbw
  2. cwde
  3. cwd
  4. cdq

  5. cbw
    convert byte to word 의 줄임말이다.
    이는 AL 을 sign extension 을 하여 AX 로 만든다. (word 크기 = 2 byte = 16 bit)

  6. cwde
    convert word to double word extended 의 줄임말이다.
    AX 를 sign extension 하여 EAX 로 만든다.

  7. cwd
    convert double word 의 줄임말이다.
    AX에 있는 걸 DX : AX 로 나눈다.

  8. cdq
    convert double word to quad word 의 줄임말이다.
    EAX에 있던 걸 EDX : EAX 로 나눈다.

위 넷은 operand 따위 없고 무조건 A 레지스터만을 바꾼다.
특징은, cwd와 cdq 는 나눗셈 명령인 div 를 염두에 둔 명령어이다.
AX에 있는 값을 나누고 싶다면, cwd 를 한 번 쓰고 나누어야 한다.
반대로 EAX 에 있는 값을 나누고 싶다면 cdq 를 쓰고 나눈다.

movsx, movzx 명령어.
movsx 는 mov 하돼, sign extend 를 하고 옮기라는 뜻이다.

movsx cx, bl

위 명령어는 bl 에 있는 값을 sign extension 한 뒤, cx 에 저장한다.
결과적으론 cbw 와 같은 일을 한다.

movzx 는 sign extension 이 아닌 zero extension 이다.

movzx eax, DATA2

위 명령어는 DATA2 에 있는 값을 zero extension 한 후, eax 에 저장한다.