본문 바로가기

한국으로74

어셈블리어로 반복 프로그램 짜기 어셈블리어로 반복 프로그램 짜기 특정 기능을 10회 반복하는 코드 [1] for(i=0; i10; i--) MOV r0, #101: [do something] SUB r0, r0, #1 CMP r0, #0 BGT 1b [3] for(i=10; i>10; i--), S-Suffix 사용! MOV r0, #101: [do something] SUBS r0, r0, #1 --> CMP할 필요 없이 한 클럭에 바로 갱신된다. BGT 1b 2018. 7. 21.
어셈블리어 명령어 어셈블리어 명령어 MOVARM은 레지스터간 데이터 복사는 MOV 명령을 사용한다. ex) MOV R0, R1 --> R1의 내용을 R0에 복사한다. 또한, 주변장치의 레지스터는 '메모리'이므로 MOV 명령으로 제어가 불가능하다. LDR, STRARM은 레지스터와 메모리간 이동은 LDR, STR명령을 사용한다. 주변장치의 레지스터 (메모리)는 LDR, STR 명령을 사용하자. 레지스터 --> 메모리 : LDR(Load to Register)메모리 --> 레지스터 : STR(Store to Memory) 상수값을 레지스터로 LOAD하기LDR Rn, =value value는 최대 4바이트 값.Rn은 r0 ~ r15 값. MOV r0, #value 레지스터 간 복사는 MOV 명령을 사용하자. 레지스터 간접참조하.. 2018. 7. 21.
ARM 프로세서 개요 ARM (Advanced RISC Machine)개요영국 Acorn사가 1983년에 컴퓨터용 프로세서로 개발. 스마트폰 보급이 확산하면서 스마트폰에서 CPU 역할을 하는 AP(Application Processor)로 ARM이 주로 쓰이면서 엄청나게 성장했다. 거의 모든 임베디드 시스템에 ARM core가 장착될 정도임. ARM의 성공배경은 고성능, 저전력 구조에 있다. 센서나 모바일용 CPU는 배터리를 효율적으로 쓸 수 있는 저전력 CPU가 필수적이기 때문이다. ARM Cortex-A 시리즈Application 용도로 사용되는 프로세서. 고성능. ARM Cortex-R 시리즈Real time 용도로 사용되는 프로세서. ARM Cortex-M 시리즈MCU 전용 라인업. SoC 구조 GPIO 제어시스템 초.. 2018. 7. 21.
동적메모리 할당하기 (malloc/free, new/delete) 동적할당 malloc과 new의 차이점malloc(), free()1. C에서 사용하는 동적할당 함수.2. 런타임 도중에 공간을 새로 할당받아서 동적으로 메모리를 관리하는 것 (메모리에상에서 heap 공간을 사용함).3. malloc()과 free()는 함수! void* malloc(size_t size)malloc() 함수의 인터페이스. void*를 리턴하기 때문에 반드시 타입캐스팅을 하자! ex) NODE* p = (NODE*)malloc(sizeof(NODE)); //NODE는 구조체 타입 //NODE* p = (NODE*)malloc(sizeof(NODE*)) 아님!! sizeof(타입의 크기) 잘 지정해서 써주자. malloc()은 메모리 공간의 할당만을 목적으로 하고, 생성자를 호출하지 않는다.. 2018. 7. 21.