산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 산업기술

마이크로프로세서 프로그래밍

특정 마이크로프로세서 칩이 가지고 있는 명령어의 "어휘"는 해당 칩 모델에 따라 다릅니다. 예를 들어 Intel 80386은 동등한 기능을 지정하기 위해 Motorola 68020과 완전히 다른 바이너리 코드 세트를 사용합니다.

불행히도 마이크로프로세서 명령어에 대한 표준은 없습니다. 이것은 가장 낮은 수준의 프로그래밍을 매우 혼란스럽고 전문적으로 만듭니다.

인간 프로그래머가 어떤 일을 수행하는 방법(예:엔진에 대한 연료 분사율을 자동으로 제어하는 ​​것)을 마이크로프로세서에 직접 지시하는 일련의 명령을 개발할 때, 그들은 CPU 고유의 "언어"로 프로그래밍하고 있습니다. CPU 칩 내부의 제어 장치가 작업을 수행하기 위해 디코딩하는 것과 동일한 바이너리 코드로 구성된 이 언어를 종종 기계어라고 합니다. .

기계어 소프트웨어는 이진 표기법으로 "단어가 지정"될 수 있지만 인간이 작업하기 더 쉽기 때문에 종종 16진법 형식으로 작성됩니다. 예를 들어, Intel 8080 마이크로 프로세서 칩에 대한 몇 가지 일반적인 명령 코드만 제시하겠습니다.

16진법 바이너리 명령어 설명 ----------- -------- ------------------------------ ---------- | 7B 01111011 레지스터 A의 내용을 레지스터 E로 이동 | | 87 10000111 레지스터 D에 레지스터 A의 내용 추가 | | 1C 00011100 레지스터 E의 내용을 1씩 증가 | | D3 11010011 데이터 버스에 데이터의 출력 바이트 

16진수 표기법을 사용하더라도 이러한 지침은 쉽게 혼동되고 잊어버릴 수 있습니다. 이를 위해 어셈블리 언어라는 프로그래머를 위한 또 다른 지원이 있습니다. .

어셈블리 언어를 사용하면 프로그램 단계를 설명하기 위해 실제 16진수 또는 2진수 코드 대신 2~4자의 니모닉 단어가 사용됩니다. 예를 들어, 명령어 7B Intel 8080의 경우 "MOV A,E " 어셈블리 언어로.

니모닉은 물론 이진 코드만 이해할 수 있는 마이크로프로세서에는 쓸모가 없지만 프로그래머가 종이나 텍스트 편집기(워드 프로세서)에 프로그램 작성을 관리하는 편리한 방법입니다. 어셈블러라는 컴퓨터용으로 작성된 프로그램도 있습니다. 이러한 니모닉을 이해하고 지정된 대상 마이크로프로세서에 적절한 이진 코드로 변환하여 프로그래머가 이상한 16진수나 지루한 이진 코드 표기법을 처리할 필요 없이 컴퓨터의 모국어로 프로그램을 작성할 수 있도록 합니다.

프로그램이 사람에 의해 개발되면 마이크로프로세서가 실행하기 전에 메모리에 기록되어야 합니다. 프로그램을 ROM(일부는 있음)에 저장해야 하는 경우 ROM 프로그래머라는 특수 기계를 사용하여 수행할 수 있습니다. 또는 (당신이 마조히스트라면) ROM 칩을 브레드보드에 연결하고 적절한 전압으로 전원을 켠 다음 주소와 데이터 라인에 한 번에 하나씩 올바른 와이어 연결을 만들어 데이터를 씁니다. 지시.

프로그램이 운영 컴퓨터의 RAM 메모리와 같은 휘발성 메모리에 저장되어야 하는 경우 해당 컴퓨터의 키보드를 통해 직접 입력하는 방법이 있을 수 있습니다(일부 컴퓨터에는 ROM에 저장된 미니 프로그램이 있어 마이크로프로세서에 다른 작업을 수행하기에는 너무 멍청하더라도 키보드에서 키 입력을 수락하고 RAM에 명령으로 저장합니다.

많은 "취미" 컴퓨터 키트가 이와 같이 작동합니다. 프로그래밍할 컴퓨터가 운영 체제, 디스크 드라이브 및 전체 작동을 갖춘 완전한 기능의 개인용 컴퓨터인 경우 나중에 검색할 수 있도록 완성된 프로그램을 디스크에 저장하도록 어셈블러에 명령하면 됩니다.

프로그램을 "실행"하려면 프롬프트에 프로그램 파일 이름을 입력하고 Enter 키를 누르면 마이크로프로세서의 프로그램 카운터 레지스터가 디스크의 첫 번째 명령이 있는 위치("주소")를 가리키도록 설정됩니다. 저장되고 거기에서 프로그램이 실행됩니다.

기계어 또는 어셈블리 언어로 프로그래밍하면 빠르고 효율적인 프로그램이 만들어지지만 각 기계어 명령이 너무 조잡하기 때문에 가장 간단한 작업을 제외한 모든 작업을 수행하려면 많은 시간과 기술이 필요합니다. 이에 대한 대답은 프로그래머가 인간의 생각을 보다 효율적으로 표현할 수 있는 "고수준" 언어로 작성하는 방법을 개발하는 것입니다. 수십 개의 복잡한 어셈블리 언어 코드를 입력하는 대신 고급 언어로 작성하는 프로그래머는 이와 같은 것을 작성할 수 있습니다. . .

"Hello, world!"를 출력하세요. 

. . . 컴퓨터가 "Hello, world!"를 인쇄할 것으로 예상합니다. 그렇게 하는 방법에 대한 추가 지시 없이. 이것은 좋은 생각이지만 마이크로프로세서의 어휘가 매우 제한적일 때 그러한 "인간" 사고를 어떻게 이해합니까?

답변은 해석의 두 가지 형식으로 제공됩니다. , 또는 편집 . 두 사람이 다른 언어를 사용하는 것처럼 언어 장벽을 뛰어넘을 수 있는 방법이 있어야 대화가 가능합니다.

한 사람 한 사람의 말을 다른 사람의 언어로 한 번에 한 사람씩 번역하려면 번역가가 필요합니다. 마이크로프로세서의 경우 이것은 다른 프로그래머가 기계어로 작성한 또 다른 프로그램을 의미하며, 인쇄(인쇄)와 같은 고급 명령의 ASCII 문자 패턴을 인식하고 이를 마이크로프로세서가 직접 수행할 수 있는 필요한 바이트 크기 단계로 변환할 수 있습니다. 이해합니다.

이 번역이 프로그램 실행 중에 이루어지면 마치 라이브 대화에서 번역가가 두 사람 사이에 끼어들듯이 이를 '통역'이라고 합니다. 반면에 번역가가 종이에 독백을 녹음한 다음 모든 단어를 한 자리에 앉아 다른 언어로 작성된 문서로 번역하는 것처럼 전체 프로그램이 순식간에 기계어로 번역되면 프로세스를 " 편집.”

해석은 간단하지만 마이크로프로세서가 단계 간에 프로그램을 지속적으로 번역해야 하고 시간이 걸리기 때문에 프로그램이 느리게 실행됩니다. 컴파일은 처음에 전체 프로그램을 기계어로 번역하는 데 시간이 걸리지만 결과 기계어 코드는 그 이후에 번역이 필요하지 않으며 결과적으로 더 빠르게 실행됩니다.

BASIC 및 FORTH와 같은 프로그래밍 언어가 해석됩니다. C, C++, FORTRAN 및 PASCAL과 같은 언어가 컴파일됩니다. 컴파일된 언어는 일반적으로 최종 제품의 효율성 때문에 전문 프로그래머가 선택하는 언어로 간주됩니다.

당연히 기계어 어휘는 마이크로프로세서마다 매우 다양하고 고급 언어는 최대한 보편적으로 설계되기 때문에 언어 번역에 필요한 해석 및 컴파일 프로그램은 마이크로프로세서에 따라 달라야 합니다.

이러한 인터프리터와 컴파일러의 개발은 가장 인상적인 위업입니다. 이러한 프로그램을 만드는 사람들은 특히 시장에 등장하는 급변하는 마이크로프로세서 모델과 함께 소프트웨어 제품을 최신 상태로 유지하기 위해 수행해야 하는 작업을 고려할 때 이러한 프로그램을 가장 확실히 만드는 사람들을 유지합니다. !

이러한 어려움을 완화하기 위해 트렌드를 선도하는 마이크로프로세서 칩 제조업체(특히 Intel 및 Motorola)는 신제품을 이전 버전과 호환하도록 설계하려고 합니다. 그들의 오래된 제품과 함께. 예를 들어, Intel 80386 칩에 대한 전체 명령 세트는 최신 Pentium IV 칩에 포함되어 있지만 Pentium 칩에는 80386 칩에 없는 추가 명령이 있습니다.

이것이 의미하는 바는 80386 컴퓨터용으로 작성된 기계어 프로그램(컴파일러도 마찬가지)은 최신 Intel Pentium IV CPU에서 실행되지만 Pentium의 더 큰 명령 집합을 활용하기 위해 특별히 작성된 기계어 프로그램은 실행되지 않는다는 것입니다. 80386은 구형 CPU의 어휘에 이러한 명령 중 일부가 없기 때문입니다. 80386 내부의 제어 장치는 명령을 해독할 수 없습니다.

이 테마를 기반으로 하는 대부분의 컴파일러에는 프로그래머가 기계어 코드를 컴파일할 CPU 유형을 선택할 수 있는 설정이 있습니다. 80386 설정을 선택하면 컴파일러는 80386 칩에 알려진 명령어만 사용하여 번역을 수행합니다. Pentium 설정을 선택하면 컴파일러는 Pentium에 알려진 모든 명령을 자유롭게 사용할 수 있습니다.

이것은 번역가에게 청중의 최소 읽기 수준을 말하는 것과 유사합니다. 어린이용으로 번역된 문서는 성인이 이해할 수 있지만 성인용으로 번역된 문서는 어린이에게 횡설수설할 수 있습니다.

관련 워크시트:

<울>
  • 마이크로프로세서 프로그래밍 워크시트

  • 산업기술

    1. 가장 멋진 클라우드 프로그래밍 언어 10가지
    2. C 프로그래밍 연산자
    3. C 프로그래밍 언어 PDF:초보자를 위한 기본 자습서
    4. Bosque:루프가 없는 Microsoft의 새로운 프로그래밍 언어
    5. 2021년에 배워야 할 9가지 새로운 프로그래밍 언어
    6. C 튜토리얼
    7. C 언어 - 개요
    8. C - 프로그램 구조
    9. C# - 개요
    10. Heidenhain, 온라인 CNC 교육 프로그램 출시