第1章 汇编语言基础知识
1.教学目的:掌握汇编语言概念极其使用的进位计数制、不同进位计数制之间的转换、计算机编码以及基本数据类型。 2.教学要求:
①了解汇编语言的基本概念
②理解汇编语言使用的进位计数制
③熟练掌握不同进制之间转换、计算机的编码 ④熟悉汇编语言中的基本数据类型 3.教学重点:
①不同进制之间转换
②计算机的编码 4.掌握难点:
①不同进制之间转换
②计算机的编码
5.教学进程安排:P1~P18 6.教学方法:
①一般叙述基本概念
②着重课堂讲授不同进制之间转换、计算机的编码 7.教学内容摘要:
1.1汇编语言概述
1.1.1汇编语言基本概念
1.机器语言 2.汇编语言 3.高级语言
1.1.2 汇编语言的特点
1.执行速度快 2.程序短小
3.可以直接控制硬件 4.可以方便地编译
5.辅助计算机工作者掌握计算机体系结构
1.2进位计数制及其转换
计算机内部的信息分为两大类:
1.控制信息:控制信息是一系列的控制命令,用于指挥计算机如何操作;
2.数据信息:数据信息是计算机操作的对象,它可分为数值数据和非数值数据
(1)数值数据用于表示数量的大小,它有确定的数值;
(2)非数值数据没有确定的数值,它主要包括字符、汉字、逻辑数据等等。 信息在输入计算机内部时,都必须用基2码编码表示,其原因如下: 1. 基2码在物理上最容易实现。
2.基2码用来表示二进制数,其编码、加减运算规则简单。
3.基2码的两个符号“1”和“0”正好与逻辑数据“真”与“假”相对应,为计算机实现逻辑运算带来了方便。
1.2.1数与数制
十进制数的特点是“逢十进一,借一当十”,需要用到的数字符号为十个,分别是0~9。 二进制数的特点是“逢二进一,借一当二”,需要用到的数字符号为二个,分别是0~1。 八进制数的特点是“逢八进一,借一当八”,需要用到的数字符号为八个,分别是0~7。 十六进制数的特点是“逢十六进一,借一当十六”,需要用到的数字符号为十六个,分别是0~9、A ~F 。
210-1-2
(234.13)10=2×10+3×10+4×10+1×10+3×10
210-1-2
(101.11)2=1×2+0×2+1×2+1×2+1×2
210-1-2
(124.36)8=1×8+2×8+4×8+3×8+6×8
10-1-2
(AC.B5)16=A×16+C×16+B×16+5×16
据上述概念,可推广出表示任意进制数的通式:
n
N =±∑x i r i
i =-m
n -m
i
=±(∑x i r +∑x i -r i m ) n
i =0i =-1
x i r i x i r i ∑∑其中 为整数部分, 为小数部分。R 为基数,每一项的数字可用0~R-1数i =0i =-1
字中的一个数字来表示。
1.2.2不同数制之间的转换
1. 十进制数与二进制数之间的转换 (1)十进制整数转换成二进制整数
方法:除2取余法
注意:第一次得到的余数为二进制数的最低位,最后得到的余数为二进制数的最高位。 【例1-1
商为 0
余数为1, 余数为0, 余数为0, 余数为0, 余数为0, 余数为1, 余数为1, 余数为0
即A 0=1 即A 1=0 即A 2=0 即A 3=0 即A 4=0 即A 5=1 即A 6=1;
结束
最后结果为(97)10 =(A 6 A5 A4 A3 A2 A1 A0)2=(1100001)2
(2)十进制小数转换成二进制小数
方法:乘2取整法
注意:最后将每次得到的整数部分(必定是0或1)按先后顺序从左到右排列即得到所对应二进制小数。
【例1-2】将十进制小数0.6875转换成二进制小数。如下:
0.6875 × 2
1.3750 整数部分为1,即A -1=1 0.3750 余下的小数部分
× 2
0.7500 整数部分为0,即A -2=0 0.7500 余下的小数部分 × 2
1.5000 整数部分为1,即A -3=1 0.5000 余下的小数部分 × 2
1.0000 整数部分为1,即A -4=1 0.0000 余下的小数部分为0,结束
最后结果为(0.6875)10=(0.A-1A -2A -3A -4) 2 =(0.1011)2
(3)一般的十进制数转换成二进制数
为了将一个既有整数又有小数部分的十进制数转换成二进制数,可以将其整数部分和小数部分分别进行转换,然后再组合起来。例如: (4)二进制数转换十进制数
方法:按位权展开后相加。
例如:(111.11)2 =1×22+1×21+1×20+1×2-1+1×2-2 =4+2+1+0.5+0.25 =(7.75)10 2. 十进制与八进制之间的转换 (1)十进制整数转换成八进制整数 方法:除8取余法
(2)十进制小数转换成八进制小数
方法:乘8取整法
3. 十进制与十六进制之间的转换 (1)十进制整数转换成十六进制整数
方法:除16取余法
(2)十进制小数转换成十六进制小数
方法:乘16取整法 (3)十六进制数转换十进制数
方法:按位权展开后相加
4. 二进制与八进制、十六进制数之间的转换
3
因为: 2=8,所以每三位二进制数对应一位八进制数;
4
2=16,所以每四位二进制数对应一位十六进制。
表1-1列出了十进制、二进制、八进制、十六进制最基本的数字的对应关系。这些对应关系在后面的二进制、八进制、十六进制相互转换中要经常用到。
在计算机里,通常用数字后面跟一个英文字母来表示该数的数制。 (1)十进制数一般用D (DECIMAL )、 (2)二进制数用B (BINARY )、 (3)八进制数用O (OCTAL )、
(4)十六进制数用H (HEXADECIMAL )来表示。
1.3计算机中数与字符的表示方法
1.3.1 数值数据的编码及其运算
1. 二进制数的编码及运算
两个概念:
机器数:带符号的二进制数值数据在计算机内部的编码。 真值:机器数所代表的实际值。 (1)二进制数补码编码
要注意以下两个问题:
① 在补码表示法中,0只有一种表示,即000„000。 ② 对于10000000这个补码编码,其真值被定义为-128。 举例:机器字长n=8位,X=+48D,求[X]补 举例:机器字长n=8位,X=-48D ,求[X]补 举例:机器字长n=16位,X=+48D,求[X]补 举例:机器字长n=16位,X=-48D ,求[X]补
注意:汇编语言中,为了区别指令码和名称, 规定A ~F 开始的数据前面加零。 补码数要扩展时,正数是在符号的前面补0,负数是在符号的前面补1。
已知补码求真值的方法是:当机器数的最高位(符号位)为0时,表示真值是正数,其值等于其余n-1位的值;当机器数的最高位(符号位)为1时,表示真值是负数,其值等于其余n-1位按位取反末位加1的值。
我们来讨论一下补码表示数的范围。
当n=16时,N 的数据取值范围是: -32768≤ N ≤+32767
(2)二进制数补码的运算 补码的运算规则:
[X+Y]补 = [X]补 + [Y]补 [X-Y]补 = [X]补 + [-Y]补
计算机引入了补码编码后,带来了以下几个优点:
减法转化成了加法:这样大大简化了运算器硬件电路的设计,加减法可用同一硬件电
路进行处理。
运算时,符号位与数值位同等对待,都按二进制参加运算;符号位产生的进位丢掉不
管,其结果是正确的。这大大简化了运算规则。 运用以上两个公式时,要注意两点:
第一点:公式成立有个前提条件,就是运算结果不能超出机器数所能表示的范围,否则运算结果不正确,按“溢出”处理。
第二点:采用补码运算后,结果也是补码,欲得运算结果的真值,还需转换。 2. 无符号整数的编码及运算规则
在某些情况下,计算机要处理的数据全是正数,此时机器数再保留符号位就没有意义了。这时,我们将机器数最高有效位也作为数值位处理,也就是说,假设机器字长为n 位:
则有符号整数的编码可表示为:
无符号整数的表数范围为:0≤N ≤2 3. 十进制数的编码及运算
(1)BCD 码
n-1
n
(3)BCD 码的修正规则
1.3.2非数值数据的二进制编码
1. 字符编码
使用最多、最普遍的是ASCII 字符编码,即美国信息交换标准代码(AMERICAN STANDARD CODE FOR INFORMATION INTERCHANGE)。 2. 汉字的编码
⑴汉字输入编码 ⑵汉字机内码 ⑶汉字字形码 3. 逻辑数据的编码
⑴“与”运算(AND ) ⑵“或”运算(OR ) ⑶ “非”运算(NOT ) ⑷“异或”运算(XOR )
逻辑运算关系见表1-5所示。
8.参考资料:《IBM-PC 汇编语言程序设计》沈美明 9.作业:P18 习题1 10.本章小结:
①本部分为汇编语言的基础,必须理解和熟悉。 ②本部分要求灵活应用,不要死记硬背。
第1章 汇编语言基础知识
1.教学目的:掌握汇编语言概念极其使用的进位计数制、不同进位计数制之间的转换、计算机编码以及基本数据类型。 2.教学要求:
①了解汇编语言的基本概念
②理解汇编语言使用的进位计数制
③熟练掌握不同进制之间转换、计算机的编码 ④熟悉汇编语言中的基本数据类型 3.教学重点:
①不同进制之间转换
②计算机的编码 4.掌握难点:
①不同进制之间转换
②计算机的编码
5.教学进程安排:P1~P18 6.教学方法:
①一般叙述基本概念
②着重课堂讲授不同进制之间转换、计算机的编码 7.教学内容摘要:
1.1汇编语言概述
1.1.1汇编语言基本概念
1.机器语言 2.汇编语言 3.高级语言
1.1.2 汇编语言的特点
1.执行速度快 2.程序短小
3.可以直接控制硬件 4.可以方便地编译
5.辅助计算机工作者掌握计算机体系结构
1.2进位计数制及其转换
计算机内部的信息分为两大类:
1.控制信息:控制信息是一系列的控制命令,用于指挥计算机如何操作;
2.数据信息:数据信息是计算机操作的对象,它可分为数值数据和非数值数据
(1)数值数据用于表示数量的大小,它有确定的数值;
(2)非数值数据没有确定的数值,它主要包括字符、汉字、逻辑数据等等。 信息在输入计算机内部时,都必须用基2码编码表示,其原因如下: 1. 基2码在物理上最容易实现。
2.基2码用来表示二进制数,其编码、加减运算规则简单。
3.基2码的两个符号“1”和“0”正好与逻辑数据“真”与“假”相对应,为计算机实现逻辑运算带来了方便。
1.2.1数与数制
十进制数的特点是“逢十进一,借一当十”,需要用到的数字符号为十个,分别是0~9。 二进制数的特点是“逢二进一,借一当二”,需要用到的数字符号为二个,分别是0~1。 八进制数的特点是“逢八进一,借一当八”,需要用到的数字符号为八个,分别是0~7。 十六进制数的特点是“逢十六进一,借一当十六”,需要用到的数字符号为十六个,分别是0~9、A ~F 。
210-1-2
(234.13)10=2×10+3×10+4×10+1×10+3×10
210-1-2
(101.11)2=1×2+0×2+1×2+1×2+1×2
210-1-2
(124.36)8=1×8+2×8+4×8+3×8+6×8
10-1-2
(AC.B5)16=A×16+C×16+B×16+5×16
据上述概念,可推广出表示任意进制数的通式:
n
N =±∑x i r i
i =-m
n -m
i
=±(∑x i r +∑x i -r i m ) n
i =0i =-1
x i r i x i r i ∑∑其中 为整数部分, 为小数部分。R 为基数,每一项的数字可用0~R-1数i =0i =-1
字中的一个数字来表示。
1.2.2不同数制之间的转换
1. 十进制数与二进制数之间的转换 (1)十进制整数转换成二进制整数
方法:除2取余法
注意:第一次得到的余数为二进制数的最低位,最后得到的余数为二进制数的最高位。 【例1-1
商为 0
余数为1, 余数为0, 余数为0, 余数为0, 余数为0, 余数为1, 余数为1, 余数为0
即A 0=1 即A 1=0 即A 2=0 即A 3=0 即A 4=0 即A 5=1 即A 6=1;
结束
最后结果为(97)10 =(A 6 A5 A4 A3 A2 A1 A0)2=(1100001)2
(2)十进制小数转换成二进制小数
方法:乘2取整法
注意:最后将每次得到的整数部分(必定是0或1)按先后顺序从左到右排列即得到所对应二进制小数。
【例1-2】将十进制小数0.6875转换成二进制小数。如下:
0.6875 × 2
1.3750 整数部分为1,即A -1=1 0.3750 余下的小数部分
× 2
0.7500 整数部分为0,即A -2=0 0.7500 余下的小数部分 × 2
1.5000 整数部分为1,即A -3=1 0.5000 余下的小数部分 × 2
1.0000 整数部分为1,即A -4=1 0.0000 余下的小数部分为0,结束
最后结果为(0.6875)10=(0.A-1A -2A -3A -4) 2 =(0.1011)2
(3)一般的十进制数转换成二进制数
为了将一个既有整数又有小数部分的十进制数转换成二进制数,可以将其整数部分和小数部分分别进行转换,然后再组合起来。例如: (4)二进制数转换十进制数
方法:按位权展开后相加。
例如:(111.11)2 =1×22+1×21+1×20+1×2-1+1×2-2 =4+2+1+0.5+0.25 =(7.75)10 2. 十进制与八进制之间的转换 (1)十进制整数转换成八进制整数 方法:除8取余法
(2)十进制小数转换成八进制小数
方法:乘8取整法
3. 十进制与十六进制之间的转换 (1)十进制整数转换成十六进制整数
方法:除16取余法
(2)十进制小数转换成十六进制小数
方法:乘16取整法 (3)十六进制数转换十进制数
方法:按位权展开后相加
4. 二进制与八进制、十六进制数之间的转换
3
因为: 2=8,所以每三位二进制数对应一位八进制数;
4
2=16,所以每四位二进制数对应一位十六进制。
表1-1列出了十进制、二进制、八进制、十六进制最基本的数字的对应关系。这些对应关系在后面的二进制、八进制、十六进制相互转换中要经常用到。
在计算机里,通常用数字后面跟一个英文字母来表示该数的数制。 (1)十进制数一般用D (DECIMAL )、 (2)二进制数用B (BINARY )、 (3)八进制数用O (OCTAL )、
(4)十六进制数用H (HEXADECIMAL )来表示。
1.3计算机中数与字符的表示方法
1.3.1 数值数据的编码及其运算
1. 二进制数的编码及运算
两个概念:
机器数:带符号的二进制数值数据在计算机内部的编码。 真值:机器数所代表的实际值。 (1)二进制数补码编码
要注意以下两个问题:
① 在补码表示法中,0只有一种表示,即000„000。 ② 对于10000000这个补码编码,其真值被定义为-128。 举例:机器字长n=8位,X=+48D,求[X]补 举例:机器字长n=8位,X=-48D ,求[X]补 举例:机器字长n=16位,X=+48D,求[X]补 举例:机器字长n=16位,X=-48D ,求[X]补
注意:汇编语言中,为了区别指令码和名称, 规定A ~F 开始的数据前面加零。 补码数要扩展时,正数是在符号的前面补0,负数是在符号的前面补1。
已知补码求真值的方法是:当机器数的最高位(符号位)为0时,表示真值是正数,其值等于其余n-1位的值;当机器数的最高位(符号位)为1时,表示真值是负数,其值等于其余n-1位按位取反末位加1的值。
我们来讨论一下补码表示数的范围。
当n=16时,N 的数据取值范围是: -32768≤ N ≤+32767
(2)二进制数补码的运算 补码的运算规则:
[X+Y]补 = [X]补 + [Y]补 [X-Y]补 = [X]补 + [-Y]补
计算机引入了补码编码后,带来了以下几个优点:
减法转化成了加法:这样大大简化了运算器硬件电路的设计,加减法可用同一硬件电
路进行处理。
运算时,符号位与数值位同等对待,都按二进制参加运算;符号位产生的进位丢掉不
管,其结果是正确的。这大大简化了运算规则。 运用以上两个公式时,要注意两点:
第一点:公式成立有个前提条件,就是运算结果不能超出机器数所能表示的范围,否则运算结果不正确,按“溢出”处理。
第二点:采用补码运算后,结果也是补码,欲得运算结果的真值,还需转换。 2. 无符号整数的编码及运算规则
在某些情况下,计算机要处理的数据全是正数,此时机器数再保留符号位就没有意义了。这时,我们将机器数最高有效位也作为数值位处理,也就是说,假设机器字长为n 位:
则有符号整数的编码可表示为:
无符号整数的表数范围为:0≤N ≤2 3. 十进制数的编码及运算
(1)BCD 码
n-1
n
(3)BCD 码的修正规则
1.3.2非数值数据的二进制编码
1. 字符编码
使用最多、最普遍的是ASCII 字符编码,即美国信息交换标准代码(AMERICAN STANDARD CODE FOR INFORMATION INTERCHANGE)。 2. 汉字的编码
⑴汉字输入编码 ⑵汉字机内码 ⑶汉字字形码 3. 逻辑数据的编码
⑴“与”运算(AND ) ⑵“或”运算(OR ) ⑶ “非”运算(NOT ) ⑷“异或”运算(XOR )
逻辑运算关系见表1-5所示。
8.参考资料:《IBM-PC 汇编语言程序设计》沈美明 9.作业:P18 习题1 10.本章小结:
①本部分为汇编语言的基础,必须理解和熟悉。 ②本部分要求灵活应用,不要死记硬背。