2004. 6. 22. 00:24
     

 안녕하십니까 까마굽니다 (__)
 오늘 한번 어셈블러를 끄적거려 볼려고 했었습니다만, 쇼크만 먹었습니다.흠, 전 지금까지 Opcode는 각 명령에 대해서 1:1로 대응되는줄 알고있었기때문에,쉽게 보고 있었는데, 오늘 문서를 보니 같은 mov라도 뒤의 Operand에 따라서 Opcode가 틀리더군요.

 또 뒤에 오는 Operand 타입에 따라서 옵션으로 설정되는 것들이 있고, 으아~~ 어찌나 복잡하던지...하는수 없이, 책을 일단 쬐금 복사한다음 nasm을 이용해서 역어셈해가면서 봤습니다.규칙이 있긴하던데, 머 관건은 머신코드를 작성할때 적절한 Opcode를 선택하기위해서는 Operand의 Type을 알고있어야 한다는 결론에 봉착한것 말고는 별 소득이 없네요.테이블도 몇개를 이용해야 될꺼 같고, 으음 일단 mov 명령을 잘 뜯어본다음 nasm과동일한 output이 나오도록 한번 해봐야 겠습니다.

 그러려고하니 문제가, scanner를 만들어야 하겠는데 머 만드는거야 별 문제가 없지만 중요한건 scanner의 output을 parser가 가지고가서 문법 체크를 하고, 다시 이걸넘겨받아서 머신코드를 만드는 놈이 output을 만들어 내야 하는데, scanner의 output을 어떤식으로 할지가 문제군요.머 일단 Token단위로 자른다 치면, scanner의 output으로는 Token별 String도 있어야 할터인데 어떤식으로 할지 걱정이군요.걍 Queue에 넣어버릴까나, 쩝쩝... 암생각하지말고 String의 크기만큼 동적할당해서걍 스트링 복사한다음 Queue에 넣는 무식한 방법도 생각하고 있습니다.

 오홀홀홀.. 혹시 머 좋은 생각 있으신분 계신가요??있으시면 답글좀...
 그럼 좋은하루 되세요 (__)


Android App

Posted by 호기심 많은 kkamagui(까마귀, 한승훈)

댓글을 달아 주세요