워드 (컴퓨팅)

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색
프로세서
4비트 8비트 12비트 16비트 18비트 24비트 31비트 32비트 36비트 48비트 64비트 128비트
응용 프로그램
    16비트       32비트     64비트  
데이터 크기
4비트 8비트   16비트       32비트     64비트 128비트
니블   바이트   옥텟   word   dword   qword

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

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

워드 사례[편집]

인텔 80386[편집]

80386 컴파일러에서 제공되는 17개 데이터형 중에 워드는:[2] page 514

  • 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이다. 따라서 다음과 같은 데이터 형을 갖는다:[1]

  • word : 32비트
  • halfword : 16비트
  • byte : 8비트.

인텔의 CPU와 마이크로소프트 개발도구에서의 WORD 의미[편집]

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

비주얼스튜디오에서 x86 어셈블리 예:

mov ax, WORD PTR [00400010H]

00400010H 번지의 내용을 AX 레지스터로 옮기는 명령어 이며, 이때 옮기는 단위 16비트 이다.

mov eax, DWORD PTR [00400010H]

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

주석[편집]

  1. ARM11 MPCore™ Processor Technical Reference Manual, Revision: r2p0, 2.4 Data Types, 페이지2-5
  2. A K Ray, K M Bhurchandi, “Advanced microprocessors and peripherals”
  3. INTEL 80386 PROGRAMMER'S REFERENCE MANUAL 1986, 2.2 Data Types, Page 24 of 421