반응형

ㅋ... 혼자 자취하기 시작할 때부터 벼르고 벼르던게...

'미니컴포넌트' 였는데 ~~~ 드디어~~!! 드디어~~!! 하나 장만했습니다~ ^0^

JVC UX-G46 바로 요놈입니다~ ^_^

(지식쇼핑 보러가기...)

테잎 / CD (MP3-CD 가능) 는 물론 USB 까지 지원을 하며...

출력도 160W 로~~ 빵빵합니다.

가격대비~ 성능이 꽤~ 괜찮은 녀석이라고나 할까요~


ㅋ.. 제가 워낙에 노래듣는 것을 좋아해서~~

어떨때는 달랑 노래 들으려고 컴퓨터를 켜는 경우도 있곤 했는데..

요녀석때문에~~ 그런 일은 좀 줄어들 것도 같네요~ㅋ

아.. CD 몇개 샘플로 돌려봤는데~~ ㅋ 좋군요 *^^*


보너스로~~ ㅋ 실물사진(?)...

UX-G46 #1


UX-G46 #2

반응형
AND

반응형

요즘...  회사 프로젝트때문에 윈도우즈 실행 파일(PE 파일)을 조작하는 일이 많습니다.

얼마 전, PE 헤더부분을 엉뚱하게 수정한 바람에... 에러메시지가 떴는데~

그때 캡쳐한 화면입니다.


=0=;; 뭐가 이상한지 발견하셨나요..?;;

참고로 이건 조작도 뭣도 아닙니다...;;;

윈도우 자체에서 저렇게 뿌려주길래~ 살포시 캡쳐해놨다는...
.
.

뭐... 책도 그렇고, 인터넷 사이트도 그렇듯이...

컴퓨터 프로그램도 마찬가지로 실수로 오타 몇 개 정도는 충분히 있을 수 있는거겠죠~ ^^



반응형
AND

반응형

C/C++ 로 개발을 하다보면 '인라인 어셈블리' 를 사용하게 되는 경우도 있습니다.

SEH 를 '인라인 어셈블리' 로 구현하면 보통은~ SEH 를 등록하는 코드가 아래의 예제코드처럼 됩니다.

int main()
{
    ...
    __asm {
        push    _SEH_Handler
        PUSH    DWORD PTR FS:[0]
        MOV     DWORD PTR FS:[0], ESP    // C4733
    }
    ...
}


이렇게 코드를 작성하고 컴파일을 해보면...

VC++ 7.1 에서는 "MOV DWORD PTR FS:[0], ESP" 코드에서 'C4733' 경고가 발생합니다;;;
( 테스트를 해보지는 못했지만 6.0 에서는 왠지 그냥 넘어갈 것 같고.. 7.0, 8.0 등에서는 7.1 처럼 경고가 발생할 듯한;;; )

"인라인 asm 이 'FS:[0]'에 할당되었습니다. 처리기가 안전한 처리기로 등록되지 않았습니다" 요런 메시지와 함께~;;;

그냥 간단하게 생각하면 'FS:[0]' 에 값을 임의로 넣으려고 해서 경고가 발생했다~~ 라고나 할까요..;
( 참고 페이지 : http://msdn.microsoft.com/ko-kr/library/ha52ak6a(VS.80).aspx )

=0=;; 동작하는데는 별다른 이상이 없는듯 하지만 경고 메시지가 뜨는게~~ 은근히 거슬립니다~

그래서~~ 어셈코드를 아래와 같이 살짝 변경해봤더니 :) 경고가 사라지더군요~~ㅋ

int main()
{
    ...
    __asm {
        push    _SEH_Handler
        XOR     EAX, EAX
        PUSH    DWORD PTR FS:[EAX]
        MOV     DWORD PTR FS:[EAX], ESP
    }
    ...
}

컴파일러는 소스코드를 파싱하면서 오류를 찾을테고~

그러면 'FS:[0]' 요렇게만 사용하지 않으면 될 것 같아서...

"XOR EAX, EAX" 로 EAX 를 0 으로 만든 다음~~ 'FS:[0]' 대신 'FS:[EAX]' 로 ~~ 샤샤샥~!! :)


실제 코드가 실행될 때는... "MOV DWORD PTR FS:[0]" 이나...

"XOR EAX, EAX" -> "MOV DWORD PTR FS:[EAX]" 이나 동작은 동일하거든요..
( 한 스텝에 할 수 있는 걸 두 스텝으로 나눠서 한다는 차이는 있겠지만요... )

공개된 소스들을 뒤져봤더니 SEH 를 '인라인 어셈블리'로 구현할 때...

이 방법으로 경고를 피한 경우도 많이 있더군요~~ㅋ

=0= 잠수해제 신호탄으로 간단한 팁하나 올려봤습니다~~ :)ㅋ

반응형
AND