计算机硬件技术基础第6章课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《计算机硬件技术基础第6章课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机硬件 技术 基础 课件
- 资源描述:
-
1、计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社第第6章章 指令系统与汇编语言基础指令系统与汇编语言基础计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社【学习目标【学习目标】1.知道汇编语言的程序结构。知识点:指令、伪指令、标识符、保留字、常量、变量、表达式 源程序、目标程序、可执行程序、子程序、MASM、系统功能调用2.掌握8086指令系统和汇编语言程序设计及调试。能力要求:熟记8086的指令及功能。能进行简单汇编语言程序设计及调试。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂
2、编编高等教育出版社高等教育出版社【重点、难点【重点、难点】1 8086指令的功能及应用。2汇编语言程序的格式及语法要求。3汇编语言程序设计及调试。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社【内容框架】指令系统及指令系统及汇编语言基础汇编语言基础汇编语言基础汇编语言基础指令格式及寻址方式指令格式及寻址方式8086的指令系统的指令系统程序设计举例程序设计举例汇编语言的程序格式和组成汇编语言的程序格式和组成汇编语言概述汇编语言概述上机步聚上机步聚指令格式指令格式8086的寻址方式的寻址方式数据传送指令数据传送指令算术运算指令算术运算指令位操作指令
3、位操作指令转移指令转移指令顺序程序设计顺序程序设计分支程序设计分支程序设计循环程序设计循环程序设计子程序设计子程序设计循环指令循环指令输入输入/输出输出DOS功能调用功能调用处理器控制类指令处理器控制类指令计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社6.1.1 汇编语言概述汇编语言概述计算机编程语言:机器语言、汇编语言和高级语言。机器语言:由二进制代码按一定语法和语义组成的,是CPU能够理解并直接执行的机器指令集合。指令难记、程序难以阅读、通用性差。汇编语言:符号助记式语言,即符号化了的机器语言。程序代码比机器语言程序代码更具易读性,记忆方便
4、。由汇编语言编写的程序称为汇编语言源程序,需要经过称为汇编程序翻译成机器语言的目标程序,才能被CPU读取并执行。高级语言:接近人类自然语言的计算机编程语言,比汇编语言更加易于理解。高级语言源程序,须由翻译软件转换成汇编语言和机器语言,才能最终能被CPU读取并执行。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社三种语言程序指令的对比:指令的功能是把a+b的和赋给c。学习汇编语言的目的:汇编语言程序比用高级语言程序占用内存资源更少,执行速度更快。对涉及硬件的操作汇编语言比高级语言功能更强。(嵌入式编程)汇编语言源程序更能从原理上体现计算机的工作过程
5、,是学习计算机原理和接口技术的基础。学习汇编语言是学习软件的加密、解密技术和网络安全的必备的基础。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社6.1.2 汇编语言的程序格式和组成汇编语言的程序格式和组成一、汇编语言程序的基本框架1程序案例:以实现A+BC的汇编语言源程序为例。2汇编语言程序的一般格式:(1)汇编语言程序采用的是段式结构,一个汇编语言程序由若干个逻辑段组成。如数据段DSEG、堆栈段SSEG和代码段CSEG。各段以“段名 SEGMENT”开始,以“段名 ENDS”结束。段名需由程序员命名。(2)汇编语言程序中包含指令语句和伪指令语
6、句。指令语句在汇编过程中被翻译、链接成相应的可执行的机器指令代码。如MOV、ADD等。伪指令语句是汇编控制命令,在汇编过程中实现数据定义、分配存储区、指示程序结果等功能,不产生任何目标代码。如SEGMENT、ASSUME等。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社DSEG SEGMENT ;数据段,给变量、数组指定数据,分配存储空间。A DB 01H B DB 02H C DB?DSEG ENDSSSEG SEGMENT STACK;定义堆栈段。DB 100 DUP(?)SSEG ENDSCSEG SEGMENT;代码段。ASSUME C
7、S:CSEG,DS:DSEG,SS:SSEG ;指定段功能。START:MOV AX,DSEG ;给数据段寄存器装初值。MOV DS,AX MOV AL,A ;实现A+BC ADD AL,B MOV C,AL MOV AH,4CH ;系统功能调用,软中断。结束程序返回DOS。INT 21HCSEG ENDS END START返回返回计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社(3)汇编语言的语法要素有标识符、保留字、变量、常量、标号、表达式等。标识符:程序中用于指定段名、变量名、符号常量名、标号名等的字符串。标识符的使用应符合命名规则,并注
8、意“见其名,知其义”。标识符的命名规则:由字母、数字、专用符号“?”、“”、“”、“$”、“_”等字符组成。数字不能作为首字符,“”只能作为首字符。有效字符为31个。保留字:保留字是汇编语言中预留的、具有固定用途的字符串。所有的寄存器名、指令及伪指令的助记符、运算符都属于保留字,编程时不允许作它用。如上述程序中的DB、MOV、SEGMENT、CX等。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社 变量:操作数在内存中的符号地址。程序中使用的所有变量都需要在数据段中用变量定义伪指令进行定义。变量名由程序员按标识符的命名规则命名。常量:常量是程序运
9、行中数值不变的量。有数值常量和符号常量。符号常量需使用相应的赋值伪指令定义。标号:标号是机器指令在内存中的符号地址。汇编语言程序中第一条指令、转移的目标指令和重复执行的指令前面都要加上一个标号,作为转移指令或循环指令的目的地址。标号由标识符和冒号组成。程序开始处的标号,需在代码段结束之后,加上“END 标号”,如“END START”。标号名也由程序员遵循标识符命名规则命名。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社 表达式:由常量、变量、标号及运算符构成的式子。分数值表达式和地址表达式。数值表达式由常量与运算符构成。运算符分三类:算术运算
10、符、逻辑运算符和关系运算符。算术运算符逻辑运算符关系运算符+(加法)-(减法)*(乘法)/(除法)MOD(模除)NOT(非)AND(与)OR(或)XOR(异或)SHL(左移)SHR(右移)EQ(等于)NE(不等于)LT(小于)GT(大于)LE(小于或等于)GE(大于或等于)说明:“/”运算结果为商的整数部分;关系运算符的结果为-1或0,当关系成立时,结果为-1(用补码表示),关系不成立时,结果为0。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社 地址表达式由常量、变量、标号、寄存器BP、BX、SI、DI等的内容和运算符构成,用于进行指令寻址。地
11、址表达式除可使用算术运算符、逻辑运算符和关系运算符外,还有一些专用的运算符。算术运算符逻辑运算符分离运算符:(段超越前缀)PTR(类型属性)THIS(定义类型)SEG(取段地址)OFFSET(取偏移地址)TYPE(取类型)LENGTH(取变量单元数)SIZE(取变量总字节数)HIGH(取高字节)LOW(取低字节)段超越前缀段超越前缀“:”。给变量、标号或地址表达式临时指定一个段属性。格式:段寄存器名:地址表达式示例:MOV AL,ES:1000H计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社类型运算符PTR。给变量、标号或地址表达式临时指定一个
12、类型。格式:类型 PTR 地址表达式示例:MOV AX,WORD PTR 1000H类型定义运算符THIS。指定变量、标号或地址表达式的类型。格式:标识符 EQU THIS类型示例:A EQU THISBYTE取段地址运算符SEG。产生其后变量或标号所在段的段地址。格式:SEG 变量(或标号)示例:MOV AX,SEG DATA计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社取偏移地址运算符OFFSET。产生其后变量或标号的偏移地址。格式:OFFSET 变量(或标号)示例:MOV BX,OFFSET DATA取类型运算符TYPE。产生其后变量或标
13、号的类型值。格式:TYPE 变量(或标号)示例:MOV BX,TYPE A变量类型类型值标号类型类型值BYTE(字节)WORD(字)DWORD(双字)QWORD(4字)TBYTE(10字节)124810NEARFAR-1-2计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社取变量单元数运算符LENGTH。产生其后变量所包含的单元数。运算结果取决于变量定义伪指令中第一个表达式。若变量定义伪指令中第一个表达式为重复子句“n DUP(数值表达式)”,则结果为重复因子n;否则结果为1。格式:LENGTH 变量示例:LENGTH DATADATA DB 3
14、DUP(4),01H,05H 运算结果为3。DATA DB 01H,3 DUP(4),05H 运算结果为1。取变量总字节数运算符SIZE。产生其后变量所包含的总字节数。格式:SIZE 变量示例:SIZE DATA定义“DATA DB 3 DUP(4),01H,05H”,运算结果为5。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社分离高字节运算符HIGH。产生其后运算对象的高字节。格式:HIGH 运算对象示例:MOV AL,HIGH 1234H(AL)=12H分离低字节运算符LOW。产生其后运算对象的低字节。格式:LOW 运算对象示例:MOV A
15、L,LOW 1234H(AL)=34H计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社(4)汇编语言程序中也允许使用注释。分号是汇编语言的注释符号,分号后面的文字直到行尾都是注释内容。(5)汇编语言程序结束,必须返回DOS操作系统,才能对程序进行编译和链接。返回DOS的最常用方法是使用4CH号系统功能调用。如:MOV AH,4CHINT 21H计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社二、汇编程序中常用的伪指令1变量定义伪指令 功能:为数据分配存储单元,同时为存储单元指定一个变量名。种类:DB
16、:字节变量定义伪指令DW:字变量定义伪指令DD:双字变量定义伪指令 格式:变量 DB(或DW、DD)一个或多个表达式示例1:DB 100 DUP (0);分配100B的存储空间,每个字节的值为0 示例2:DATA DB 13H,57H;定义两个B的数据区,内容是13H,57H 示例3:A DW 1357H;为变量A分配一个字空间,其中内容为1357H 计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社2段定义伪指令段定义伪指令的主要功能是指示汇编程序如何按段组织程序和使用存储器。(1)SEGMENT和ENDS伪指令 功能:用于对段结构进行定义,以将
17、程序分成若干逻辑段。格式:段名 SEGMENT段名 ENDS(2)ASSUME伪指令 功能:指定程序中定义的各个逻辑段的功能。格式:ASSUM 段寄存器:段名,段寄存器:段名计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社3赋值伪指令(1)EQU伪指令 功能:用数值或表达式定义标识符,以便在后面程序中引用。格式:标识符 EQU 表达式(或数值)例:COUNT EQU 6 ;使符号常量COUNT等于6。ADDR EQU ES:BXSI ;使ADDR等同于表达式ES:BXSI。(2)“=”伪指令 功能:与EQU基本相同,可以对同一标识符重新赋值,EQ
18、U不可以。格式:标识符=表达式(或数值)例:COUNT=6 COUNT=COUNT+1计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社6.1.3 上机步骤上机步骤汇编语言的上机过程一般分为编辑、汇编、链接三步。汇编语言编译软件主要有MASM、TASM和MCS51,以MASM为例。1 启动MASM编译器。(edit)2编辑汇编语言源程序(保存为(保存为Filename.asm)3汇编源程序,生成目标程序(masm Filename.asm)4.链接目标程序,生成可执行程序(link Filename.obj)5运行程序(Filename或Filen
19、ame.exe)注意:若程序中没有显示语句,则需通过DEBUG命令查看程序运行结果。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社6.2.1 指令格式指令格式指令包含操作码和操作数两部分。操作码:指出操作的内容,即要完成的是什么操作;操作数:指出操作的对象,可以是立即数、寄存器和存储器。根据操作数的多少,指令可分为零操作数指令、一操作数指令、二操作数指令、三操作数指令和多操作数指令。1零操作数指令零操作数指令 格式:操作码 操作:两种情况,一是指令中不需操作数,如空操作指令NOP、停机指令HLT等;二是指令的操作数是隐含在某个通用寄存器中,如十
20、进制数的调整指令DAA、DAS等。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社2一操作数指令一操作数指令 格式:操作码 A 操作:用OP表示操作,则一操作数指令可表示为OP(A)A,即将指令中指定的存储地址A或寄存器A中的操作数进行操作码所指定的运算后,结果送入地址A中。如增量指令INC、减量指令DEC等。注:(A)表示地址A中的内容。3二操作数指令二操作数指令 格式:操作码 A1,A2 操作:(A1)OP(A2)A1(或A2),即操作数A1与A2进行操作码所规定的操作后,结果存放在目的地址A1或A2中。计算机硬件技术基础计算机硬件技术基础李
21、桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社4三操作数指令三操作数指令 格式:操作码 A1,A2,A3 操作:(A1)OP(A2)A3,即将A1和A2中的两个源操作数进行操作码所规定的运算后,结果存入目的地址A3中。5多操作数指令多操作数指令在处理成批数据时,要用多操作数指令描述数据存放的首地址、长度及下标等信息。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社6.2.2 8086的寻址方式的寻址方式寻址方式:寻址方式:指令中操作数的表示方式。寻址寻址:在处理数据时,根据给出的或计算出的地址进行操作数的存取。8086的主要寻址方式的
22、主要寻址方式:立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、相对基址变址寻址等。一、立即寻址一、立即寻址指令中直接给出操作数的寻址方式。【例】MOV AL,14H14H为立即数,指令执行后,(AL)=14H。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社二、直接寻址二、直接寻址操作数在存储器中,指令中操作码后给出的是操作数的16位的偏移地址EA。寻址时,须先计算出操作数的物理地址,再按此访问存储器取出操作数。物理地址=段地址16偏移地址=3000162000=32000H32000H=8086,是操作数。指令执行
23、后(AX)=8086H。【例】MOV AX,2000H计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社三、寄存器寻址三、寄存器寻址指令中给出的是寄存器名,操作数在寄存器中的寻址方式为寄存器寻址。【例】MOV AX,BX操作数在寄存器BX中,指令执行后,(AX)=(BX),BX中的内容不变。四、寄存器间接寻址四、寄存器间接寻址操作数在存储器中,操作数的有效地址EA在基址寄存器BX、BP或变址寄存器SI、DI中。【例】MOV AX,BX计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社(BX):操作数的偏
24、移地址。段地址(DS)=3000H物理地址=段地址16(BX)=32000H指令执行后,(AX)=8086H。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社五、寄存器相对寻址五、寄存器相对寻址操作数的有效地址由一个基址或变址寄存器的内容加上指令中给出的8位或16位的位移量得到。即:物理地址=段地址16(寄存器)位移量【例】MOV AX,COUNTBX设(DS)=2000H,(BX)=1000H,COUNT=3000H,(24000H)=1058H。操作数的物理地址=2000H16+1000H+3000H=24000H指令执行后,(AX)=105
25、8H。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社六、基址变址寻址六、基址变址寻址操作数的有效地址是基址寄存器和变址寄存器的内容之和。【例】MOV AX,BXDI设(DS)=3000H,(BX)=1000H,(DI)=2000H操作数的物理地址=3000H16+1000H+2000H=33000H。七、相对基址变址寻址七、相对基址变址寻址操作数的有效地址等于基址寄存器内容、变址寄存器内容和指令中给出的8位或16位的位移量之和。【例】MOV AX,TABBXSI设(DS)=3000H,(BX)=1000H,(SI)=2000H,TAB=200H
展开阅读全文