어셈블리언어는 CPU에 따라 아주 상이합니다.
이를 테면, x86의 경우에도, 8086, 80286,...,80586등까지 유사하지만 상이한 명령어집합을 가지고 있습니다. 그래서, 하나의 어셈블리언어를 배우는 것은 큰의미가 없는 일이되곤 합니다. 즉, 특정 CPU용 어셈블리언어를 배우고 나도 해당 CPU를 사용하는 업종이 아니면, 사용할 기회가 없다고 보는것이 맞습니다.
그래서, 어셈블리언어를 익힐때는 언어 자체를 익히는 목적보다는 CPU의 동작원리를 익히는 것을 목표로 삼는것이 바람직합니다. 특히, 내부연산처리부분도 문제의 쟁점이 되기도 하지만, 주로 어셈블리를 사용할정도의 시스템에서는 내부연산보다는 IO가 주 관심사가 되는 경우가 많습니다. IO 및 콘트롤 프로그램을 작성하는 것이 다반사라고 여겨집니다. 이를테면, 디바이스드라이버, 외부제어장치 콘트롤러등이겠지요. 스케쥴이라던지 모니터링등의 주요로직은 구지 어셈블리언어로 익히는 것보다는 C/C++등의 언어로 익히는 것이 바람직하다고 여겨집니다. 어셈블리언어는 IO관련 부분을 중점적으로 익히는 것이 바랍직 하다고 여겨집니다.
또한, 마이크로프로세서(CPU)가 고수준(16비트, 32비트,64비트등)이면, 보통 시스템개발을 수행할때도 어셈블리수준에서 하는 경우보다는 크로스컴파일러(C/C++크로스컴파일러)를 이용하여, 해당 시스템의 기계어 코드를 생성하는 경우가 많습니다. 최근의 개발사례로 볼때, 어셈블리언어는 특정장치의 디바이스드라이버등의 저수준개발을, 그 상위의 OS비스무리한것은 C/C++등을 이용하는 것이 많이 있다고 생각합니다.
정리하자면,
1) 어셈블리언어는 언어를 배우는 목적이 아니라 기계를 이해하는 목적으로 하는것이 옳다.(타 어셈블리언어로의 이동이 자유로와야 한다.)
2) 특히, IO관련을 익히자.
3) 고수준 로직은 C/C++같은 고수준언어로 익히고, 필요시 이를 어셈블리로 포팅하자.
이렇게 생각합니다.
그래서, 어셈블리언어를 익힐때는 언어 자체를 익히는 목적보다는 CPU의 동작원리를 익히는 것을 목표로 삼는것이 바람직합니다. 특히, 내부연산처리부분도 문제의 쟁점이 되기도 하지만, 주로 어셈블리를 사용할정도의 시스템에서는 내부연산보다는 IO가 주 관심사가 되는 경우가 많습니다. IO 및 콘트롤 프로그램을 작성하는 것이 다반사라고 여겨집니다. 이를테면, 디바이스드라이버, 외부제어장치 콘트롤러등이겠지요. 스케쥴이라던지 모니터링등의 주요로직은 구지 어셈블리언어로 익히는 것보다는 C/C++등의 언어로 익히는 것이 바람직하다고 여겨집니다. 어셈블리언어는 IO관련 부분을 중점적으로 익히는 것이 바랍직 하다고 여겨집니다.
CPU는 x86로 배우면 될겁니다.http://www.asmlov
CPU는 x86로 배우면 될겁니다.
http://www.asmlove.co.kr/
Art Of Assembly
문근영 너무 귀여워~~
다양한 기종에 대한 대처를
어셈블리언어는 CPU에 따라 아주 상이합니다.
이를 테면, x86의 경우에도, 8086, 80286,...,80586등까지 유사하지만 상이한 명령어집합을 가지고 있습니다. 그래서, 하나의 어셈블리언어를 배우는 것은 큰의미가 없는 일이되곤 합니다. 즉, 특정 CPU용 어셈블리언어를 배우고 나도 해당 CPU를 사용하는 업종이 아니면, 사용할 기회가 없다고 보는것이 맞습니다.
그래서, 어셈블리언어를 익힐때는 언어 자체를 익히는 목적보다는 CPU의 동작원리를 익히는 것을 목표로 삼는것이 바람직합니다. 특히, 내부연산처리부분도 문제의 쟁점이 되기도 하지만, 주로 어셈블리를 사용할정도의 시스템에서는 내부연산보다는 IO가 주 관심사가 되는 경우가 많습니다. IO 및 콘트롤 프로그램을 작성하는 것이 다반사라고 여겨집니다. 이를테면, 디바이스드라이버, 외부제어장치 콘트롤러등이겠지요. 스케쥴이라던지 모니터링등의 주요로직은 구지 어셈블리언어로 익히는 것보다는 C/C++등의 언어로 익히는 것이 바람직하다고 여겨집니다. 어셈블리언어는 IO관련 부분을 중점적으로 익히는 것이 바랍직 하다고 여겨집니다.
또한, 마이크로프로세서(CPU)가 고수준(16비트, 32비트,64비트등)이면, 보통 시스템개발을 수행할때도 어셈블리수준에서 하는 경우보다는 크로스컴파일러(C/C++크로스컴파일러)를 이용하여, 해당 시스템의 기계어 코드를 생성하는 경우가 많습니다. 최근의 개발사례로 볼때, 어셈블리언어는 특정장치의 디바이스드라이버등의 저수준개발을, 그 상위의 OS비스무리한것은 C/C++등을 이용하는 것이 많이 있다고 생각합니다.
정리하자면,
1) 어셈블리언어는 언어를 배우는 목적이 아니라 기계를 이해하는 목적으로 하는것이 옳다.(타 어셈블리언어로의 이동이 자유로와야 한다.)
2) 특히, IO관련을 익히자.
3) 고수준 로직은 C/C++같은 고수준언어로 익히고, 필요시 이를 어셈블리로 포팅하자.
이렇게 생각합니다.
------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.
[quote]그래서, 어셈블리언어를 익힐때는 언어 자체를 익히는 목적보다
그러면 각 CPU 홈페이지 가서 매뉴얼을 찬찬히 읽어봐야 되는군요.
그렇구나....
문근영 너무 귀여워~~
댓글 달기