C 및 ASM에있는 소스 코드에서 일부 ASM 명령어를 이식하려고합니다. ARMv7의 명령어 세트를 찾고 ARMv7의 명령어 사용법을 이해할 수있는 사람이 있습니까? 는 사실은 내가 인터럽트를 처리하고있어, 그래서 "번역"할 :ARMv7에 해당하는 x86_64 명령어
iretq
int $0x80
int $0x04
내가하는 ARMv7 ASM에서 프로그래머 적이 없어요.
감사합니다.
C 및 ASM에있는 소스 코드에서 일부 ASM 명령어를 이식하려고합니다. ARMv7의 명령어 세트를 찾고 ARMv7의 명령어 사용법을 이해할 수있는 사람이 있습니까? 는 사실은 내가 인터럽트를 처리하고있어, 그래서 "번역"할 :ARMv7에 해당하는 x86_64 명령어
iretq
int $0x80
int $0x04
내가하는 ARMv7 ASM에서 프로그래머 적이 없어요.
감사합니다.
해당 인텔 의도는 각각 iret
및 int
입니다. 즉, 인터럽트 처리는 CPU 및 플랫폼에 따라 다릅니다. 명령을 일대일로 번역하면 작업 프로그램이 생성되지 않을 가능성이 높습니다. 응용 프로그램을 개발한다면 인터럽트를 망치면 안됩니다 (심지어 int 80h - 시스템 콜을 수행하는 더 좋은 방법이 있습니다). 드라이버 나 OS 커널을 개발하는 경우 라인 단위로 번역하는 대신 체계적으로 어셈블리를 배워야합니다. 그것은 는이 OS와 상호 작용의 이국적인하지만 합법적 인 방법, 인터럽트 호출 -
int
명령은 응용 프로그램 코드에서 이론적으로 존재할 수 있습니다. iret
명령은 다른 방법으로는 인터럽트 처리기에서만 사용해야합니다. 그것은 커널 공간 밖에서 절대 사용되지 않습니다.
플랫폼은 Android이고 CPU는 ARMv7 프로세서 rev 0 (v7l)입니다. 또한 해당 구성을위한 ASM을 알고 싶습니다. 그 정보만으로는 매우 어려운 경우 번역을 요구하지 않았습니다. 배우고 싶습니다. 문제는 사람들이 생각하지 않는다고 생각하지 않는다. 문제는 내가 전에 ARM을 사용 해본 적이 없다는 것이다.) – user1189104
애플리케이션을 개발한다면, 인터럽트를 사용해서는 안된다. (심지어 int 80h - 시스템 콜을 수행하는 더 좋은 방법이있다.) 드라이버 나 OS 커널을 개발하는 경우 라인 단위로 번역하는 대신 체계적으로 어셈블리를 배워야합니다. –
"이 지침의 용도"에 대해 질문하는 것이 더 생산적이지 않습니까? 그런 다음 무언가를 배우고 다른 사람이 번역 작업을 수행하도록 요청하기보다는 직접 코드를 이식 할 수 있습니다. – jalf
iretq = 인터럽트에서 복귀합니다. int = 인터럽트를 호출합니다. 첫 번째 인수는 IDT의 인터럽트 번호입니다. 어쨌든 고맙습니다 ...;) – user1189104
'movs pc, lr' 및'svC# 0'. 나는 어떻게 대답이 도움이되는지 잘 모르겠습니다. –