Tab 복사가 안돼서 삐뚤빼뚤 ㅜㅜ Execute unit in ARM Move instruction - MOV mov r0, r0, LSL#1 r0에 저장된 값을 logic shift left로 1칸 옮겨서 r0에 저장하라 mov pc, r14 r14에 저장된 값을 pc 레지스터에 저장하라 example r0 = 0x80000004 movs r0, r0, LSL#1 r0 = 0x00000008, CPSR = nzCv movs r0, r0, LSL#1 r0 = 0x00000010, CPSR = nzcv 대부분의 instruction은 (lsl#같은) Barrel shifter를 사용할 수 있다! instruction 뒤에 붙는 s는 명령어 수행 후 CPSR 플래그를 update하라는 의미 2bit 이상 ..
assembly를 배우면서 하드웨어의 작동에 대해 배우는 이유?하드웨어 ( CPU, Memory, I/O ) 위에서 OS가 작동하고, 이 OS 위에서 프로그램이 동작한다. C, JAVA 등의 고급언어로 작성된 프로그램들은 컴파일러에 의해 binary파일이나 execute파일로 번역되어 OS/HW에 전달되기 때문에 작동방식이나 과정에 대해서는 개발자가 알지 못해도 프로그램을 동작시키는데 아무런 무리가 없다. 그러나, Assembly같은 기계어는 HW를 직접 건드리는 명령어를 사용하기 때문에, CPU, Memeory등이 어떻게 동작하는지에 대한 방식과 사용 방법을 알고 있어야 한다. Carry Flag & Overflow FlagUnsigned a = 5, b = 3 이라 할 때, if ( a > b ) 의..
ARM architecture 32-bit ISA ( instruction set architecture : 명령어 집합 구조 )마이크로프로세서가 알아들을 수 있는 기계어 명령어 ( assembly ), 프로세서가 실행할 수 있는 모든 명령어를 포함한다. Abstraction in ComputerHardward - 사람이 전기신호를 제어하며 조작하기 어렵다.[Abstraction Layer]-> Instruction Set Architecture - Machine Language ( assembly language ) : CPU에서 지원하는 language로 동작구현 가능-> Operating System - Machine Language로 조작하지 않고 GUI 등으로 사용자가 쉽게 접근할 수 있음Use..