ARM 어셈블리 언어. 저는 이전에 어셈블리 언어를 접한 적이 없습니다. 더 기본적인 것이 있으면 처음부터 시작하는 것이 가장 좋습니다. 영상이 최고입니다.
개발 보드를 구입하면 일반적으로 많은 학습 자료가 함께 제공되며 비교적 포괄적입니다.
먼저 팔의 메모리 구조부터 시작한 다음 팔의 간단한 명령어 세트로 시작하여 이전 메모리 구조와 결합한 다음 암 칩 개발 보드에서 학습합니다. 팔 칩의 자세한 내용은 팔의 레지스터 구조를 참조하십시오. 이 영역에서 더 많은 튜토리얼과 웹 페이지를 찾아보세요. 마지막으로 개발 보드에 두 개의 하드웨어 드라이버(예: LCD, IIC 또는 단순 GPIO)를 작성해 보세요. 기본적으로 arm의 어셈블리 언어를 배우게 됩니다.
ARM은 축소된 명령어 세트입니다. 모든 어셈블리 명령어의 길이는 32비트입니다. 썸 명령어 세트는 32비트 명령어의 하위 집합이며 16비트 명령어 세트입니다. arm의 모든 데이터 작업은 레지스터에서 수행됩니다. 서로 다른 작업 상태에 거의 32개의 레지스터가 있는 것 같습니다.
어셈블리 언어는 기본적으로 레지스터와 메모리를 동작시키기 위한 명령어이다. 기본 명령어는 다음과 같습니다.
1. 데이터 전송 명령어.
데이터 전송 명령어는 한 메모리 주소의 데이터를 다른 메모리 주소로 이동하거나 레지스터에서 데이터를 전송하는 것입니다. 메모리로 이동하거나 메모리에서 레지스터로 이동하는 경우 메모리에는 저장 주소가 있으므로 데이터 전송 명령에는 데이터 저장 주소와 관련된 몇 가지 문제가 있습니다.
2. 수학적 연산 명령어,
덧셈, 뺄셈(사실 컴퓨터에는 뺄셈 명령어가 없고 보수 덧셈을 사용함), 곱셈, 나눗셈, 나머지, 덧셈 1 명령, 마이너스 1 명령 등
수학적 연산은 숫자 사이의 연산이기도 하기 때문에 데이터가 저장되는 메모리 주소나 레지스터 이름도 포함됩니다. 데이터가 저장되는 위치에 따라 더 많은 지침 양식이 있을 수 있습니다.
3. 논리 연산 지침.
논리 연산에는 'AND', 'OR', 'NOT'도 당연히 데이터에 대한 연산이고, 데이터 저장 주소에 대한 문제도 있습니다.
4. 비트 연산 명령어,
비트 AND, 비트 OR, 비트 NOT, 점프 명령어.
이 점프 명령은 일반적으로 프로그램 흐름을 제어합니다. 예를 들어, 0이 아닌 점프 명령어는 0 점프 명령어입니다. 두 숫자를 비교한 후 점프합니다. 특정 비트는 1로 점프하고, 특정 비트는 0으로 특정 어셈블리 라벨로 점프합니다. 역방향 명령어 등을 점프합니다. 점프는 프로그램을 프로그램 메모리 주소로 이동시키는 것이므로 상대 주소와 절대 주소도 여기에 포함됩니다. 주소 오프셋 문제.
5가지 개념을 통해 어셈블리어를 이해한 후 영상을 시청하시는 것이 더 좋을 것 같습니다.