0

可能是一个非常愚蠢的问题,但是有人可以解释为什么不能编写汇编代码来触发系统功能或控制硬件吗?例如,是否不可能编写代码来关闭/打开屏幕,甚至是设备的手机?

我不是在谈论越狱设备,也不是为应用商店制作应用程序。带有程序集以调用系统函数的普通应用程序。

如果确实可能,任何人都有一个很好的参考或起点来完成这些任务?

谢谢

4

2 回答 2

2

iPhone 使用受内存保护的操作系统,其中每个用户进程都包含在自己的虚拟内存地址空间中。地址空间受内存管理单元 (MMU) 硬件保护,尝试访问操作系统为进程分配的区域之外的内存将导致异常。操作系统为自己保留硬件内存范围,并且不使其可供用户进程使用。因此,不可能从用户进程直接连接到硬件。

于 2013-03-08T02:29:51.707 回答
1

当然可以从汇编代码中调用系统函数。您认为 C 或 C++ 应用程序是做什么的?它正是这样做的。C/C++ 和汇编代码最终都会(在编译时)转换为 CPU 执行的机器代码。

我不确定指南在哪里可以做这样的事情,但是您当然可以在调试器中运行 C 程序并查看它如何调用各种系统函数,或者您可以反汇编该程序并阅读反汇编而不运行该程序调试器。

在任何情况下,用汇编程序编写的程序都不会比用 C 编写的程序对设备有更多的控制权。操作系统应该限制对 CPU 级别的某些 I/O 设备和内存区域的直接访问,其中没有汇编和C的区别,对CPU来说都是一样的,只是机器码中的一堆指令。

于 2013-03-08T00:06:07.667 回答