질문입니다. 기계어로 직접 프로그램 작성

익명 사용자의 이미지

안녕하세요

질문이 있어서 여쭤봅니다 ^^

기계어로 프로그램을 작성해보려 하는데요 , 어떤 방법이 있는지 모르겠습니다.

hexedit 류의 프로그램을 이용한다던가 , 고수준 언어를 사용하여 binary 모드로 file 출력을 통해 한다던가 하는 방법은 생각해봤습니다.

그러나 이러한 방법말고 독자적으로 할수있는 그러한 방법은 없을까요?

답변 부탁드립니다.

jwstyle의 이미지

어샘 심볼에 대응되는 기계 인스트럭션 number를 그냥 쓰시게요?

----------------------------
Let's Do It

정상인의 이미지

핵스에디트가 독자적으로 하는 그런 방법이죠..
그런데 어셈블리로 짜는 편이 나을 듯 합니다. 어짜피 기계어를 영어로 적은 것 뿐이니까요.

익명 사용자의 이미지

예를들어 "hexedit 프로그램을 기계어를 사용해서 만들려면 어떤 프로그램을 이용해야 하나요? 따위의 질문에 대해서 답이될만한 그런 방법이요"

정상인의 이미지

천공테이프 뚫으시면 되겠네요.
hexedit을 짜기 위해 필요한 프로그램도 짜기 위해선 다른 프로그램이 필요하니까요.
그런 식으로 계속 근본까지 다가가면 컴퓨터에 아무런 프로그램도 없이 컴퓨터용 프로그램을 개발해야 하는 상황이 오는데, 그러면 매체에 직접 접근해 기록하거나 하는 수 밖에 없습니다. 아니면 직접 롬을 만들거나..

익명 사용자의 이미지

ms-dos 시절 이나 linux 에서는 어떻게하나요?? 정말 궁금해서 여쭤봅니다ㅠ 답변 감사드립니다.

정상인의 이미지

핵스 에디터쯤은 다 있습니다. 이름이 다른 여러 프로그램이 있을 뿐입니다.

태훈의 이미지

자주 쓰는 instruction만 익히면 되니까 그닥 어렵진 않습니다. 간단한 프로그램을 기계어로 만들어 보세요.

해보시면 '이래서 프로그래밍 언어를 쓰는구나.'라고 깨닫게 됩니다.

Just do it!

익명 사용자의 이미지

그래서 해볼려고하는데, 하는 방법을 모르겠어서 여쭤봅니다ㅠ

어떤 방법들이 있을까요? 실제로 그것을 해보기위해서요?

예를들면 hexedit 을 쓴다던가 c 언어 따위로 파일에 2진출력을 한다던가? 하는 그런 방법이요

나빌레라의 이미지

네 그렇게 하시면 됩니다.

정말 근성과 실력이 좋으시다면,

C언어 같은것으로 파일에 이진 출력을 해서 실제 동작하는 실행파일을 만드실 수도 있을 겁니다.

----------------------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라

snowall의 이미지

어느정도를 독자적으로 한다고 봐야 하는지 모르겠지만, 하드디스크에 011011010101010같은 코드를 직접 기록하는 방법이 있을 수 있겟죠. 이정도 수준이면 독자적인가요?

그런데 그런거 하려면 하드디스크에 흘려주는 신호를 직접(대략 초당 수백만번에서 수십억번) 바꿔줘야 하는데, 그걸 해주는게 하드디스크 컨트롤러예요. 하드디스크 컨트롤러에 어떤 내용을 기록하라고 지시하는게 운영체제 커널이고, 그 커널에 어떤 내용을 기록해야 하는지 전달해 주는게 hexedit같은 프로그램이죠.

어디까지 직접 구현하시게요?

피할 수 있을때 즐겨라! http://melotopia.net/b

익명 사용자의 이미지

매트릭스가 될거같은 예감이.. ㄷㄷㄷ

swirlpotato의 이미지

프로세서 아키텍쳐 관련 문서를 보면 instruction의 구성에 대해 나와 있습니다.
그 것을 보면서 원하는 명령어를 하나하나 채워 가시면 되는데 완전 노가다죠.
그리고 실행파일이 되려면 헤더관련 하여 문제도 있고요.

간단한 툴을 만드셔야 편할 것 같은데요.
실행 가능 권한을 가지는 메모리를 할당 받아서 기계어로 작성 된 파일을 로드하여 그 곳으로 점프 하는 방법을 쓰시면 될 것 같습니다. 레지스터와 스택이 깨지지 않게 해주셔야하고요.

익명 사용자의 이미지

프로그래밍할 때 딱 두가지 키만 사용하게 되려나요...?

--
서명의 샘플

snowall의 이미지

"Air cooling coding keyboard for professional use"

"전문가를 위한 공냉식 코딩 키보드"

전문가용이잖아요. ㅡㅡ;

피할 수 있을때 즐겨라! http://melotopia.net/b

neocoin의 이미지

앗차... 그렇군요.

익명 사용자의 이미지

텀 프로젝트 중에 위와 비슷한 것을 만들었습니다.
8051 / LCD / 01 키보드.
그때 C 언어가 정말 편하다고 느꼈습니다.

익명 사용자의 이미지

무엇을 원하는지는 잘 모르겠지만, MS-DOS에서는 debug였었나? 기계어 사용할 수 있게 해주는 프로그램이 있었는데 가물가물하네요..
컴퓨터의 저급수준를 익히고 싶다면, BIOS나 부트로더를 분석해보세요.

지리즈의 이미지

cat 으로 해결했다고....

There is no spoon. Neo from the Matrix 1999.

익명 사용자의 이미지

음.. 키보드로 넣을 수 있는 값중에 mov에 해당하는 hex값이 있었던가요..? 키보드 드라이버 부터 짜야겠네요... 과연 신..

상상해보니.. 그러고 있으면 정말 엽기겠네요.. -_-;;

지리즈의 이미지

이름 그대로...

There is no spoon. Neo from the Matrix 1999.