版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程性质本课程是计算机科学与技术专业的 必修课程、也是本系其它专业专业 课程学习的专业基础课程。教学目的本课程向学生介绍汇编语言程序设计的 方法和技巧。以PC计算机的汇编语言为主,通过课堂 教学和上机实习,使学生掌握DOS和Windows汇编序言程序设计的特点及技术, 即汇编工具Masm611和Masm32的 使用;掌握软件与硬件的交互原理,即DOS、BIOS功能的调用方法、MSDN的使用、API的调用熟练使用使用调试工具Debug和W32Dasm理解高级语言的实现原理计算机语言是人与计算机之间交流信息的 工具程序:用计算机语言描述的处理步骤。程序设计:编制处理步骤的过程。计算机语言可分为三类
2、:通用语言 面向程序设计人员设计的,髙级语言1.1汇编语言的由来与特点机器语言汇编语言J面向机器指令是CPU能直接识别并执行的指令 它的表现形式是二进制编码。机器指令通常由 操作码和操作数两部分组成,操作码指出该指 令所要完成的操作,即指令的功能,操作数指 出参与运算的对象,以及运算结果所存放的位 置等。机器语言是直接用描述机器指令来设计程 序,它是CPU能直接识别的唯一一种语言。也 就是说,CPU能直接执行用机器语言描述的程 序。1、机器语言Jr-;1号单元内容取入AL寄存器0000 00001000 1010;2号单元内容取入AH寄存器001001100000 0010 0000 0000
3、0000 0000 : AL的内容与AH的内容相力口,结1110 0000;果存入AL中1010 0010;AL的内容送入3号单元0000 00110000 00001111 0100;停机机缺点:(1)航器语言难记,程序难编,易错,调试困难;(2)机器语言通用性差。优点:(1) +算机能直接认识、执行;算法刻画细致;(3)程序紧凑,占用内存空间少,执行速度高;(4)能充分发挥计算机的硬件功能。随着计算机的发展,产生了符号语言, 上面的程序用符号语言编写如下:MOVAL, DATA1;取第一个数据MOVAH,DATA2;取第二个数据ADDAL,AH;求和MOVRLT,AL;保存结果HLT;停机
4、、机器语言*汇编语言:符号语言的词法、语法规则及伪指令符 号就构成了汇编语言。*汇编过程:把汇编语言程序翻译成机器语言程序的 过程称为汇编过程。*汇编程丿丫:完成汇编过程的程序称为汇编程序。*汇编语言程序:程序设计人员用汇编语言编写的程 序,是汇编程序加工的对象,称为源程序。*目标程序:汇编程序产生的结果,也称作是目的程 序。DATA2 DB26HRLTDB0DSEGENDS;数据段结朿CSEGSEGMENT;代码段开始ASSUMECS:CSEGQS:DSEGSTART: MOVAX,DSEG;设置数据段基址MOVDS,AXMOVAUDATA1;取第一个数据MOVAH,DATA2;取第二个数据
5、ADDAUAH;求和MOVRLT.AL;保存结杲HLT;停机CSEGENDS;代码段结束ENDSTART;源程序结束源程序(1)程序容易编制、出错机会少、容易调试;(2)算法刻画细致;(3)程序紧凑、占用内存空间少、执行速度高;(4)能充分发挥计算机的硬件功能。 缺点:计算机不能直接认识、执行,必须经过汇编变 为机器语言程序;通用性差。执行过汇编程序计算机8086汇编,8051汇编等三、通用语言(高级语言)通用语言:是用来对计算机操作步骤进 行描述的一整套标记符号、表达格式、 结构及其使用的语法规则。种类:Pascal, BASIC, CzCOBOL Java等 等例子(C):int i, j
6、, k;k=i+j;编译程序计算机目标程序呈兰可执行程序*执行源程序:、通用语言(咼级语言)优点:(1)程序容易编制、出错机会少、容易调试;(2)容易表达算法;(3)通用性强。(1)计算机不能直接认识、执行,必须经过编译变 为机器语言程序;(2)编译后生成的机器语言程序兀长、占用内存 空间多、执行速度低;(3)不能充分发挥计算机的硬件功能。计算机语言发展简史机器汇编JAVA率”。但也导致其可移植性差和调试难。所以,我们在 选用汇编语言时要根据实际的应用环境, 尽可能避免其 缺点对整个应用系统的影响。汇编语言主要适用于下列 领域:要求啊行效率高、 反应快的领域, 如操作系统内核,工业掩制,央时系
7、统等。系统性能的瓶颈,或频繁被使用子程序或程序段。与硬件资源密切相关的软件开发,如设备驱动程序。容量限制的应用领域,如家用电器的计算机控轧它高级语言不适合的开发环境。学好汇编的意义理解硬件的控制原理:比如,控制磁盘驱动器、 控制键盘、控制鼠标,等等。在学过汇编以后, 可以和我们以前学习过的计算机原理结合 起来,对硬件的控制, 硬件与软件的交互机理 有深入的认识。深入理解高级语言:我们学过c语言,知道c语 言用cin和cout怎么输入输出字希,也汇编中可 以知道它们是怎么实现的。其它语句如switchif.else goto等,其它函数如strcmp strlenstrcmp,莪们血旬以模拟它们
8、的实现。汇编效汇编语“执行的软件的加密解密:存在盗版软件,是因为有人 对软件进行破解,让其保护方式失去作用。保 护自己的软件,需要对软件进行加密,汇编语 言可以显示它的威力。信息安全:尤其在反病毒方面。例如,病毒为 什么能够感染可执行文件,假设一个文件感染 了病毒,我们怎么去分析它,祛除病毒代码, 都只有汇编语言更适合一些。微型计算机的系统结构微型计算机的系统包括硬件系统、软件 系统。首先介绍微型计算机系统的基本结构,然后分别以 80868086 为例介绍 1616 位微处理器的结构和以 8038680386 为例介绍 3232 位微处理器的结构。1.2系统结构硬件系统硬件是指构成计算机物理设
9、备的实体(如CPU、显卡、外部设备等),一台计算机 所有硬件的集合构成了计算机的硬件系 统。一般将其分为微处理器、主存储器、接口电路、外部设备和系统总线等。微型计算机的系统结构微处理器就是曲控制器和算术逻辑部件(ALU)组成的中央处理器(即CPU)。它的作用是自动地执行各条指令,协调整个系统的工作。主存储器是计算机的记忆装置,用于存 储计算机当前正在执行的程序和数据, 我们通常接触的是RAM,它是一种随机 存取存储器。系统总线是将CPU与存储器及外部设备连接起 來的总线,它是用來传输信息的。按传输信息 的种类不同把系统总线分为地址总线(AB)、 数据总线(DB)、控制总线(CB)o外部设备按功
10、能可分为二类:一类是与计算机 进行通讯的设备如键盘、打印机和显示器等, 这些设备与计算机的通讯是通过I/O接口实现 的。另一类是用来存储信息的设备如磁盘、光 盘等。M 软件系统软件是指所有程序和数据的总称。通常我们将它 分为系统软件和应用软件两大类。系统软件主要用来对计算机系统实际运行进行控 制,管理和服务的。它主要分为操作系统(如DOS、Unix、windows、Macintosh、Linux等),诊断程 序,调试程序和语言处理程序如编译程序、解释 程序和汇编程序等。应用软件指的是用户口己编写的各类应用程序。INTEL8086/8088 16位机的 Intel 8086/8088是第三代微处
11、理器。 在 汇编语言一级,它们与第二代微处理器8080/8085是兼容的。8086有20条地址 线,16条数据线,直接寻址的内存空间可达lMB(220)o8088和8086内部组成完系统结构全相同,不同的是8088外部数据总线只 有8条。因此8088被称为准16机。IBMPC机及其兼容机上广泛采用了8088CPUoI也Jll:总线20仪 8086/8088 CPU按功能可分为二个部分:总线接口单 元(BIU:Bus Interface Unit)和执行单元(EU: Execute Unit)o BIU由地址加法器,指令指针寄存器IP,指令流字节队 列和四个段寄存器(ES、CS、SS、DS)所组
12、成的,它主 要负责CPU与存储器及外部设备Z间的信息伎输。 EU由算术逻辑单元ALU(Arithmetic and Logic Unit),执行单元控制系统,8个16位寄存器和一个标志寄存器PSW组成,它负责全部指令的执行,即负责向总线接 口单元提供数据和地址,并对通用寄存器和标志寄存 器进行管理,在ALU)进行算术运算和逻辑运算。CSDS执彳 r单7GEUAHALBHBL04CLDHDLSPBPSID1ESALU 数抑总 纟戈SSIP| FLAGS ”数拥芯线16位总线控制邃耕执行 a 兀控制8086/8088的寄存器分为4种类型:(1)通用寄存器(2)指针和变址寄存器(3)段寄存器(4)标
13、志寄存器,(1)通用寄存器8086/8088CPU的寄存器AHALBHBLCHCLDHDL150AX(主漿加器,Accumulator)BX(基址寄存器,Base Register)CX(计数寄存器,Count Register)DX(数据寄存器,Data Register)8 7(2)指针与变址寄存器150)段寄存器10000 0001标志寄存器长度为16位,其中9个位有 定义。1514 13 12 11109876543210XXXXOFDFIF TFSFZFXAFXPFXCFC Carry Flag,进位标志丿两 数相加,最高位向前的进位;或两数相减最高位向前的借 位,举例:100000
14、0110()0 000()1一1000 00011111 1111(4)100()0000结果:PF=1A Auxiliary Carry Flag,辅助进位标志,两数相加丿第3位向前的进位; 或两数相减第3位向前的借位,举例:000)000+ 000() 1000oooDoooiP Parity Flag,奇偶标志/两 数操作(算术或逻辑),结果的 低8位中含有1的位数是偶还 是奇。举例:1000 0101 1010 110()A1001 1101 1001 01111000 0101 100() 01 ()00000 1001-0000 0001)111 1111结果:SF=1ZFfZer
15、o Flag,零标志,操作结果为0,贝UZF为1。举例:1111 1111SB Sign Flag,符号标志,操 作结果的符号位(即最高位的 状态)。举例:1000 0101 1010 1100A 1001 1101 1001 01111000 0101 1 ()0() 01 ()0+ ()000 00010000 0000操作结果为aZF=I进位11FFEFHOF Overflow Flag,溢出标志丿算术操作,结果超过目标所能 容纳的范围。举例:0111 1110 (+126)+ 0000 0011(+3)1000 0001(-127)8086/8088存储器结构存储器的分段结构 实际地址
16、的产生存储器的分段结构段地址:段首单元在整个1 MB单元中的编号,其最 低4位一定为0,高16位保 存在段寄存器中。偏移地址:单元所在位置 距离其所在段段首单元的 距离,段首单元的偏移地 址为0000H,后续的单元 顺次增1。因此,对于存储空间中的 任意一个单元,我们都可 以通过段地址和段内的偏 移地址唯一地确定。存储器的分段结构存储器的分段结构堆桂段:|SS(16 位I 0000B -堆找段 11- _- r数据段:1 r$:QMOH“1阻加【段:116 位1 OOOUB1 5 -附段(汕于门)jr_代巧段;i(S M 位.OUUOB-f代础段 Pi1FFEFH指针变址寄存器SI, DI,
17、BP, SP存 放的是在某一段内寻址的单元的偏移地 址。其中SI和DI存放的是数据段内某单 元的偏移地址,而BP和SP存放的则是堆 栈段内某单元的偏移地址。指令指针IP用以存放下一条要执行 的指令在当前代码段内的偏移地址。实际地址的产生实际地址:也称物理地址,是该单元在整个1MB单元中的 编号,用一个20位的二进制数表示,范围从00000HFFFFFH,该地址是唯一的。CPU与存储器进行 数据交换时所使用的地址即是实际地址。逻辑地址:由两部分组成,即段地址和偏移地址。我们在编 写程序时所使用的地址即是逻辑地址。首先将存储器分段Z后段地址的高16位存入相应的段寄存器中,然后再通过段内 的偏移地址
18、对所需的单元进行访问。实际地址的产生丄实际地址的产生CS=9482,IP=23一个实际地址可以对应多个逻辑地址。1001 ()11() 1011 ()111 ()0000 0 0 0 16位段寄存器举例:堆栈是按先进后出的原则在内存中组织的一个特殊的存储区域。该区域一端固定一端活动,固定的一端称为栈底,而活 动的一端称为栈顶。往堆栈中存入或取出信息总是在堆栈的栈顶单元进行的。CPU中的堆栈指针指示器SP总是指向堆栈的栈顶, 而堆栈段寄存器SS则指明了堆 栈段的起始位置。 Intel 80386是为满足高性能的应用领域与多用户、多任务的操作系统的需要而设计的,其最 大的特点是在CPU芯片上集成了一个存储器管 理部件(MMU),可对246字节的虚拟存储器 和4千兆字节的物理存储器进行分段和分页管 理, 段的最大长度为4千兆字节。 80386采用CHMOS工艺,陶瓷网格阵列(PlasticGrid Array, PGA)封装,全32位结 构,它的时钟频率有16MHZ
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论