摘要:
C语言的特点:C语言虽是高级编程语言,但它也具备了能够和汇编语言相媲美的低层处理(内存操作及位操作)功能。 变量和函数:不管使用什么样的编程语言,程序内容都是由数据和处理构成的至于程序的数据和处理具体该如何表示,则根据编程语言的不同而不同。在 C语言中,数据用变量来表示,处理用函数来表示。因而,语言 阅读全文
摘要:
程序的使用目的大体可以划分为两类: 一类,是大家作为工具来使用的程序。例如,文字处理器这个程序,大家是将其作为文档处理的工具来使用的。这种情况可以说是程序替代了现有的工具(笔和尺子)。 另外一个使用目的是用程序来代替执行人类的思考过程。例如,微计算机 控制的电饭煲,会根据米和水的份量来自动调整火的大 阅读全文
摘要:
如果用一句话来简单地概括该机制,那就是显示器中显示的信息一直存储在某内存中。该内存称为VRAM(Video RAM)。在程序中,只要往VRAM中写入数据,该数据就会在显示器中显示出来。实现该功能的程序,是由操作系统或BIOS提供,并借助中断来进行处理的。 在MS-DOS时代,对大部分计算机来说,VR 阅读全文
摘要:
DMA机制是指在不通过CPU的情况下,外围设备直接和主内存进行数据传送。磁盘等都用到了这个DMA机制。通过利用DMA,大量数据就可以在短时间内转送到主内存。之所以这么快速,是因为CPU作为中介的时间被节省了(图11-9)。 资源是计算机具备的有限资源的统称。端口号、IRQ、DMA等可以指定的数值范围 阅读全文
摘要:
在主程序运行的过程中,中断发生的频率有多大呢? 实际上,大部分的外围设备,都会频繁地发出中断请求。其原因就是为了实时处理从外围设备输入的数据。虽然不利用中断也可以从外围设备输入数据。但那种情况下,主程序就必须要持续不断地检测外围设备是否有数据输入。 由于外围设备有很多个,因此就有必要按照顺序来调查。 阅读全文
摘要:
IRQ是用来暂停当前正在运行的程序,并跳转到其他程序运行的必要机制。该机制称为中断处理。如果没有中断处理,就有可能出现处理无法顺畅进行的情况。从中断处理开始到请求中断的程序(中断处理程序)运行结束之前,被中断的程序(主程序)的处理是停止的。这种情况就类似于在处理文档的过程中有电话打进来,电话就相当于 阅读全文
摘要:
Windows控制硬件时借助的是输入输出指令。其中具有代表性的两个输入输出指令就是IN和OUT。这些指令也是汇编语言的助记符。 IN指令和OUT指令的语法如图11-2所示。这是Pentium等x86系列CPU用的IN指令的语法。IN指令通过指定端口号的端口输入数据,并将其存储在CPU内部的寄存器中。 阅读全文
摘要:
在C语言等高级编程语言开发的Windows应用中,很少有能直接控制硬件的指令。这是因为硬件的控制是由Windows全权负责的。 不过,Windows提供了通过应用来间接控制硬件的方法。利用操作系统提供的系统调用功能就可以实现对硬件的控制。在Windows中,系统调用称为API(图11-1)各API就 阅读全文
摘要:
代码清单10-12中用到了三种跳转指令,分别是比较结果小时跳转的jle 、大时跳转的jge 、不管结果怎样都无条件跳转的jmp。在这些跳转指令之前还有用来比较的cmp指令,比较结果被保存在了标志寄存器中。虽然同C语言源代码的处理流程不完全相同,不过处理结果是相同的。此外,需要注意eax寄存器表示的是 阅读全文
摘要:
接下来,让我们继续解析汇编语言的源代码,看一下for循环及if条件分支等C语言程序的流程控制是如何实现的。代码清单10-8是将局部变量i作为循环计数器 连续进行10次循环的C语言源代码。在for语句中,调用了不做任何处理的MySub函数。这里我们把代码清单10-8转换成汇编语言,然后仅把相当于for 阅读全文