数据表示现代计算机接口技术课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《数据表示现代计算机接口技术课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 表示 现代 计算机 接口 技术 课件
- 资源描述:
-
1、汇编语言汇编语言(8学时学时)第二节第二节 数据表示数据表示第一节第一节 基本概念基本概念 知知 识识 概概 述述 第三第三节节 例题及操作例题及操作 第四节第四节 汇编语言的基本元素汇编语言的基本元素 第五节第五节 说明性语句说明性语句 第六节第六节 微处理器的基本指令集微处理器的基本指令集第七节第七节 COM文件的编程文件的编程 第八节第八节 宏宏 第九节第九节 算术协处理器算术协处理器 退 出 第十节第十节 CPU扩展指令集扩展指令集 第十一节第十一节 Win32汇编语言的编程汇编语言的编程第一节第一节 基本概念(基本概念(4学时)学时)3.1.1 汇编语言的由来汇编语言的由来退 出汇编
2、语言:汇编语言的语句和其语法规则。一、机器指令一、机器指令 机器指令:它是计算机能识别的一组二进制代码,用于指出计算机所要进行的操作以及操作对象,是在设计CPU时,就已确定的编码。例如:1.把数“16”送到寄存器AL中,用下列机器指令实现:10110000 00010000 操作码 操作数3.1.1 2.把数“4”与寄存器AL的内容相加,结果仍放在AL中,用下列机器指令实现:00000100 00000100 操作码 操作数 3.把寄存器AL的内容送到地址为6的单元中,用下列机器 指令实现:10100010 00000110 00000000 操作码 操作数地址 不同的机器操作,由不同的代码指
3、令实现。一个计算机能够执行的所有代码指令的集合,就是该计算机的指令系统。退 出3.1.1二、机器语言与机器语言程序二、机器语言与机器语言程序 1.机器语言:把指令系统及书写代码程序的语法规则称为机器语言。2.机器语言程序:用机器语言编写的程序称为机器语言程序。三、汇编语言三、汇编语言 由于机器指令难于使用,人们采用符号代替二进制代码,于是产生了符号化的汇编语句。例如:机器指令 汇编语句10110000 00010000 MOV AL,1600000100 00000100 ADD AL,4 10100010 00000110 00000000 MOV ADDR6,AL退 出3.1.1 四、高级
4、语言四、高级语言 这里仍用相同的两个数的加法运算为例,用机器语言、汇编语言、高级语言实现的语句如下:机器指令 汇编语句 高级语言 10110000 00010000 MOV AL,16 00000100 00000100 ADD AL,4 ADDR6=16+4 10100010 00000110 00000000 MOV ADDR6,AL 1.与汇编语言相比,高级语言有两个主要优点:使用方便。易读、易写、易调试,因而容易学习,编程速度也快。便于移植。程序很容易从一种计算机换到另一种计算机上运行。退 出3.1.1 2.与高级语言相比,汇编语言的优点是:效率高。其程序比相同功能的高级语言程序所占
5、的内存少,运行速度快。能将计算机的全部功能提供给用户使用。这是因 为,汇编语言能最直接最充分地描述计算机语言,使 用汇编语言就是使用机器语言。五、汇编语言的应用领域五、汇编语言的应用领域 要求执行效率高,反应快的领域,如操作系统内 核、工业控制、实时系统;系统频繁使用的子程序或程序段;与硬件资源密切相关的软件开发,如设备驱动程 序等;受内存容量限制的应用领域,如小型控制仪器、仪表。退 出3.1.2 3.1.2 汇编程序汇编程序 汇编程序:它能把用汇编语言编写的源程序翻译成CPU能 识别的机器指令序列。这里,称该翻译程序为 汇编程序。图3.1是一次翻译过程的示意图。退 出第二节第二节 数据表示(
6、数据表示(2学时)学时)3.2.1 十六进制数及十六进制数及Intel惯例惯例退 出一、十六进制数一、十六进制数 十六进制数是逢十六进1位,每一位有16种状态,用0,1,2,9,A,B,C,D,E,F表示。如果十六进制数是以字符开头,为了与字符串区别,须在十六进制数的开头加数码0。3.2.1 二、二、IntelIntel存数的惯例存数的惯例 数据在内存中的存放有两种不同的格式:Big-Endian格式和Little-Endian格式。在Big-Endian格式中,数据的存放原则是:高地址存放低字节,低地址存放高字节。这种存储格式如图3.2所示。在Little-Endia格式中,数据的存放原则是
7、:低地址存放低字节,高地址存放高字节。这种存储格式如图3.3所示。Intel芯片的是按Little-Endia格式存储数据。退 出3.2.2 3.2.2 定点微处理器处理的数据类型定点微处理器处理的数据类型对于Intel系列的8086 CPU能够处理4种类型的数据。一、无符号二进制数一、无符号二进制数 1.8位无符号二进制数 形式:数值 其数值范围:0255(28-1)。2.16为无符号二进制数 形式:数值 其数值范围:065535。3.32为无符号二进制数 形式:数值退 出3.2.2 二、带符号二进制数二、带符号二进制数 带符号的二进制数,其左边的一位(最高位)为符号位,“0”表示正,“1”
8、表示负。带符号的二进制数用补码来表示。1.8位有符号二进制数 形式:S 数码 其数值范围:-128(-27)+127(+(27-1)。2.16位有符号二进制数 15 0 形式:S 数码 其数值范围:-32 768(-215)+32 767(+(215-1)。退 出3.2.2 3.32位有符号二进制数 31 0 形式:S 数码 其数值范围:-2147483648(-231)+2147483647(+(231-1)。三、无符号十进制数三、无符号十进制数BCDBCD码码 无符号十进制数BCD(Binary-Coded Decimal)每位数用4位二进制数表示。显然,4位二进制数中只有09有效。这种数
9、称为BCD码,它的存放形式有两种。退 出3.2.2 1.无符号组合式BCD码 7 0 形式:十位数 个位数 一个字节存放两位十进制数。字节的十进制数 范围:099。例如,34的组合式BCD码为:7 0 0011 0100 书写为:34H 例如,754组合式BCD码为:7 0 7 0 0000 0111 0101 0100 书写为:754H退 出3.2.2 2.2.无符号分离式无符号分离式BCDBCD码码 7 0 形式:uuuu 数码 一个字节存放一位十进制数。字节的十进制数 范围:09。其中u表示任意。例如,34的无符号分离式BCD码形式为:7 0 7 0 uuuu 0011 uuuu 010
10、0 若u位为“0”,书写为:0304H 退 出3.2.2 四、字符数据四、字符数据 用单引号括起来的字符成为字符数据。每个字符占1个字节。在计算机中用该字符对应的ASCII表示。例如,字符数据ABCD在内存中用十六进制表示为 41424344H,可记成:ABCD=41424344H 又如字符数据53,用十六进制表示则为3533H,可记成:53=3533H 寄存器或内存中二进制数码按哪一种数据来理解,其值可能是不同的。例如表3.2中有4个字节的数据,分别按5种数据类型来理解,其值就各不相同。退 出第三节第三节 例题及操作例题及操作 为了较生动地由浅入深地讲述语法,也为了使读者能较快地上机实践,我
11、们这里先介绍一个用汇编语言编写的完整段源程序及其相应的简化段源程序,并简要说明汇编语言程序的上机操作步骤。退 出3.3.1 例题简介例题简介 源程序由语句组成,汇编语句一般可分为三部分,其 一般形式为:名字 指令操作符 操作数1,操作数2,操作数3;注释例3-1计算Z=(X-Y+3),其中X=10,Y=4。汇编语言对大小写不敏感,但是为了区分保留字与标识符,本例中把保留字用大写表示,标识符用非大写标识符表示,以示区分。退 出3.3.1 一、名字与指令操作符一、名字与指令操作符 1.名字:其定义类似于高级语言中的标识符的概念,由用户给出。2.指令的操作符:表示指令的主要操作或功能,通常分为伪操作
12、符与操作符两大类。1)伪操作符:由汇编程序执行的操作。2)操作符:由CPU执行的操作。二、操作数部分二、操作数部分 1.两操作数语句 形式:标号:操作符 目标操作数,源操作数退 出3.3.1 功能:目标操作数(目标操作数)操作(源操作数)操作数可以是变量、寄存器、段名或数据。2.单操作数语句 形式:标号:操作符 操作数 功能:对单个操作数进行操作符规定的操作。这里的操作数同以上说明。3.无操作数语句 形式:标号:操作符 功能:执行操作符规定的操作。从例子可以看出,汇编语言源程序由分段组成。该程序有3个分段。第1个分段是堆栈段,第二个分段是数据段,第3个分段式程序段。退 出3.3.2 3.3.2
13、 上机操作步骤上机操作步骤 汇编语言的运行分下列3个步骤:步骤1:编辑源程序 首先是进入编辑程序,如EDIT.COM,记事本及写字板等编辑软件,键入源程序,正确输入完成后,命名存盘,其中.ASM是汇编程序规定的源文件的扩展名。步骤2:汇编源程序及连接目标程序 汇编语言源程序可适用下列简化命令进行源程序编 译:MASM FILENAME.ASM 如果系统显示出有语法错误,则应在进入编辑程序进行修改。如果系统显示出下列信息:WARNING SEVERE ERRORS ERRORS 00退 出3.3.2 则表示源程序无语法错误,已完成汇编,并得到一个目标文件FILENAME.OBJ。这是可用下列命令
14、进行连接:LINK FILENAME.OBJ 如果有错误信息,则还需要进入编辑程序进行修改。如果无错误,则产生FILENAME.EXE文件。步骤3:运行.EXE文件 运行FILENAME.EXE文件,程序输出结果为9。如果程序结果有误,则可进入DEBUG或CV调试系统中运行、调试。退 出第四节第四节 汇编语言的基本元素(汇编语言的基本元素(2 2学时)学时)3.4.1 3.4.1 符号符号退 出源程序中的符号有两类:一类是保留字(事先由汇编程序约定的,它们不用定义与说明,也不能更改);另一类是名字(由用户定义)。一、保留字一、保留字 1.寄存器名称的约定 2.操作符的约定 3.伪操作符的约定3
15、.4.1 二、名字二、名字 定义名字必须遵守下列规则:名字只能由下列字符组成:字母AZ 数字09 符号$?._ 数字不能作为名字第一个字符。名字的长度可达31个字符,超过部分的字符被系统忽略。符合上面规定的字符组合并且不与任何保留字相同的字符串被认为是合法的名字,否则是非法的名字。常见的名字有以下几种。退 出3.4.11.标号及其属性 标号:是一个冒号“:”引入的名字,它代表所定义语句对应代码指令的开始地址。该地址形式为:该代码段的段地址:偏移地址 标号有3个属性:1)标号的段值属性:标号的段值属性就是标号所在段的段地址。标号的段值属性可写成如下形式:SEG 标号 如SEG START就是ST
16、ART所在代码段的段地址。退 出3.4.1 2)标号的偏移属性:标号的偏移属性是指标号所处位置的偏移地址。标号的偏移属性可写成如下形式:OFFSET 标号 如OFFSET START就是START所在代码段的偏移地址。3)标号的类型属性:标号有FAR与NEAR之分,这个特性称为标号的类型属性,其形式为:TYPE 标号 该属性系统也定义了一个类型值:若为近标号,则(TYPE 标号)=-1 若为远标号,则(TYPE 标号)=-2 对某段来说,远标号表示该标号的定义不在本段。近标号表示该标号的定义在本段。因此,标号的类型是相对的。退 出3.4.1 标号的默认类型为NEAR型,标号的类型是相对的,也就
17、是说,标号的类型是在指令引用它时才确定下来的。2.变量及属性 变量是用数据伪操作符定义的名字。一般数据用下列伪操作符定义:DB每个数据为1个字节。DW每个数据为1个字,即2个字节。DD每个数为1个双字,即4个字节。DQ每个数为8个字节。DT每个数为10个字节。变量有两重含义,它一方面代表所表示的变量的值,另一方面表示变量所占空间的首地址。该地址形式为:所在段的段地址:所在段的偏移地址退 出3.4.1 变量有5个属性:1)变量的段属性 变量的段值属性是指变量定义所在段的段地址。变量的段值属性可写成如下形式:SEG 变量 2)变量的偏移属性 变量的偏移属性是指变量所处位置的偏移地址。变量的偏移属性
18、可写成如下形式:OFFSET 变量 3)变量的类型属性 变量所表示的数据元素的长度(以字节为单位)为变量的类型,其形式为:TYPE 变量 因而“TYPE 变量”这个表达式的值是110之间的数字。退 出3.4.1 4)变量的长度属性 变量所指数据元素的个数为变量的长度属性,其形式为:LENGTH 变量 但是变量的元素个数只对单项的重复子句有意义,对其它变量,LENGTH 变量=1。5)变量的容量属性 变量的容量属性是指变量所表示数据所占空间的字节和,其形式为:SIZE 变量 但是变量的容量属性也只对单项的重复子句有意义,实际上,SIZE 变量的值也可用下式计算:SIZE 变量=(LENGTH 变
19、量)(TYPE 变量)退 出3.4.1 3.段名 用伪操作符SEGMENT定义的名字为段名。段定义形式为:段名SEGMENT 段名ENDS 段名是所定义段的符号化段地址。退 出3.4.1 4.过程名 用伪操作符PROC定义的名字成为过程名。过程的定义形式为:过程名PROC 类型过程名ENDS 过程名与标号类似,只是远、近过程名的类型是在过程的定义时由“类型”参数决定,类型为“FAR”时为远过程,类型为“NEAR”时为近过程。过程名的默认类型为近过程。远过程名是过程所处位置首地址的符号化地址,表示形式为:段地址:偏移地址 近过程名则是过程所处位置首地址的偏移地址的符号化偏移地址。退 出3.4.2
20、 3.4.2 常数常数 数值常数 汇编语言中的常数 字符串常数 属性常数 当前地址数 一、数值常数一、数值常数 数值常数分为整数常数和实数常数。1.整数常数 按其基数的不同,可以有二进制数B、八进制数Q、十进制数D、十六进制数H等几种不同的表示形式,汇编语言中采用不同的后缀加以区分。当一个数值数据后面没有后缀时,将默认为十进制数。退 出3.4.2 2.实数常数 实数常数在机内的表示有十进制和十六进制两种。1)十进制实数 它是一个带小数点的十进制数或带方幂的十进制数。例5.89,2.0,5.1E6,其中5.1E6=5.1106 2)十六进制实数 用R替换H作标记的十六进制实数,为实数在机内的表示
21、形式。它与十六进制数一样必须以数字作首字符。例如:42C88000R是IEEE格式编码的短实数100.25在机内的表示。0C1C90000R是IEEE格式编码的短实数-25.125在机内的表示。退 出3.4.2 二、字符串常数二、字符串常数 字符串常数是由单引号“”括起来的一串字符。例如:Assmbly Language and Programming23退 出3.4.2 三、属性常数三、属性常数 以上讲的名字的属性,都可以作为常数使用。1.段值 形式:SEG 标号或变量 2.偏移值 形式:OFFSET 标号或变量 3.变量类型值 形式:TYPE 变量 4.变量长度值 形式:LENGTH 变量
22、 5.字节总和值 形式:SIZE 变量退 出3.4.2 四、当前地址数四、当前地址数 汇编语言允许把某些语句所处内存地址取出使用。一种是$代表当前位置的偏移地址。一般有两种方式 另一种是THIS指示当前位置的地址及 其类型。形式:变量 THIS 类型。类型为“BYTE”时,表示所处位置是字节变量的地址。类型为“WORD”时,表示所处位置是字变量的地址。类型为“DWORD”时,表示所处位置是双字变量的地址。类型为“NEAR”时,表示所处位置是本段标号的地址。类型为“FAR”时,表示所处位置是远标号地址。退 出3.4.3 3.4.3 表达式表达式 表达式:由数据和运算符组成,汇编语句在表达式中允许
23、使用的数据有数字和标识符,并且限制表达式在整数范围内使用。汇编语言表达式运算法则同高级语言一样,即:首先计算高级优先级的运算符。相同优先级的运算符按从左到右的顺序计算。括号可以改变运算符的优先级,即应最先考虑括号中的运算符。汇编语言的表达式不能构成单独语句。算术运算符 运算符 逻辑运算符 关系运算符。退 出3.4.3一、算术运算符及移位运算符一、算术运算符及移位运算符 1.*,/,MOD,SHL,SHR 形式:数据1*数据2或数据1/数据2 *与/是一般乘除法。形式:数据1 MOD 数据2 其值为数据1/数据2的余数。形式:数据1 SHL 数据2 其值为数据1左移数据2位的值。形式:数据1 S
24、HR 数据2 其值为数据1右移数据2位的值。退 出3.4.3 2.+,-+,-为一般的加、减法。算术运算符应用于数字数据,结果也是数字。当算术运算符应用于存储器即地址数据时,其规则就更加严格:只有当结果有明确的、有意义的物理解释时,这些运算才有效的。二、关系运算符二、关系运算符 形式:数据1 EQ 数据2 判断数据1 等于 数据2?形式:数据1 NE 数据2 判断数据1 不等于 数据2?退 出3.4.3 形式:数据1 LT 数据2 判断数据1 小于 数据2?形式:数据1 LE 数据2 判断数据1 小于等于 数据2?形式:数据1 GT 数据2 判断数据1 大于 数据2?形式:数据1 GE 数据2
25、 判断数据1 大于等于 数据2?关系运算符的两个数据,或者都是 数字的,或 者是同一段的存储器地址。退 出3.4.3 三、逻辑运算符三、逻辑运算符 形式:NOT 数据 表示把数据取反。形式:数据1 AND 数据2 其值为数据1与数据2进行逻辑与运算。形式:数据1 OR 数据2 其值为数据1与数据2进行逻辑或运算。形式:数据1 XOR 数据2 其值为数据1与数据2进行逻辑异或运算。逻辑运算符的数据只能是数字的。退 出第五节第五节 说明性语句(说明性语句(2 2学时)学时)退 出 汇编语言的语句有两种基本类型,即执行性语句与说明性语句。执行性语句也就是CPU指令系统中的指令。说明性语句由伪操作符定
展开阅读全文