ARM 어셈블리에서 SWI랑 LDR, STR가 하는 역할이 뭐죠??
글쓴이: gksrlf2ek / 작성시간: 수, 2018/01/24 - 3:48오후
ARM 어셈블리 프로그래밍을 배우고 있습니다.
SWI 0라는 코드에 대해 처음에는 그냥 프로그램을 끝내고 터미널로 나가는 명령인가보다 했는데,
점점 배우다보니 SWI 0가 코드에 하나만 있는게 아니더라구요.
그렇다고 종료하는 지점이 여러개인것도 아니라서 잘못 이해하고 있다는 것을 깨닫게 되었습니다
SWI 0라는 코드가 실행되면 일어나는 일과,
실질적으로 SWI 0라는 코드를 언제 써야하는지
에 대해 설명해주실수 있나요?
그리고 LDR, STR을 실행하면 무슨 일이 일어나는지와
MOV와 위 두 명령의 차이가 궁금합니다.
지금 고민 중인 코드는 이것입니다.
.global _start
_start:
MOV R7, #4 @ Syscall to output to screen
MOV R0, #1 @ Monitor output stream
MOV R2, #12 @ String Length
LDR R1, =message @ Load register with address of string
SWI 0
end:
MOV R7, #1 @ Exit syscall
SWI 0
.data @ Signify that what follows is data
message:
.ascii "Hello World\n"
Forums:
매뉴얼 읽으세요.
SWI - software interrupt. 흔히 system call.
LDR - 해당 주소의 값을 읽어옴
STR - 해당 주소에 값을 기록
댓글 달기