尊敬的社区成员,
我正在Coursera.org上完成计算机体系结构课程的学习,该课程提出了将应用程序转换为在微处理器上执行指令的想法.扩展这个想法,我想知道如何执行诸如文字处理器之类的应用程序或像emacs这样简单的应用程序.
我的意思是,当您启动应用程序,开始键入,删除单词或一行,保存并退出应用程序时会发生什么.
是否有可能看到在程序启动时,在键入模式下等执行了哪些指令.如何查看每个指令的执行,其操作数,内存和高速缓存访问?
如果问题似乎不完整,请添加缺少的部分以使其更有趣.
谢谢
解决方法:
我们将操作视为“将光标移动到一个字母”,“滚动到下一行”或“输入字母’a’”.电脑要简单得多.它以纯数学形式工作,并调用以将数据加载和存储在寄存器或内存中.因此,“移动光标”确实是一个漫长的链条:
>获取内存/注册表位置X
>为其添加一些值,更新原始位置
>重复….
>现在所有的参数都准备好了,调用系统调用来更新屏幕
一个简单的事情就是查看从C语言代码转换为ASM然后转换为机器语言所需要的内容.请记住,即使组装比实际驱动机器的0和1都高.
将以下内容转换为他们用于该类的任何ASM:
int result = 1;
int i;
for (i = 100; i > 0; i++)
{
result *= i;
}
printf("%d\n", result);
是的,这是愚蠢的代码.但是,看看在ASM中重新创建代码所需的代码量.现在,查找该ASM的机器代码定义,并将ASM转换为二进制文件.这真的很快变得单调.但是,一旦了解了它的工作原理,便会了解VMWare的工作方式以及每个计算设备的工作方式.