当前位置:
文档之家› 第一章 汇编语言程序设计基础
第一章 汇编语言程序设计基础
高效程序是用汇编语言编写的。 高级绘图程序、视频游戏程序一般是用汇
编语言编写的。
§ 1.1 进位计数制与不同基数的数之间的转换
一、常用计数制
◇进位计数制是一种计数的方法,常用的有十进制计数法、
二进制计数法、十六进制计数法、八进制计数法等。
十进制数:基数为10,逢10进1。 的值是:
二进制数:基数为2,逢2进1。 的值是:
Y,Z3=
,Z4=X
Y,求Z1
【本章小结】
1. 数制 计算机中的数字电路用电压的高低(或通断)表示两种状态0、1,所以计算机内部的 所有信息都是采用二进制计数法。在书写程序时,常采用二进制的短格式表示法:十六进 制。 2. 数制之间的转换 二进制数和十六进制的转换是很直接的。一个二进制数,从低位到高位,每4位用一 个数字来表示,就是相应的十六进制数,反之一个十六进制数中的每一位用4位二进制数 表示,就转换成相应的二进制数。 十六进制数的各位数与其对应权值(16i)的乘积之和即为其对应的是十进制数。十 进制数转换为十六进制数可使用降幂法和除法。 3. 运算 二进制数的算术运算规则是逢二进一,十六进制数的运算规则是逢十六进一。 基本逻辑运算包括与(AND)、或(OR)、非(NOT)、异或(XOR),0、1代码为逻 辑变量。 4. 数和字符的表示 计算机中的数是用二进制来表示,其最高有效位表示数的正负号。整数采用补码表示 法。对一个二进制数按位求反后在末位加1的运算称为求补运算。 补码的加法规则是:[X+Y]补=[X] 补+[Y] 补 补码的减法规则是:[X-Y] 补=[X] 补+[-Y] 补 计算机采用ASCII表示字符,每个字符占用一个字节。
二、补码的加法和减法
1、求补运算
对一个二进制数按位求反、末位加一的运算称为求补运算, 补码表示的数具有以下特征:
2、补码的加、减法规则
补码的加法规则是:
补码的减法规则是: 其中 通过对 求补就可以得到。
例1.9:假设机器字长为8位,计算25+(-32). 25的补码是0001 1001,-32的补码是1110 0000
§ 1.3 计算机中数和字符的表示
计算机中正负数的表示
假设机器字长为8位:
7 6 5 4 3 2 1 0
H.O.Nibble L.O.Nibble
符号位 假设机器字长为16位:
15 14 13 12 11 10 9
数值位
8
7
6
5
4
3
2
1
0
H.O.Byte
L.O.Byte
符号位 = 0 正数
数值位
= 1 负数
+ 46的补码表示为: 0010 1110 按位求反: 1101 0001 末位加一 1101 0010 所以,[-46]补码 = D2H 3、补码表示数的符号扩展
符号扩展:是指一个数从位数较少扩展到位数较多,如从8位扩展 到16位,或从16位扩展到32位。 对于用补码表示的数,正数的符号扩展在前面补0,负数的符号扩 展在前面补1,假设机器字长为16位,[+46]补码 = 002EH,[-46]补码 = FFD2H。
§ 1.2 二进制数和十六进制数的运算
一、二进制运算
加法规则: 乘法规则:
0+0=0 0+1=1 1+0=1 1 + 1 = 0(进位1)
0 0 1 1
0=0 1=0 0=0 1=1
二、十六进制数的运算
十六进制的加、减、乘、除与十进制类似,逢十六进一。 例1.5: + 例1.6: 05C3H 3D25H 42E8H 3D25H 05C3H 3762H
所以117的二进制为1110101。
例1.3:将二进制数转换成十六进制数。 0011 0101 1011 1111 3 5 B F 即 0011010110111111B = 35BFH
例1.4:将二进制数转换成十六进制数。 A 1 9 C 1010 0001 1001 1100 即 A19CH = 1010000110011100B
汇编语言程序设计
课程名称:IBM-PC汇编语言程序设计 学习目标与要求: · 了解以intel系列微处理器为基础的PC机的基本结构 (编程结构); · 掌握intel8086/8088微处理器的指令系统; · 掌握使用汇编设计、编写、调试和运行程序的方法。 教材:《IBM-PC汇编语言程序设计(第二版)》 沈美明、温冬婵编著 清华大学出版社
CR: 0DH LF: 0AH 空格:20H
§ 1.4 几种基本的逻辑运算
所有的逻辑运算都是按位操作的。 1、“与”运算(AND)
2、“或”运算(OR)
3、“非”运算(NOT)
4、“异或”运算(XOR)
例1.11:X=00FFH,Y=5555H,Z1=X Y,Z2=X
、Z2、Z3、Z4的值。 解:X = 0000 0000 1111 1111 Y = 0101 0101 0101 0101 Z1= 0000 0000 0101 0101 = 0055H Z2= 0101 0101 1111 1111 = 55FFH Z3= 1111 1111 0000 0000 = FF00H Z4= 0101 0101 1010 1010 = 55AAH
参考资料: 《高级汇编技术》、《实用汇编语言编程技巧》 《新一代汇编语言程序设计》 教学方法:多媒体和板书相结合 授课时间:2009/2010学年第二学期 教学时数:总学时:56 教学对象:计算08-1、2 讲授学时:44 计软08-1、2 实验学时:12
第1章 汇编语言程序设计基础
◆ 汇编语言程序设计的简单介绍 ◆ 进位计数制与不同基数的数之间 的转换 ◆ 二进制数和十六算是正确的。
例1.10:仍假定机器字长为8位,计算32-(-25) 为把减法转换为加法,要对-25求补,实际上就是25的补码0001 1001, 32的补码是0010 0000
结果恰好是57的补码,运算正确。
三、无符号整数
8位无符号数表数范围是 0 N
N
+255
+65535
有些时候用二进制表示数不太方便(代码很长),所以经常采 用十六进制表示法, 4位二进制数可用1位十六进制数来表示。
十六进制数与二进制数、十进制数的对应关系如下图所示:
各种进制的基数和数码如下表所示:
二、不同基数间的转换
二进制
除16取余、乘16取整 十进制 按权相加 十六进 制
例1.1:将二进制数转换成十进制数。 110011.101B=25+24+21+20+2-1+2-3 =51.625D 例1.2:将十进制数117转换为二进制数。 计算过程如下:
◆ 计算机中数和字符的表示
◆ 几种基本的逻辑运算
汇编语言程序设计的简单介绍
冯· 诺依曼机的主要特点
采用二进制编码表示数据和指令 采用存储程序工作方式
计算机最终执行的程序包括:指令序列和数据
由五大组成部件
计算机的组成
运算器
状 态 程序 数 据 结 果 命 令 结果
输入设备
存储器
汇编语言程序和C++程序的简单比较
功能相同:计算a+b→c ,显示结果 源文件长 目标文件 可执行文 度 长度 件长度 汇编语言 402字节 196字节 578字节 TC++3.0 148字节 549字节 8.7KB 语言
汇编语言的应用
系统程序、效率代码、I/O驱动程序
部分系统软件是用汇编语言编写的。 某些快速处理、位处理、访问硬件设备等
例1.7 :
由此可以看出,0的表示不唯一。 (3)、补码表示法:多数机器的整数都采用补码表示法。 正数的补码表示:与原码表示相同
负数的补码表示:相应的正数按位求反,末位加1即为该负数的补码表示。
求负数补码表示的方法:
(1)写出与该负数相对应的正数的补码 (2)按位求反 (3)末位加一 例1.8:假设机器字长为8位,求- 46的补码。
地 址 指 令
输出设备
控制器
请求
计算机语言的发展
机器语言 高级语言
FORTRAN BASIC COBOL PASCAL
C/C++
汇编语言
JAVA
...
程序设计语言的简单概括
机器语言
计算机硬件能直接识别的语言,使用二进制代码 例:加法:00000011,11000011
汇编语言
是一种符号语言,使用助记符来表示对应 的操作;与机 器语言一一对应; 例:加法:ADD AX,BX
一、数的补码表示
1、机器数:计算机中的数和数的符号都是用二进制表示的,这样的 数称为机器数。一般用最高有效位来表示数的符号,正数用0表示, 负数用1表示。 2、机器数的不同码制来表示:常用的有原码、补码和反码表示法。 (1)、原码表示法:符号 + 绝对值
例1.7 :
由此可以看出,0的表示不唯一。
(2)、反码表示法:正数的反码同原码,负数的反码数值位与原码相反
高级语言
面向人的语言,常分为面向过程和面向对象两种。
汇编语言的特点
面向机器的低级语言,通常是为特定的计算机或 计算机系列专门设计的。 保持了机器语言的优点,具有直接和简捷的特点 。 可有效地访问、控制计算机的各种硬件设备,如磁 盘、存储器、CPU、I/O端口等。 目标代码简短,占用内存少,执行速度快, 是高效的程序设计语言。 经常与高级语言配合使用,应用十分广泛。 不易于编程,可移植性差。
16位无符号数表数范围是 0 n位无符号数表数范围是:0
四、字符表示法
字符在机器里也是用二进制数表示的。IBM PC机采用目前最常用的 美国信息交换标准代码ASCII(American Standard Code for Information Interchange)来表示。ASCII码用一个字节(8位二进 制码)来表示一个字符,其中低7位为字符的ASCII值,最高位一般 用作校验位。 常用的字符的ASCII值: A: 41H Z: 5AH A: 61H z: 7AH 0: 30H 9: 39H