版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1汇编语言设计实践汇编语言设计实践2汇编语言设计实践汇编语言设计实践1.1. 课程学时:课程学时:322. 2. 先修课程:先修课程:计算机导论、计算机组织与结构3. 成绩评定办法:成绩评定办法:考勤20%+实验报告50%+成果展示30%4. 参考教材:参考教材:汇编语言(第2版)王爽著 清华大学出版社3第一部分第一部分 汇编语言介绍汇编语言介绍 1.汇编语言的概念汇编语言的概念 2.汇编语言的特点汇编语言的特点3.进位计数制及其相互转换进位计数制及其相互转换4.带符号数的表示带符号数的表示5.字符的表示字符的表示 6.基本逻辑运算基本逻辑运算 41.1 汇编语言的概念汇编语言的概念 计算机程
2、序设计语言可分为计算机程序设计语言可分为机器语言机器语言、高级高级语言语言和和汇编语言汇编语言三类。三类。 (1) 机器语言机器语言 机器语言就是直接把控制计算机的机器语言就是直接把控制计算机的命令命令和和各各种数据种数据用用二进制数码二进制数码表示的一种程序设计语言。表示的一种程序设计语言。 例例 要实现将寄存器要实现将寄存器AH的内容与数的内容与数10相加,结果相加,结果再送回到寄存器再送回到寄存器AH中。中。 1011 0100 0000 1010 用机器语言实现上述操作的代码:用机器语言实现上述操作的代码:5优点优点 机器语言最直接地表示了计算机内部的基操机器语言最直接地表示了计算机内
3、部的基操作,用它编制的程序在计算机中运行的效率最高作,用它编制的程序在计算机中运行的效率最高。即运行速度最快,程序长度最短。即运行速度最快,程序长度最短。 缺点缺点 用二进制数表示的内容既不便于记忆又难于用二进制数表示的内容既不便于记忆又难于阅读。阅读。 6(2) 高级语言高级语言 高级语言将计算机内部的操作细节屏蔽起高级语言将计算机内部的操作细节屏蔽起来,用户不需要知道计算机内部数据的传送和来,用户不需要知道计算机内部数据的传送和处理的细节,使用类似于自然语言的一些语句处理的细节,使用类似于自然语言的一些语句来编制程序,完成指定的任务。来编制程序,完成指定的任务。 特点特点:程序设计简单,但
4、程序效率较机器语言低。:程序设计简单,但程序效率较机器语言低。 7(3) 汇编语言汇编语言 (i)定义)定义 为了便于记忆和阅读,就出现了使用字母为了便于记忆和阅读,就出现了使用字母和符号(汇编指令、伪指令等)来表示机器语和符号(汇编指令、伪指令等)来表示机器语言的命令,用十进制数或十六进制数等来表示言的命令,用十进制数或十六进制数等来表示数据,这样的面向机器的程序设计语言就称为数据,这样的面向机器的程序设计语言就称为汇编语言。汇编语言。8 (ii)汇编语言程序与机器语言程序的关系)汇编语言程序与机器语言程序的关系例如:汇编语句例如:汇编语句 MOV DS,AX 对应机器指令为:对应机器指令为
5、: (iii)不同类型计算机有不同的机器指令系统和汇编)不同类型计算机有不同的机器指令系统和汇编语言描述语言描述 为了学习和使用某种计算机的汇编语言,必须熟为了学习和使用某种计算机的汇编语言,必须熟悉计算机的内部组成结构。但并非要掌握组成计算机悉计算机的内部组成结构。但并非要掌握组成计算机系统的全部硬件,只需掌握用汇编语言编制程序时所系统的全部硬件,只需掌握用汇编语言编制程序时所涉及到的那些硬件的结构和功能。涉及到的那些硬件的结构和功能。 一条汇编语言程序的语句与一条机器语言指令一条汇编语言程序的语句与一条机器语言指令对应对应,汇编语言程序与机器语言程序效率相同汇编语言程序与机器语言程序效率相
6、同. 8ED8(二进制数表示为:(二进制数表示为:10001110 11011000)9第一部分第一部分 汇编语言介绍汇编语言介绍 1.汇编语言的概念汇编语言的概念 2.汇编语言的特点汇编语言的特点3.进位计数制及其相互转换进位计数制及其相互转换4.带符号数的表示带符号数的表示5.字符的表示字符的表示 6.基本逻辑运算基本逻辑运算 101.2 汇编语言的汇编语言的 特点特点 1. 学习和使用汇编语言可以从根本上认识、理学习和使用汇编语言可以从根本上认识、理解计算机的工作过程。解计算机的工作过程。 通过用汇编语言编制程序可以更清楚地了解计通过用汇编语言编制程序可以更清楚地了解计算机是如何完成各种
7、复杂的工作。在此基础上,算机是如何完成各种复杂的工作。在此基础上,程序设计人员能更充分地利用机器硬件的全部功程序设计人员能更充分地利用机器硬件的全部功能,发挥机器的长处。能,发挥机器的长处。 2. 在计算机系统中,某些功能必须用汇编语言程序在计算机系统中,某些功能必须用汇编语言程序来实现。来实现。 如:机器自检、系统初始化、实际的输入输出设备的如:机器自检、系统初始化、实际的输入输出设备的操作等。操作等。11在某些要求节省内存空间和提高程序运行速度的在某些要求节省内存空间和提高程序运行速度的应用场合。如实时过程控制等,常常用汇编语言应用场合。如实时过程控制等,常常用汇编语言来编制程序。来编制程
8、序。 3. 汇编语言程序的效率高于高级语言程序汇编语言程序的效率高于高级语言程序 “效率效率”有两个方面的含义:程序的目标代码长度有两个方面的含义:程序的目标代码长度和运行的速度。和运行的速度。12汇编语言的特点汇编语言的特点汇编语言与处理器密切相关,汇编语言程序的通用汇编语言与处理器密切相关,汇编语言程序的通用性、可移植性较差性、可移植性较差汇编语言功能有限、涉及硬件细节,编写繁琐,调汇编语言功能有限、涉及硬件细节,编写繁琐,调试、维护困难试、维护困难汇编语言本质上就是机器语言,可以直接、有效地汇编语言本质上就是机器语言,可以直接、有效地控制计算机硬件,易于产生速度快、容量小的高效率控制计算
9、机硬件,易于产生速度快、容量小的高效率目标程序目标程序 在本课程中,将以Intel 8086/8088微处理器及其汇编语言为例,初步掌握8086/8088宏汇编语言程序设计的基本方法和技巧。131.汇编语言的概念汇编语言的概念 2.汇编语言的特点汇编语言的特点3.进位计数制及其相互转换进位计数制及其相互转换4.带符号数的表示带符号数的表示5.字符的表示字符的表示 6.基本逻辑运算基本逻辑运算 第一部分第一部分 汇编语言介绍汇编语言介绍 141.3 进位计数制及其相互转换进位计数制及其相互转换 一一. 进位计数制进位计数制 使用一定个数的数码的组合来表示数字,这种使用一定个数的数码的组合来表示数
10、字,这种表示方法称为进位计数制。由于可以使用的数码表示方法称为进位计数制。由于可以使用的数码的个数不同,就有不同的进位计数制。的个数不同,就有不同的进位计数制。 如十进制数,用如十进制数,用0、19十个数码的组合来表示数十个数码的组合来表示数字。每个数码排在不同位置,所表示的数值大小字。每个数码排在不同位置,所表示的数值大小不相同。不相同。 例如:例如:222从右边开始从右边开始,第一个第一个2表示表示2个个1,第二,第二个个2表示有表示有2个个10,第三个,第三个2表示有表示有2个个100. 15mniiimmnnnnkkkkkkkD1010.101010.101022110011基数基数权
11、权 逢十进一逢十进一十进制十进制 借一当十借一当十90ik对于十进制数对于十进制数D,可表示为,可表示为将各个位置上所表示的数值权重称为位权将各个位置上所表示的数值权重称为位权, 简称简称权。权。 每个数位上能使用不同数码的个数称为基数。每个数位上能使用不同数码的个数称为基数。 16mniiimmnnnnRkRkRkRkRkRkRkS.22110011基数基数权权 逢逢R进一进一R进制进制 借一当借一当R10Rki对于任意对于任意R进制的进制的S,可表示为,可表示为17 在计算机中主要采用二进制数,因为它在在计算机中主要采用二进制数,因为它在计算机中最容易表示和存储,且适合于逻辑值计算机中最容
12、易表示和存储,且适合于逻辑值表达与运算。表达与运算。 对人来说二进制不便于书写和阅读,因此书写时对人来说二进制不便于书写和阅读,因此书写时常使用常使用8进制和进制和16进制。进制。二进制与二进制与8进制、进制、16进制之间有非常简单的转换关进制之间有非常简单的转换关系。系。3位二进制数与一位位二进制数与一位8进制数对应,进制数对应,4位二进制位二进制数与一位数与一位16进制数对应进制数对应。 18mniiimmnnnnkkkkkkkS22.222.2222110011基数基数权权321012321212021202121011.1101二进制数二进制数1101.011,可表示为,可表示为对于二
13、进制数对于二进制数S,可表示为,可表示为 逢二进一逢二进一二进制二进制 借一当二借一当二1 , 0ik19 在书写不同进位计数制数时,为了区别,常在书写不同进位计数制数时,为了区别,常在数的尾部用一个字母来表示。在数的尾部用一个字母来表示。 B(Binary) 二进制数二进制数O (Octal) 八进制数八进制数D (Decimal) 十进制数十进制数H (Hexadecimal) 十六进制数。十六进制数。如未使用任何字母,则默认表示是十进制数。如未使用任何字母,则默认表示是十进制数。 例如十进制例如十进制205可以表示为:可以表示为:205 = 1100 1101B = 205D = 0CD
14、H = 315O20二二. 各种数制间的相互转换各种数制间的相互转换 由于二进制与八进制和十六进制间的转换很简单,由于二进制与八进制和十六进制间的转换很简单,下面主要讨论二进制与十进制之间的相互转换。下面主要讨论二进制与十进制之间的相互转换。 1. 十进制整数转换为二进制数十进制整数转换为二进制数 有两种转换方法有两种转换方法: (1)减权定位法减权定位法 (2)除基取余法除基取余法 (1)减权定位法)减权定位法l从二进制数高位起,依次用待转换的十进制数与各从二进制数高位起,依次用待转换的十进制数与各位权值进行比较;位权值进行比较;l如够减,则该数位系数如够减,则该数位系数Ki=1,同时减去该
15、位权值,同时减去该位权值,余数作为下一次比较的值;余数作为下一次比较的值;l如不够减,则如不够减,则Ki=0 。l直到余数为直到余数为0为止为止21例:将例:将325转换为二进制数,直到余数为转换为二进制数,直到余数为0。首先确定二进制数的最高位首先确定二进制数的最高位因为因为29(512)32528(256)。因此从。因此从K8位开始比较。位开始比较。 减数比较减数比较 Ki 对应二进制数对应二进制数325-256=69 K8 169128 K7 069-64=5 K6 1532 K5 0516 K4 058 K3 05-4=1 K2 112 K1 01-1=0 K0 1所以所以 325D=
16、101000101B 2200111122.22kkkkSnnnn2)2.22(2001211kkkkSnnnn商商如果余数为如果余数为0,则,则k0为为0。如果余数为如果余数为1,则,则k0为为1余数余数对于任意的十进制数对于任意的十进制数S可用二进制表示为可用二进制表示为上式两边同除以基数上式两边同除以基数2(2) 除基取余数除基取余数 23 将十进制数除以基数将十进制数除以基数2,其余数为二进制数的最,其余数为二进制数的最低位,再用其商除低位,再用其商除2,其余数为次低位,反复做下,其余数为次低位,反复做下去,直到商去,直到商0. 这种转换方法同样适合于其它进制数之间的转换。这种转换方法
17、同样适合于其它进制数之间的转换。 除基除基余数余数Ki2 3252 1622 812 402 202 102 52 22 10101000101K0K1K2K3K4K5K6K7K8242.十进制小数转换为二进制数十进制小数转换为二进制数 例例 将十进制数将十进制数0.645转换为二进制数转换为二进制数 (1) 减权定位法减权定位法 转换时应根据程序要求的精度或计算机的字长来确转换时应根据程序要求的精度或计算机的字长来确定二进制的位数定二进制的位数.减权比较减权比较Ki对应二进制数对应二进制数0.645-0.5 =0.145 K-1 10.1450.25 K-2 00.145-0.125=0.0
18、2 K-3 10.020.0625 K-4 00.020.03125 K-5 00.02-0.015625 K-6 1所以所以 0.645D=0.101001B25nnnnkkkkS22.22) 1() 1(2211)22.2(2) 1() 2() 1(121nnnnkkkkS(2)乘基取整法)乘基取整法 两边同时乘以基数两边同时乘以基数226例例 将将0.8125D转换为二进制数转换为二进制数乘以基数乘以基数 Ki 整数部分整数部分 0.812521.625 K-1 10.62521.25 K-2 10.2520.5 K-3 00.521. K-4 1一直计算到无小数部分为止一直计算到无小数
19、部分为止所以所以 0.8125D0.1101B273. 二进制整数转换为十进制数二进制整数转换为十进制数 (1)按权相加法)按权相加法 例例 1 0100 0101B1281261221202566441325D28(2)逐次乘基相加法)逐次乘基相加法021012312012110011112.)2)2)2(.(.2)2).22(2).22(22.22kkkkkkkkkkkkkkkkknnnnnnnnnnnnnnn1 0 1 0 0 0 1 0 1324 222222223252410204080162101000101=325D294. 二进制小数转换为十进制数二进制小数转换为十进制数(1)
20、按权相加法)按权相加法例例 0.101001B= 12-112-312-60.5+0.125+0.01560.640625D30(2)逐次除基相加法)逐次除基相加法转换从最低位开始转换从最低位开始2).)2)2)2(.(2.2222.21)2()1(11)1()1()1()1(11kkkkkkkkkknnnnnnnnnnn例例 0. 1 0 1 0 0 12222220.101001B0.640625D0.640625 0.28125 0.5625 0.1250.250.5315. 二进制与八进制和十六进制间的转换二进制与八进制和十六进制间的转换二进制与八进制和十六进制之间的对应关系很简单:二
21、进制与八进制和十六进制之间的对应关系很简单:三位二进制数对应一位八进制数,四位二进制数对三位二进制数对应一位八进制数,四位二进制数对应一位十六进制数。应一位十六进制数。例如:例如:10100010B2所以所以 10100010B=242O10100010B = 1010 0010BA 2所以所以 10100010B = A2H=0A2H=010 100 010B24321.4 带符号数的表示带符号数的表示 在一般算术表示中使用在一般算术表示中使用”+”和和”-“来表示正数与负数,而来表示正数与负数,而在计算机中使用在计算机中使用”0”和和”1”来表示正数和负数。来表示正数和负数。 用用+或或-
22、表示正负的数叫真值。用表示正负的数叫真值。用0或或1表示正负的数叫机器数。表示正负的数叫机器数。 带符号的机器数可以用原码、反码和补码三种不同码制来带符号的机器数可以用原码、反码和补码三种不同码制来表示。一般计算机中大多采用补码表示。表示。一般计算机中大多采用补码表示。 一、原码表示一、原码表示 二进制数的最高位表示符号,二进制数的最高位表示符号,0表示正,表示正,1表示负。数值表示负。数值 部分部分用二进制数绝对值表示用二进制数绝对值表示 33 8位二进制数原码的最大数为位二进制数原码的最大数为01111111(+127) 最小数为最小数为11111111 (-127) 8位二进制数表示范围
23、:位二进制数表示范围:127X+1270的原码有两种表示形式的原码有两种表示形式:00000000和和10000000(+0和和-0) 二、补码的表示二、补码的表示 1.补码的定义补码的定义 带符号数带符号数X的补码表示的补码表示X补补定义为:定义为:X补补M+X (Mod M) 其中模数其中模数M根据机器数的位数而定,如位数为根据机器数的位数而定,如位数为8则则M=28 用补码表示的机器数,符号位仍然表示数的符号:用补码表示的机器数,符号位仍然表示数的符号:0为正为正,1为为负。对于正数,补码与原码相同,对于负数需要进行变换。负。对于正数,补码与原码相同,对于负数需要进行变换。 34 2.由
24、真值、原码变换为补码由真值、原码变换为补码 由于正数的原码与补码相同,下面讨论负数的变换方法。由于正数的原码与补码相同,下面讨论负数的变换方法。 负数的真值变换为补码的方法:将各位变反(负数的真值变换为补码的方法:将各位变反(0变变1,1变变0)然后在最低位加然后在最低位加1.负数的原码变换为补码:保持符号位不变,其余各位变反,负数的原码变换为补码:保持符号位不变,其余各位变反,最低位加最低位加1。例例 将将59变换为补码变换为补码真值真值 00111011 B变反变反 11000100 B加加1 11000101 B所以所以 -59补补11000101 B原码原码 10111011 B变反变
25、反 11000100 B加加1 11000101 B353.补码数的表示范围补码数的表示范围当位数为当位数为8时,最大补码为时,最大补码为01111111B=+127补补 最小补码为最小补码为10000000B=-128补补0的补码只有一个,的补码只有一个, 0补补=00000000B,而,而10000000B=-128补补 11111111B=-1补补对于对于16位数,则补码表示范围为位数,则补码表示范围为-32768+32767 4. 补码的加减运算补码的加减运算 规则:规则:X+Y补补=X补补+Y补补 X-Y补补=X补补Y补补=X补补+-Y补补36(1)加法运算:)加法运算:X+Y例例1
26、 X=74D Y=41DX补补01001010B Y补补00101001B01001010B00101001B01110011B所以所以 X补补Y补补01110011B115补补例例2 X=74D Y=-41DX补补01001010B Y补补11010111B01001010B11010111B00100001B1自动自动舍去舍去所以所以 X补补Y补补00100001B33补补37例例 3 X=-74D Y=41DX补补10110110B Y补补00101001B10110110B00101001B+11011111B所以所以 X补补Y补补11011111B-33补补例例4 X=-74D Y=
27、-41DX补补10110110B Y补补11010111B10110110B11010111B+10001101B1自动自动舍去舍去所以所以 X补补Y补补10001101B=-115补补38(2) 减法运算减法运算例例5 X=74D Y=41DX补补01001010B Y补补00101001B -Y补补=11010111B01001010 B11010111 B00100001 B1自动自动舍去舍去所以所以 X补补Y补补X补补Y补补00100001B33补补例例6 X=74D Y=41DX补补01001010B Y补补11010111B -Y补补=00101001B01001010B00101
28、001B01110011B1自动自动舍去舍去所以所以 X补补Y补补X补补Y补补01110011B115补补39例例7 X=-74D Y=41DX补补10110110B Y补补00101001B -Y补补=11010111B10110110B11010111B+10001101B1自动自动舍去舍去所以所以 X补补Y补补X补补Y补补10001101B-115补补例例8 X=-74D Y=-41DX补补10110110B Y补补11010111B -Y补补=00101001B10110110B00101001B+11011111B1自动自动舍去舍去所以所以 X补补Y补补X补补Y补补11011111B
29、-33补补401.5 字符的表示字符的表示 在计算机内部,各种字符(字母、符号、数字码)都是按一定在计算机内部,各种字符(字母、符号、数字码)都是按一定的方式编写成二进制信息。不同的计算机以及不同的场合所采的方式编写成二进制信息。不同的计算机以及不同的场合所采用的编码形式可能不同。目前最广泛采用的是用的编码形式可能不同。目前最广泛采用的是ASCII码(码(American Standard Code for Information Interchange)标准标准ASCII码为一字节,其中用低七位表示字符编码(见附录码为一字节,其中用低七位表示字符编码(见附录A),用最高位表示奇偶数验位。),用最高位表示奇偶数验位。 7 6 5 4 3 2 1 0字符编码字符编码奇偶校验位奇偶校验位41标准标准ASCII码共有码共有128个,可分为两类:个,可分为两类:非打印非打印ASCII码:共码:共33个个,用于控制操作用于控制操作, 如如BEL(响铃响铃07H), DEL(删除删除7FH),CR(回车回车,0DH), LF(换行换行,0AH).可打印可打印ASCII码:共有码:共有95个,如数字符个,如数字符09,大小写字母等。,大小写字母等。421.6 基本逻辑运算基本逻辑运算 计算机内部采用二进制数表示信息,具有物理实现容易、可计算机内部采用二进制数表示信息,具有物理实现容易
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025重庆京剧院人才招聘笔试历年典型考点题库附带答案详解试卷3套
- 2026-2031中国能源管理系统市场竞争状况分析及前景发展策略研究报告
- 2026-2031中国石墨电极行业深度研究与未来发展趋势报告
- 2026-2031中国生长激素市场集中度现状及十五五产业投资评估报告
- SAP业务流程顾问虚拟团队协作管理技巧
- 国家电力投资集团限公司2025年下半年暑期实习生招募易考易错模拟试题(共500题)试卷后附参考答案
- 四川青川县部分事业单位2025年下半年下半年招考工作人员易考易错模拟试题(共500题)试卷后附参考答案
- Go开发工程师技术培训课程大纲
- 医生健康宣教活动方案
- 南充发展投资(控股)限责任公司2025年下半年下半年招聘易考易错模拟试题(共500题)试卷后附参考答案
- 山西某污水处理厂投资估算编制分析
- 2025全国医疗应急能力培训系列课程参考答案
- 江西体彩中心笔试题库及答案
- 网络安全技术课件下载
- 初中英语试卷讲评及课堂教学设计
- 上海安保考试题目及答案
- 糖尿病专家培训课件
- 2025-2026学年深圳市罗湖区九年级(上)英语第一学期期中联考试卷(解析版)
- 雨课堂在线学堂《中国传统文化》课后单元测试答案
- 2025年大学《社会工作-社会福利思想》考试参考题库及答案解析
- 独孤一箭实盘交割单 独股一箭20w实盘交割单
评论
0/150
提交评论