어셈블리 편집하기

이동: 둘러보기, 검색

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 아이디(ID)으로 기록되고, 다른 장점도 있습니다.

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
31번째 줄: 31번째 줄:
 
*작성한 코드를 이해하기가 어려울 뿐만 아니라 수정하기도 어렵기 때문에 유지 보수가 어렵다.
 
*작성한 코드를 이해하기가 어려울 뿐만 아니라 수정하기도 어렵기 때문에 유지 보수가 어렵다.
 
*어셈블리를 이용하여 코딩을 한 결과물은 현존하거나 앞으로 개발될지도 모르는 다른 아키텍쳐의 머신으로 이식할 수 없다.
 
*어셈블리를 이용하여 코딩을 한 결과물은 현존하거나 앞으로 개발될지도 모르는 다른 아키텍쳐의 머신으로 이식할 수 없다.
*어셈블리로 최적화시켜 작성한 코드는 개인이 개발한 타겟이 되는 아키텍쳐와 동일한 아키텍쳐를 가지고, 동일한 설정을 하고, 동일한 환경을 가진 기계에서만 수행될 것이다. 예글 들면, 인텔 계열의 프로세서들(Intel 386, 486, Pentium, PPro, PII, PIII, PIV; Cyrix 5x86, 6x86, M2; AMD K5, K6(K6-2, K6-III), K7(Athlon, Duron 등)만 보더라도 다들 프로세서의 디자인이나 그 외 여러 요소들(상대적 클럭 지연시간, 수행속도, 용량, [[캐시]], [[]](RAM), [[버스 (컴퓨터)|버스]], [[디스크]], [[FPU]]의 존재 여부, MMX, 3DNOW, SIMD 확장 등등 나열하기 힘들다.)의 차이로 인해서 프로세서마다 그 주변 환경에 따라서 완벽하게 다른 최적화 테크닉이 필요하다. 게다가 프로세서의 설계/디자인은 계속적으로 변하고, 바뀌고, 발전하고 있기 때문에 방금 나열한 목록과 최적화시킨 코드가 최신의 코드가 되기를 바라는 것은 안 된다.
+
*어셈블리로 최적화시켜 작성한 코드는 개인이 개발한 타겟이 되는 아키텍쳐와 동일한 아키텍쳐를 가지고, 동일한 설정을 하고, 동일한 환경을 가진 기계에서만 수행될 것이다. 예글 들면, 인텔 계열의 프로세서들(Intel 386, 486, Pentium, PPro, PII, PIII, PIV; Cyrix 5x86, 6x86, M2; AMD K5, K6(K6-2, K6-III), K7(Athlon, Duron 등)만 보더라도 다들 프로세서의 디자인이나 그 외 여러 요소들(상대적 클럭 지연시간, 수행속도, 용량, 캐쉬, 램, 버스, 디스크, FPU의 존재여부, MMX, 3DNOW, SIMD 확장 등등 나열하기 힘들다.)의 차이로 인해서 프로세서마다 그 주변 환경에 따라서 완벽하게 다른 최적화 테크닉이 필요하다. 게다가 프로세서의 설계/디자인은 계속적으로 변하고, 바뀌고, 발전하고 있기 때문에 방금 나열한 목록과 최적화시킨 코드가 최신의 코드가 되기를 바라는 것은 안 된다.
 
*자잘하고 세밀한 부분에 신경을 쓰느라 프로그램 전체의 알고리즘이나 설계에 신경을 쓰지 못할 가능성이 적지 않게 존재한다.
 
*자잘하고 세밀한 부분에 신경을 쓰느라 프로그램 전체의 알고리즘이나 설계에 신경을 쓰지 못할 가능성이 적지 않게 존재한다.
 
*알고리즘 설계를 조금만 바꾸어도 이미 만들어둔 어셈블리 코드의 전체를 다시 만들어야 할 확률이 높아진다.<ref name="특징"></ref>
 
*알고리즘 설계를 조금만 바꾸어도 이미 만들어둔 어셈블리 코드의 전체를 다시 만들어야 할 확률이 높아진다.<ref name="특징"></ref>

위키원에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 사항은 위키원:저작권 문서를 보세요). 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 | 편집 도움말 (새 창에서 열림)