게시판에 답변이 전혀 안 올라오도록 질문하는 방법
1. 숙제인 티를 팍팍낸다.
2. 빨리, 오늘까지 같은 시간을 재촉하는 멘트를 날린다.
3. 노력하지 않는 티를 팍팍낸다.
4. 게시판 용도를 무시한다. (자유게시판, 자료실 기타 등등, 물음 게시판이 아닌곳에 질문을 한다.)
5. 처음 부터 끝까지 완변한 소스를 요구한다.
6. 엉청나게 긴 소스를 올리면서 틀린부분을 확인해 주라고 한다.





+ 게시판을 보면 꼭 이런사람 있다.

제대로된 질문을 했는데도, kldp.org 에 올라온 how-to 문서중 질문하는 사람어치고 하는 문서가 어치고 저치고 하면서 질문하는 자를 욕하는 사람.. (난 이런 사람이 더 싫다.)


내 실패 1호이다. 디지털 스톱워치를 만들려고 했다. 마이크로프로세스 숙제 였다. 이걸 완성시키지 못했다. TTL 칩을 이용해서, 스위치를 눌려 작동하고 FND에 그 시간이 보여지는 방식이다. 저 사진에는 TTL, FND 같은 것은 뽑아 버렸다. 그게 좀 비싸서, 다른데 활용하려고..



정말 고생해서 만들었는데, 완성을 못 시켰다. 그래서, 너무너무 화가 나서 저걸 한 번 바닥에 집어 던졌다.



저, 뒤어는 엄청난 선으로 봅잡하다.





저 선도 많이 뽑힌 상태이다. 저걸 하려고 얼마나 고생을 했던지, 거의 납에 중독될 정도 였다.



그 때의 추억이 아련히 떠오른다.



어떤 사람들은 저렇게 큰게 스톱워치나고 반문할 지도 모른다. TTL 이라는 칩이 좀 크다. 그래서, 스톱워치를 만들면 저렇게 커진다. 그래서, CMOS로 하나의 칩에 카운트기능이 달린 소자를 이용하던지, 아니면, ARM process 를 이용해, 임베디드 프로그래밍 하는게 더 작고, 돈이 적게 들 것 같다.



그러나, 저게 디지털회로에 대한 기초 지식을 얻기에 좋다. 저걸 만들면서 많은 디지털 회로에 대한 지식을 얻었다. 난, 그 때 까지 회로에 대해서는 완전 무식이었다. 저 것후, 그나마 디지털 회로에 대한 지식을 쌓을 수 있었다. 그러나. 아날로그는 회로, 이론 모두 꽝이다.



나는 저거 실패했다. 그럴 만한 이유가 있었다. 우선, 너무 준비가 부족했다. 진짜 맨땅에 헤딩을 했다. 어느 정도 알아보고 했어야 했다. 저, 설계부터가 잘못되었다. 더 적은 칩을 이용해서 만들 수 있었는데, 내가 너무 지식이 없었다. 책을 잘 읽어 보고 했어야 했다.



그리고, 쉽게 만들지 않았다. 쉽게 만들 수 있었다. 저 것은 어떻게 든 2개의 누르는 버튼으로 만들려고 했다. 3개의 스위치를 이용해 만들면 더 쉬었다. 그러나, 난 그전의 스톱워치의 원리와 다르다고 거부했다. 너무 모르면, 용감하다고 할까. 결국, 너무 어려워서 고생을 심하게 했다. 배우는 사람으로써 자세가 아니었다. 배우는 사람은 쉽게 할 수 있으면, 쉽게 하는게 좋은 것 같다. 저걸 완성하는데 더 의미가 크니까..

얼마전에 지식in 에서 올라 올 글 중에 C언어를 mip 전용 어셈코드로 변환할 수 있는지 물어보는 글이 있었다. 그게 가능한지는 모르겠지만, C 언어를 어셈코드로 변환하는 것은 gcc 나 visual c 로 충분히 가능하다. 우선 gcc 에서는 컴파일 옵션 -S (대문자) 하나 붙여준면 된다.

ctest.c 라는 파일이 있을 때,

gcc -S ctest.c 라고 하면 확장자 s 라는 파일을 만들어 주면서 어셈블리어로 변환해 준다. 이 것은 내가 Dev-Cpp 안에 있던 컴파일로 실험해 본 결과 이다. 리눅스에서도 충분히 가능하리가 본다. visual c 에서는

visaul C 에서도 이럴 것을 할 수 있다. Visaul C 를 기본으로 깔았다면 C:Program FilesMicrosoft Visual StudioVC98Bin 로 설치될 것이다. ( 나는 Visual C++ 6.0을 쓰고 있습니다. 다음 버전에서도 가능하리라고 봅니다..)

그 폴더안에 cl 이라는 파일이 있다. 이게 gcc 와 하는 일이 유사하다.
컴파일 할 때 "C:Program FilesMicrosoft Visual StudioVC98BinCL.EXE
" /FA test.c 이런 식으로 해주면 확장자 asm 파일을 보여준다. 물론 debug 할 때 어셈블리어를 볼 수 있는 방법으로도 가능하다. (아직 큰 차이는 모르겠다. 내가 설명한 방식이 릴리스 모드의 어셈코드인지는 확신이 가지 않는다...)