'reversing/Assembler'에 해당하는 글 2건

-0-어이구야...내가 이걸 3일동안 열씨미 그렸는데..정말 뻘짓을했다.
해킹, 파괴의 광학을 보면은 1장에 NAND 게이트로 AND, OR, NOT 게이트 만들기 라고 있어서 심심해서 해봣는데....결과는...-0- 역시 사람이 머리가 무식하면 몸이 고생이라는데..-0-ㅋㅋ 대박!! 

먼저 NAND게이트라 하면은
요로코롬 생긴놈으로 
A   B   F
0    0   1
1    0   1
0    1   1
1    1   0

A, B가 모두 1일때만 0인 값을 가지는 놈이다. 
자...-_-이놈을 가지고 AND와 OR, NOT을 그려보시요......-0-;
사실 AND, OR는 그리긴 했는데(그림보면..참..ㅋㅋ NAND를 7개 사용했어;;-0-;;) NOT은 죽어도 모르겠떠라.
결국 네이년에게 물어보니...-0- 뭐이런;; 
처음엔 단순히 출력값으로 조합을 하다보니 NAND게이트만 늘어났다.(9개 까지 늘려봤다;;)
아놔 이렇게 많이 쓰면서 회로를 만들리가 없지..ㅋㅋ

대체왜 하나에서 두개로 나눌수 있는것을 생각을 못한거지..ㅋㅋ
나도 뇌가 많이 굳었나보다..(어른이라는 증거?!ㅋㅋㅋㅋ -0-지랄한다.)

답!



흠..-_-낼은 C로 짜볼까나? 흠
신고

'reversing > Assembler' 카테고리의 다른 글

NAND 게이트로 AND, OR, NOT 게이트 만들기  (4) 2010.05.12
asm 시작하면서..  (0) 2010.05.11

WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글  4개가 달렸습니다.
  1. 감사해요
    새로운거 많이알고 갑니다 ^^
  2. 감사해요
    새로운거 많이알고 갑니다 ^^
  3. 저도 처음 이사실 알았을 때 똑같은 생각을 했지요 ㅎㅎ
    나이가 든건가 ㅎㅎ
secret
-_-근데 왜 내가 어셈블러를 하는거지?ㅋㅋㅋㅋ -0- 
커널 공부할려고 시작했는데 왠지 발을 잘못 담근듯...쿠쿡..ㅋㅋ
시작이라 간단하게 inline 으로 두줄만 넣어봤다.

#include "stdafx.h"

int sum(int a, int b)
{
__asm
{
mov eax, [ebp+8]
add eax, [ebp+12]
}
}

int _tmain(int argc, _TCHAR* argv[])
{
int sumValue;
sumValue = sum(1,2);
printf("%d\n", sumValue);
return 0;
}

__asm 은 어셈블러를 시작하는 예약어.
mov 는 첫번째 인자에 두번째 인자를 넣는다.(포인터 이동이라 하는게 맞나?)
add 는 첫번쨰 인자와 두번쨰 인자를 더한다.
eax는 레지스터(저장공간)
ebp는 함수가 시작되면 esp의 값으로 시작한다. 또한 ebp또한 함수의 시작부분을 가르킨다. 
esp의 경우 스택을 사용하여 계속 바뀌는 값이고, 그에 따른 고정된 값을 위해서 ebp를 사용한단다.
여기서 ebp+8 은 첫번째 인자값인 int a, ebp+12 는 int b가 된다.

결국 ebp+8의 값을 레지스터로 옮겼고 (mov eax, [ebp+8] ) 옮긴 값을 ebp+12의 값과 더한값을 반환하는 간단한 함수.. 근데 리턴이 없어도 알아서 반환하나 보다.(이건 알아보야겠다.)

심심해서 시작해서 죽을일을 벌려놓은 느낌이다..ㅎㅎ 그래도 열씨미 해야지.ㅎ 

신고

'reversing > Assembler' 카테고리의 다른 글

NAND 게이트로 AND, OR, NOT 게이트 만들기  (4) 2010.05.12
asm 시작하면서..  (0) 2010.05.11

WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글이 없습니다.
secret