2011-02-09 2 views
3

DOS 환경이나 Windows 환경에서 어셈블리 언어 코드 나 C 코드를 어셈블 링, 링크 및로드하는 경우 어떻게 중요합니까? 동일한 결과가되어서는 안됩니까? 모든 실행이 운영 체제가 아닌 마이크로 프로세서에 의해 수행 된 후에. 나는 MS-DOS 시대의 오래된 책에서 어셈블리 언어를 배우고있다. 그것은 좌절입니까? O/S 독립적 인 어셈블리 언어 및 코드 실행이 아닙니까? 또는 그 문제에 대해 다른 언어로 작성된 코드?운영 체제가 추상화되어 있습니까?

답변

7

은 어셈블리 언어가 아니며 코드 실행은 O/S 독립적입니까? 또는 그 문제에 대해 다른 언어로 작성된 코드?

예 아니오.

예. 기계의 언어는 OS와 관련이 없습니다. 당신이 직접 작성했거나 C 컴파일러가 그것을 작성했다면 중요하지 않습니다.

아니요. 실제로 소프트웨어를 실행하려면 OS를 사용해야합니다. 이 유용한 경우과 같이 유용하게 사용하려면 OS API를 호출해야합니다. 그것은 전적으로 OS 의존적입니다.

+0

@ Sott 그래서 소프트웨어를 실행하는 OS의 정확한 역할은 무엇입니까? 그것을 메모리에 복사하고, 메모리 세그먼트를 할당하고, 첫 번째 명령 주소를 IP에 복사합니까? 그러나이 모든 것을 수행하면서, 소프트웨어가 어셈블리 프로그램이나 C라면 어떻게 될까요? 제가 말하고자하는 것은 운영체제의 경우 실행 파일은 어떤 언어로 작성되었는지, 어떤 컴파일러가 컴파일되었는지에 상관없이 실행 파일입니다. – KawaiKx

+1

@Saurabh : "소프트웨어가 어셈블리 프로그램 또는 C 인 경우 어떻게 중요합니까?" (1) 중요하지 않으며 (2) 귀하의 질문에서 요구하지 않는 것입니다. 귀하의 질문이 정확하지 않으면 ** 업데이트 **하십시오. –

0

예, 운영 체제는 우리 프로그램과 프로세서 사이의 통신을 "표준화"하여 printf()가 Linux와 Windows (및 기타)에서 예상대로 작동 할 수 있도록합니다. 하드웨어 구성.
이론적으로 opcode가 분명하기 때문에 서로 다른 OS를 사용하는 동일한 프로세서에서 동일한 프로그램을 실행할 수 있지만 돈 문제로 인해 발생하지는 않습니다 (언젠가는 리눅스 윈도우의 응용 프로그램을 실행할 수 ..).
실행 가능성은 프로세서에만 달려 있지만 OS에 따라 다릅니다.

관련 문제