- 博客(11)
- 收藏
- 关注
原创 实验11 多任务和多线程
实验11 保护模式支持多任务,能够快速地进行任务切换和保护任务环境。在Windows操作系统中,它能同时运行若干个应用程序(独立运行的程序又称之为进程),每一个进程作为一个任务;在一个进程中,它又可以分成若干个独立的执行流,称之为线程。11.1 多任务及其调度下面给出一个用于演示任务切换的实例。该程序在保护模式下建立2个任务,分别在屏幕上显示单个字符和寄存器的值。涉及的内容包括:
2008-04-12 10:28:00 1901 1
原创 实验10 硬盘DMA编程
采用PIO方式访问硬盘,硬盘扇区数据的读写完全由CPU通过IN、OUT指令执行,一个扇区占512字节,需要256次I/O操作,占用CPU资源。读取硬盘扇区时,每次I/O操作包括一个IN指令和一个内存写操作,CPU先读取16位数据到AX中,再将16位数据写入到内存中。写入硬盘扇区时,每次I/O操作则包括一个内存读操作和一个OUT指令。使用DMA方式,硬盘读写由DMA控制,数据在内存
2008-04-11 21:38:00 6206 4
原创 实验9 保护模式编程基础
实验9 保护模式编程基础在保护模式下,可寻址高达4GB(甚至更多)的物理地址空间;支持存储器分段管理机制和分页管理机制;支持多任务;支持4个特权级和配套的特权检查机制,区分不同级别的代码。操作系统(如Windows、Linux等)正是依赖于这些特性来实现虚拟内存、内核/用户模式、多任务等功能。9.1 虚拟机开发环境实模式与保护模式的切换,以及保护模式下的中断、DMA处理等程序必须在特
2008-04-10 21:19:00 2764 3
原创 实验6 I/O程序设计
实验6 I/O程序设计输入/输出是对外部设备进行控制和数据交换的过程。CPU与外设之间的信息交换,是通过接口电路中的I/O端口进行的。I/O程序设计必须使用IN、OUT指令,对端口进行读、写操作。6.1 读取实时时钟现代微机中都包含一个实时钟,它自动地定时更新时间与日期。实时钟信息(年、月、日、时、分、秒)保存在CMOS RAM中,在系统关机后,时钟电路自带的后备电池继续向RAM供电
2008-03-17 09:51:00 5033 2
原创 实验8 缓冲区溢出攻击实验
实验8 缓冲区溢出攻击实验缓冲区溢出是目前最常见的一种安全问题,操作系统以及应用程序大都存在缓冲区溢出漏洞。缓冲区是一段连续内存空间,具有固定的长度。缓冲区溢出是由编程错误引起的,当程序向缓冲区内写入的数据超过了缓冲区的容量,就发生了缓冲区溢出,缓冲区之外的内存单元被程序“非法”修改。一般情况下,缓冲区溢出导致应用程序的错误或者运行中止,但是,攻击者利用程序中的漏洞,精心设计出一段入侵程序
2008-03-17 08:44:00 13071 2
原创 实验7 程序优化
实验7 程序优化评价一个程序的优劣,执行效率是一个重要因素。尤其是在汇编编程中,更应该体现汇编语言执行效率高的优势。执行效率从两个方面来衡量:程序在多长的时间内能够完成(运行时间);程序需要多大的存储空间(占用空间)。7.1 指令代码的优化完成同样一个功能,可以由选择不同的指令来完成。它们的执行效率是有所区别的,在对程序进行优化时,应该选取那些占用空间少、执行速度快的指令。1.
2008-03-17 08:33:00 3697 3
原创 实验5 子程序设计
实验5 子程序设计汇编中的子程序等价于C语言的函数。在编写功能较复杂的程序时,需要将它分解为若干比较小的、易于实现的子程序来实现。在主程序运行过程中,需要执行某个功能时,就调用相应的子程序。子程序执行完毕后,返回到主程序。5.1 子程序的定义和调用1. 子程序的定义伪指令PROC和ENDP用来定义子程序。其格式如下:子程序名 proc …
2008-03-10 16:26:00 4389 1
原创 实验4 Windows界面编程
实验4 Windows界面编程在图形用户界面(GUI, Graphic User Interface)中,用户与计算机通过图形图像以及文本进行交互。在Window 系统中,GUI程序显示出特定的窗口、图标、按钮、对话框等对象,而用户通过鼠标或键盘控制、操作这些对象。 4.1 简单的窗口程序1. 窗口的创建为了创建一个窗口,需要执行以下4步:(1) 定义一个WN
2008-03-09 22:05:00 3228 5
原创 实验3 字符串/块处理程序设计
实验3 字符串/块处理程序设计CPU提供了一些系列的指令,用于对内存中的连续数据单元进行处理。利用这些指令,可以编写出高效的程序,完成对字符串、数据块的操作处理。3.1 搜索字符块扫描指令SCASB、SCASW、SCASD在EDI指向的目标数据块中查找AL、AX或EAX,然后EDI自动增加或减小1、2或4。块扫描指令像CMP指令那样设置FLAGS寄存器中的标志位。块扫描指令的几个
2008-02-27 12:56:00 2187 1
原创 实验2 分支循环程序设计
实验2 分支循环程序设计分支程序设计一般要依靠条件跳转指令,根据上一步操作的结果来决定下一步的动作;而循环程序设计需要使用LOOP等指令,使循环体能够反复执行。2.1 冒泡法排序数组的冒泡排序算法,需要用两层循环来实现。冒泡排序对一个7个元素的数组(n=7)进行升序排序的例子如图2-1所示。
2008-02-24 20:17:00 2559 1
原创 实验1 Windows汇编语言开发环境
实验1 Windows汇编语言开发环境Windows、Linux等现代操作系统都运行于CPU的保护模式下。学习保护模式的汇编语言编程,要选用合适的编译、调试工具,编译工具决定了汇编程序的语法、结构,而调试工具则能够帮助我们迅速查找程序中的错误,提高调试效率。本实验指导书采用Microsoft公司的MASM 6.14作为编译工具,Microsoft Visual C/C++作为开发调试环境
2008-02-20 18:34:00 3646 3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人