第1章汇编语言基础知识 1.教学目的:掌握汇编语言概念极其使用的迸位计数制、不同进位计数制之间的 转换、计算机编码以及基本数据类型 2.教学要求 ①了解汇编语言的基本概念 ②理解汇编语言使用的进位计数制 ③熟练掌握不同进制之间转换、计算机的编码 ④熟悉汇编语言中的基本数据类型 3.教学重点 ①不同进制之间转换 ②计算机的编码 4.掌握难点 ①不同进制之间转换 ②计算机的编码 5.教学进程安排:P1~P18 6.教学方法 ①般叙述基本概念 ②着重课堂讲授不同进制之间转换、计算机的编码 7.教学内容摘要 1.1汇编语言概述 1.1.1汇编语言基本概念 1.机器语言 2.汇编语言 3.高级语言 1.1.2汇编语言的特点 1.执行速度快 2.程序短小 3.可以直接控制硬件 以方便地编译 5.辅助计算机工作者掌握计算机体系结构 1.2进位计数制及其转换
第 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 进位计数制及其转换
计算机内部的信息分为两大类: 控制信息:控制信息是一系列的控制命令,用于指挥计算机如何操作 2.数据信息:数据信息是计算机操作的对象,它可分为数值数据和非数值数据 (1)数值数据用于表示数量的大小,它有确定的数值 (2)非数值数据没有确定的数值,它主要包括字符、汉字、逻辑数据等等。 信息在输入计算机内部时,都必须用基2码编码表示,其原因如下 1.基2码在物理上最容易实现 2.基2码用来表示二进制数,其编码、加减运算规则简单。 3.基2码的两个符号“1”和“0”正好与逻辑数据“真”与“假”相对应,为计算机实现逻辑 运算带来了方便。 1.2.1数与数制 十进制数的特点是“逢十进一,借一当十”,需要用到的数字符号为十个,分别是0~9。 二进制数的特点是“逢二进一,借一当二”,需要用到的数字符号为二个,分别是0~1。 八进制数的特点是“逢八进一,借一当八”,需要用到的数字符号为八个,分别是0~7 十六进制数的特点是“逢十六进一,借一当十六”,需要用到的数字符号为十六个,分别是 (234.13)1=2×102+3×10+4×10+1×10+3×102 (101.11)21×20×2+1×2+1×2+1×22 (124.36)s1×82+2×82+4×8+3×8+6×82 (AC.B5)16=A×16+×16°+B×16+5×162 据上述概念,可推广出表示任意进制数的通式 N=±∑x 其中之x厂为整数部分,乙x厂为小数部分。R为基数,每一项的数字可用0~R-1数 字中的一个数字来表示。 1.2.2不同数制之间的转换 1.十进制数与二进制数之间的转换 (1)十进制整数转换成二进制整数 方法:除2取余法 注意:第一次得到的余数为二进制数的最低位,最后得到的余数为二进制数的最高位 【例1-1】将十进制数97转换成二进制数。其过程如下 余数为1 即A=1 48余数为0, 即A1=0 余数为0, 即A2=0 余数为0, 即A3=0 余数为0, 即A=0 余数为1 即A=1 余数为1, 即A=1: 余数为0 结束 商为 最后结果为(97)10=(A6AsA4A3A2A1A0)2=(1100001)2 (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。 (234.13)10=2×102 +3×101 +4×100 +1×10-1 +3×10-2 (101.11)2=1×2 2 +0×2 1 +1×2 0 +1×2 -1 +1×2 -2 (124.36)8=1×8 2 +2×8 1 +4×8 0 +3×8 -1 +6×8 -2 (AC.B5)16=A×161 +C×160 +B×16-1 +5×16-2 根据上述概念,可推广出表示任意进制数的通式: 其中 为整数部分, 为小数部分。R 为基数,每一项的数字可用 0~R-1 数 字中的一个数字来表示。 1.2.2 不同数制之间的转换 1. 十进制数与二进制数之间的转换 (1)十进制整数转换成二进制整数 方法:除 2 取余法 注意:第一次得到的余数为二进制数的最低位,最后得到的余数为二进制数的最高位。 【例 1-1】将十进制数 97 转换成二进制数。其过程如下: 即 A0=1 即 A1=0 即 A2=0 即 A3=0 即 A4=0 即 A5=1 即 A6=1; 结束 最后结果为(97)10 =(A6 A5 A4 A3 A2 A1 A0)2=(1100001)2 (2)十进制小数转换成二进制小数 2 97 余数为 1, 余数为 0, 余数为 0, 余数为 0, 余数为 0, 余数为 1, 余数为 1, 余数为 0 2 48 2 24 2 12 2 6 2 3 2 1 商为 0 ( ) 0 1 − = =− =− = + = m i i i n i i i n i m i i x r x r N x r = n i i i x r 0 − =− m i i i x r 1
方法:乘2取整法 注意:最后将每次得到的整数部分(必定是0或1)按先后顺序从左到右排列即得到所对 应二进制小数。 【例12】将十进制小数0.6875转换成二进制小数。如下: 0.6875 1.3750 整数部分为1,即A=1 0.3750 余下的小数部分 0.7500 整数部分为0,即A= 0.7500 余下的小数部分 1.5000 整数部分为1,即A=1 0.5000 余下的小数部分 1.0000 整数部分为1,即A=1 余下的小数部分为0,结束 最后结果为(0.6875)1=(0.A1A2A-3A-)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.二进制与八进制、十六进制数之间的转换 因为:2=8,所以每三位二进制数对应一位八进制数 2=16,所以每四位二进制数对应一位十六进制 表1-1列出了十进制、二进制、八进制、十六进制最基本的数字的对应关系。这些对应关 系在后面的二进制、八进制、十六进制相互转换中要经常用到。 表1-1十 八、十六进制数码的对应关系
方法:乘 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. 二进制与八进制、十六进制数之间的转换 因为: 2 3 =8,所以每三位二进制数对应一位八进制数; 2 4 =16,所以每四位二进制数对应一位十六进制。 表 1-1 列出了十进制、二进制、八进制、十六进制最基本的数字的对应关系。这些对应关 系在后面的二进制、八进制、十六进制相互转换中要经常用到。 表 1-1 十、二、八、十六进制数码的对应关系
十进制 进制 八进制 十六进制 0010 123456789 0123456 01234 O1 0l11 0123456 678gABcDEF 14 在计算机里,通常用数字后面跟一个英文字母来表示该数的数制 (1)十进制数一般用D( DECIMAL)、 (2)二进制数用B( BINARY) (3)八进制数用0( OCTAL) (4)十六进制数用H( HEXADECIMAL)来表示 1.3计算机中数与字符的表示方法 1.3.1数值数据的编码及其运算 1.二进制数的编码及运算 两个概念: 机器数:带符号的二进制数值数据在计算机内部的编码 真值:机器数所代表的实际值 (1)二进制数补码编码 要注意以下两个问题: ①在补码表示法中,0只有一种表示,即000…000。 ②对于1000000这个补码编码,其真值被定义为-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的值。 我们来讨论一下补码表示数的范围。 表1-28位二进制补码数范围 补码编码(机器数) 十进制数(真值) 011l1110
十进制 二进制 八进制 十六进制 0 0000 0 0 1 0001 1 1 2 0010 2 2 3 0011 3 3 4 0100 4 4 5 0101 5 5 6 0110 6 6 7 0111 7 7 8 1000 10 8 9 1001 11 9 10 1010 12 A 11 1011 13 B 12 1100 14 C 13 1101 15 D 14 1110 16 E 15 1111 17 F 在计算机里,通常用数字后面跟一个英文字母来表示该数的数制。 (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 的值。 我们来讨论一下补码表示数的范围。 表 1-2 8 位二进制补码数范围 补码编码(机器数) 十进制数(真值) 0 1111111 +127 0 1111110 +126
00000010 00000001 00000000 0 1 1111111 l11l1110 l0000001 127 当n=16时,N的数据取值范围是:-32768≤N≤+32767 (2)二进制数补码的运算 补码的运算规则 [X+Y]补=[X]补+[Y]补 [X-Y]补=[X]补+[Y]补 计算机引入了补码编码后,带来了以下几个优点: 减法转化成了加法:这样大大简化了运算器硬件电路的设计,加减法可用同一硬件电 路进行处理 算时,符号位与数值位同等对待,都按二进制参加运算;符号位产生的进位丢掉不 管,其结果是正确的。这大大简化了运算规则。 运用以上两个公式时,要注意两点: 第一点:公式成立有个前提条件,就是运算结果不能超出机器数所能表示的范围,否则运 算结果不正确,按“溢出”处理 第二点:采用补码运算后,结果也是补码,欲得运算结果的真值,还需转换 2.无符号整数的编码及运算规则 在某些情况下,计算机要处理的数据全是正数,此时机器数再保留符号位就没有意义了。 这时,我们将机器数最高有效位也作为数值位处理,也就是说,假设机器字长为n位: 则有符号整数的编码可表示为 符号位 数值位 无符号整数的编码可表示为 数值 直位 无符号整数的表数范围为:0≤N≤2 3.十进制数的编码及运算 (1)BCD码 表1-3BcD码表 十进制数码0 8421码 0l10011l 0001001 (2)BCD码的运算规则 (3)BCD码的修正规则 1.3.2非数值数据的二进制编码
┇ ┇ 0 0000010 +2 0 0000001 +1 0 0000000 0 1 1111111 -1 1 1111110 -2 ┇ ┇ 1 0000010 -126 1 0000001 -127 1 0000000 -128 当 n=16 时,N 的数据取值范围是: -32768≤ N ≤+32767 (2)二进制数补码的运算 补码的运算规则: [X+Y]补 = [X]补 + [Y]补 [X-Y]补 = [X]补 + [-Y]补 计算机引入了补码编码后,带来了以下几个优点: ➢ 减法转化成了加法:这样大大简化了运算器硬件电路的设计,加减法可用同一硬件电 路进行处理。 ➢ 运算时,符号位与数值位同等对待,都按二进制参加运算;符号位产生的进位丢掉不 管,其结果是正确的。这大大简化了运算规则。 运用以上两个公式时,要注意两点: 第一点:公式成立有个前提条件,就是运算结果不能超出机器数所能表示的范围,否则运 算结果不正确,按“溢出”处理。 第二点:采用补码运算后,结果也是补码,欲得运算结果的真值,还需转换。 2. 无符号整数的编码及运算规则 在某些情况下,计算机要处理的数据全是正数,此时机器数再保留符号位就没有意义了。 这时,我们将机器数最高有效位也作为数值位处理,也就是说,假设机器字长为 n 位: 则有符号整数的编码可表示为: 1 位 n-1 位 无符号整数的编码可表示为: n 位 无符号整数的表数范围为:0≤N≤2 n-1 3. 十进制数的编码及运算 (1)BCD 码 表 1-3 BCD 码表 十进制数码 0 1 2 3 4 5 6 7 8 9 8421 码 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 (2)BCD 码的运算规则 (3)BCD 码的修正规则 1.3.2 非数值数据的二进制编码 数值位 符号位 数值位
字符编码 使用最多、最普遍的是 ASCII字符编码,即美国信息交换标准代码( AMERICAN STANDARD CODE FOR INFORMATION INTERCHANGE) 2.汉字的编码 (1)汉字输入编码 (2)汉字机内码 (3)汉字字形码 逻辑数据的编 (1)“与”运算(AND) (2)“或”运算(OR) (3)“非”运算(NOT) (4)“异或”运算(XOR) 逻辑运算关系见表1-5所示。 表15逻誓数运算规则 逻辑与 逻辑或 逻辑非逻辑异或备注 0.0=0 00=0 0.1=0 0+1=1 0l=1 1+0=1 8.参考资料:《IBM-PC汇编语言程序设计》沈美明 9.作业:P18习题1 10.本章小结 ①本部分为汇编语言的基础,必须理解和熟悉。 ②本部分要求灵活应用,不要死记硬背
1. 字符编码 使用最多、最普遍的是 ASCII 字符编码,即美国信息交换标准代码(AMERICAN STANDARD CODE FOR INFORMATION INTERCHANGE)。 2. 汉字的编码 ⑴汉字输入编码 ⑵汉字机内码 ⑶汉字字形码 3. 逻辑数据的编码 ⑴“与”运算(AND) ⑵“或”运算(OR) ⑶ “非”运算(NOT) ⑷“异或”运算(XOR) 逻辑运算关系见表 1-5 所示。 表 1-5 逻辑数运算规则 逻辑与 逻辑或 逻辑非 逻辑异或 备注 0.0 = 0 0+0 = 0 1 = 0 0⊕0 = 0 0.1 = 0 0+1 = 1 0 = 1 0⊕1 = 1 1.0 = 0 1+0 = 1 1⊕0 = 1 1.1 = 1 1+1 = 1 1⊕1 = 0 8.参考资料:《IBM-PC 汇编语言程序设计》沈美明 9.作业:P18 习题 1 10.本章小结: ①本部分为汇编语言的基础,必须理解和熟悉。 ②本部分要求灵活应用,不要死记硬背