[ARM] 어셈블리 명령어란
By Guillermo Austin Kim | 2020년 9월 25일 |
우리가 외국인이 어떤 사람인지 잘 알려면 외국어를 배워야 합니다. 외국어를 직접 말하면서 외국인과 대화를 해야 그 사람의 성격을 제대로 알 수 있습니다. 그렇다면 프로그래머 입장에서 ARM 프로세서가 어떤 동작을 하는 지 파악하려면 무엇을 배워야 할 까요? 바로 ARM 어셈블리 명령어입니다. 미국인과 대화를 하려면 영어를 말하듯 ARM 프로세서와 대화를 하려면 ARM 어셈블리 명령어를 사용해야 합니다. 즉, ARM 어셈블리 명령어는 ARM 프로세서와 소통하는 대화하는 언어라고 말할 수 있습니다. ARM 어셈블리 명령어를 사용하면 ARM 프로세서와 어떻게 대화를 할 수 있을까요?이번에는 프로그래머 입장에서 조금 더 구체적으로 ARM 프로세서와 대화하는 패턴을 예로 들겠습니다. 쉽게 설명을 하면 ARM
드디어 올 것(애플 실리콘 맥)이 오나? + DTK 얘기
By being nice to me | 2020년 11월 2일 |
개인적으로 올해 가장 기대가 되는 애플 이벤트입니다. 올해 안에 낸다면서 질질 끌어서 현기증이 나는 중, 지난주에 유니버설 앱 퀵 스타트 프로그램 멤버에게 돌린 이런 메일을 받고 나서 드디어 발표가 임박했군...하는 생각이 들었는데 11/17이 아니라 11/10에 발표를 할 모양입니다. 그러나 첫 모델들은 생각보다 크게 안달라질 수 있다는 얘기가 있어서 기대치 조절이 필요할 듯 하군요. 기왕 이렇게 된거 (NDA는 걸려있지만 그 한도 내에서) DTK 얘기를 풀어보죠. 락다운때 회사에서 지급된 맥 미니 2020 i5 헥사코어 모델이 있어서 좋은 비교가 되었습니다. 빅 서를 맥 미니에도 깔아서 비교했는데, 외견상 너무 차이가 없습니다. 그냥 아이패드OS스런(빅 서 컨셉이 이럼) 맥OS 였습니다.
[ARM] ARM 프로세서를 일반 SW 개발자도 배워야 하는 이유
By Guillermo Austin Kim | 2020년 9월 14일 |
하드웨어를 제어하는 시스템 소프트웨어 개발자들은 ARM 프로세서를 잘 배워야 한다고 말씀 드렸습니다. 그렇다면 다른 분야의 소프트웨어 개발자들도 ARM 프로세서들을 잘 알아야 할까요? 솔직히 말해, 모든 소프트웨어 개발자가 ARM 프로세서를 잘 배울 필요는 없습니다. 예전과 달리 소프트웨어 분야가 다양해졌고, 한 프로젝트에 탑재되는 소프트웨어의 계층 구조도 복잡해졌기 때문입니다. 다음은 안드로이드의 시스템 아키텍처 구성도인데, 이 그림을 보면서 설명을 더 하겠습니다. 그림: 안드로이드 소프트웨어 계층 그림의 윗 부분부터 보면 "Application" - "Application Framework" - "Libraries" - "Linux Kernel" 이란 계층이 보입니다. "Application"
[ARM] ARM 프로세서와 ARM 아키텍처란
By Guillermo Austin Kim | 2020년 9월 23일 |
ARM 프로세서를 배울 때 가장 혼돈되는 게 용어입니다. 먼저 ARM과 관련된 용어를 소개합니다. ARM 아키텍처 아키텍처는 ARM 프로세서를 설계하는 디자인을 의미하며, 프로그래머 모델을 의미합니다. ARM 아키텍처는 레지스터, 메모리 구조, ARM 어셈블리 명령어, 함수 호출 규약과 같이 소프트웨어 개발자가 알아야 하는 주요 기능입니다. 이 책에서는 ARMv7(32비트)와 ARMv8(64비트: Aarch64) 아키텍처 기반의 프로그래머 모델을 설명합니다. ARM 프로세서 ARM 프로세서는 용어 그대로 디바이스를 뜻합니다. ARM 프로세서는 ARM 아키텍처에 의존적인데, 같은 아키텍처 버전 기반의 ARM 프로세서들은 같은 명령어를 사용합니다. 다음 표는 ARM 아키텍처와 ARM 프로세서의 관계를