안녕하세요.
start.s 에 대한 궁금증이 있어서 이렇게 글을 올립니다.

start.s 에 있는 처음부분 에서
supervisor 모드로 전환하고 IRQ와 FIQ를 Disable 하는 루틴입니다.

  mrs   r0, CPSR                           ;  CPSR레지스터를 범용 r0에 복사.
  bic    r0, r0, #0x1f                     ; 비트클리어( r0 =( r0 & (~#0x1f)))
  orr    r0, r0, #( 0x13 | 0xc0 )      
  msr   CPSR, r0

이것인데...
질문은 처음에 리셋을하거나 전원이 들어왔을때 CPSR 의 값이 뭔지 데이타시트를 봐도
ARM 책을 봐도 없습니다.
아마도 0x0인거 같은데 만약 0x0 이라고 가정하고
이것 [ bic    r0, r0, #0x1f  ] 이 비트 클리어 를 하는것인데 구지 쓸 필요가 있는지 알고 싶습니다.
어차피 0x0에다가 NOT AND 연산을해도 0x0 인데 말이죠..
그리고 orr 에서 #( 0x13 | 0xc0 )이...
0x13은 supervisor 모드이고 0xc0은 FIQ 와 IRQ를 Disable 을 의미하는거 같은데
이렇게 하신이유는 사용자가 알기쉽게 한것인지..아니면 다른 의미가 있는건지 알고 싶습니다!!!!.
꼭 좀 알려주세요!!
수고 하십시오