Q&A

  • 시언어 코딩된것 파스칼로 바꿔 코딩하고싶은데...
촙오 wrote:

typedef struct

{

WORD B:5;

WORD G:5;

WORD R:5;

WORD N:1;

} RGB16;



시언어에서 이렇게 워드를 비트로 쪼개는거 델파이로 바꿔 코딩하면 어떻게 됩니까?

파스칼 코딩에 익숙하지가 않아서 미치겠어요 ㅠ.ㅠ

2  COMMENTS
  • Profile
    이경문 2001.11.21 22:47
    혹시나 했는데 역시나군요.

    다음과 같은 코드를 역어셈블해 봤습니다.



    {

    RGB16 MyColor;



    MyColor.R = 4;

    mov al, [ebp-0x09]

    and al. 0x83

    or al, 0x10

    mov [ebp-0x09], al

    MyColor.G = 3;

    mov dx, [ebp-0x0a]

    and dx, 0xe0

    or dx, 0x60

    mov [ebp-0x0a], db

    MyColor.B = 2;

    mov cl, [ebp-0x0a]

    and cl, 0xe0

    or cl, 0x02

    mov [ebp-0x0a], cl

    MyColor.N = 1;

    or byte ptr[ebp-0x09]

    }



    한마디로 byte단위가 아닌 bit단위의 struct안의 변수는 완존히 비트단위의 or, and 연산자를 복잡하게 쓰도록 컴파일러에서 제공한다는 것입니다.

  • Profile
    이경문 2001.11.12 08:19
    제가 알고 있기로는 bit단위의 형식이 델파이 파스칼에는 없는 것으로 알고 있습니다.

    혹시 다른 분은 알고 계시나요?



    촙오 wrote:

    > 촙오 wrote:

    > typedef struct

    > {

    > WORD B:5;

    > WORD G:5;

    > WORD R:5;

    > WORD N:1;

    > } RGB16;

    >

    > 시언어에서 이렇게 워드를 비트로 쪼개는거 델파이로 바꿔 코딩하면 어떻게 됩니까?

    > 파스칼 코딩에 익숙하지가 않아서 미치겠어요 ㅠ.ㅠ