워드 (컴퓨팅)

워드(word)는 하나의 기계어 명령어나 연산을 통해 저장된 장치로부터 레지스터에 옮겨 놓을 수 있는 데이터 단위이다. 메모리에서 레지스터로 데이터를 옮기거나 ALU을 통해 데이터를 조작하거나 할 때, 하나의 명령어로 실행될 수 있는 데이터 처리 단위이다. 흔히 사용하는 32비트 CPU(ARM 등)라면 워드는 32비트가 된다.

CPU을 개발할 때는 우선 처리단위부터 결정해야 레지스터, ALU 등의 하드웨어 설계가 가능하므로 중요한 요소이다.

워드 사례

인텔 80386 
인텔 80386 컴파일러에서 제공되는 17개 데이터형 중에 워드는 다음과 같다.
 Integer word - signed 16비트 데이터. -32,768 ~ 32,767.
 Unsigned Integer Word - unsigned 16비트 데이터. 0 ~ 65,535.
 Signed quad word - signed 64비트 또는 4워드 데이터.
 Unsigned Quad Word - unsigned 64비트 데이터.

ARM 
ARM(ARM7, ARM9, ARM11)은 32비트 RISC CPU이다. 따라서 다음과 같은 데이터 형을 갖는다:
 word : 32비트
 halfword : 16비트
 byte : 8비트.

인텔의 CPU와 마이크로소프트 개발도구에서의 WORD 의미 
인텔의 8085 8비트 마이크로프로세서에서 기본 처리 단위가 한 바이트이지만, 8086은 16비트 프로세서이므로 '워드'는 16비트가 된다. 이때 'word'가 사용되었다. 이 16비트는 마이크로소프트 사에서 소프트웨어 개발도구(비주얼스튜디오)와 결합하면서 WORD(소프트웨어에서는 주로 대문자로 표시)는 16비트를 의미한다. i386에서 데이터형은 byte, word, doubleword로 구분하였다. i386의 32비트 CPU는 한 워드가 32비트 이어야 함에도 소프트웨어(어셈블리 표현, MFC 등의 정의 비트수) 상에서 WORD는 여전히 16비트를 의미한다. 소프트웨어 상에서 32비트는 DWORD로 표현한다. 따라서 소프트웨어를 작성할 때와 CPU의 워드 처리단위는 혼돈의 소지가 있다.

비주얼스튜디오에서 x86 어셈블리 예:
mov  ax, WORD PTR [00400010H]
00400010H 번지의 내용을 AX 레지스터로 옮기는 명령어이며, 이때 옮기는 단위 16비트이다.

mov  eax, DWORD PTR [00400010H]
00400010H 번지의 내용을 EAX 레지스터로 옮기는 명령어이며, 이때 옮기는 단위 32비트이다.

각주 

자료형
 
정보의 단위
원시 자료형