학교에서 arm 어셈블리어를 공부를하는데요
필기를 해둔내용에서 이해가 가지 않는부분이잇어서요;
구글링해도 정말 안나와서;; 여기에 질문올립니다.
arm어셈블리어 내에서 출력하는 거인데
형태는 C 메인함수내에서 사용하는 함수를 어셈블리어로 구현하고,
중요한건 이것을 C에서 리턴값을받아서 print 찍는게 아니라
어셈블리어내에서 출력 명령을 내려야 되거든요..
필기내용은
msg: .asciz "hello"
asciz는 구글링해서 아스키 문자열로 뒤에 ""를 가능하게하는거고 뒤에는 널문자를 저장하는 데이터 지시자라는건 알앗습니다.
중요한건 이걸 출력하는거인데
mov r0, #1 @ fd<stdout stdout을보니 출력하는거같은데 필요한 값을 초기화해주는거같습니다
ldr r1,=msg msg에 저장된 출력할 문자열 주소를 메모리로 가져오고
mov r2, #6 글자개수를 레지스터 2번에 넣어주고
mov r7, #4 호출할 시스템 call의 번호?? 여기서부터 잘모르겠습니다..
그다음에는 @sys_write(fd,msg,b) 이게 써있긴한데 이거는 어셈블리어에 쓸수없는 형태같고
swi 0- sw interrput는 시스템 인터럽트를 발생시키는거같은데...
중요한 출력을 하는 어셈블리어 명령어를 잘모르겠습니다..
도와주세요 ㅠㅠ