汇编语言之基础知识
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机的中央处理器(CPU)能够识别和执行的机器 指令代码。
机器语言的指令以代码的形式表示的,这对编制程 序和阅读程序都是相当困难的。
来自百度文库
2020/8/5
80x86/8088宏汇编语言程序设计
1.1.1 程序设计语言的发展
汇编语言
汇编语言是把由机器指令组成的机器语言程序“符 号化”,并与机器语言一一对应。
由于不同的机器有不同的汇编语言指令系统,因此 汇编语言的可移植性较差。
2020/8/5
80x86/8088宏汇编语言程序设计
1.1.1 程序设计语言的发展
高级语言
如VB、VC、DELPHI等程序设计语言。高级语言易 学好用,这些语言是面向数学语言或自然语言,因此 容易接受和掌握。
2020/8/5
2020/8/5
80x86/8088宏汇编语言程序设计
1.1.2 汇编语言特性
知识
:学习和使用汇编语言可以从根本上认识、理解计
算机的工作过程。有助于程序设计任意更充分地利用机器硬
件的全部功能,写出更好的程序
功能
:现在的计算机系统中,某些功能还只能通过使用
汇编语言来实现。例如机器的自检、系统的初始化等。
2020/8/5
80x86/8088宏汇编语言程序设计
1.1 汇编语言简介
1. 程序设计语言的发展
在计算机的发展过程中,程序设计语言也经历了下面三个 阶段的发展。 ▪ 机器语言 ▪ 汇编语言 ▪ 高级语言
2020/8/5
80x86/8088宏汇编语言程序设计
1.1.1 程序设计语言的发展
机器语言
小于117的二进制权为64 32 16 8 4 2 1
2020/8/5
80x86/8088宏汇编语言程序设计
经过转换后,117D = 1110101B
2020/8/5
80x86/8088宏汇编语言程序设计
除基取余法
把要转换的十进制数的整数部分不断除以2,并记 下余数,直到商为0为止。例:将十进制数117转换为 二进制数。计算过程如下:
2020/8/5
80x86/8088宏汇编语言程序设计
1.2.1 进位计数制
进位计数制采用位置表示法,即处于不同位置的同 一数字符号,所表示的数值不同。如1992中两个9一个 表示9百,一个表示9十。
数制中每一固定位置对应的单位值称为“权”。如 1992中1的位权为1千,其它各位的位权依次为百、十、 一。
2020/8/5
80x86/8088宏汇编语言程序设计
1.2.2 各种数制间的相互转换
1.2.2 .1 十进制整数转换为二进制整数
十进制整数转换位二进制整数有两种转换方法: (1)减权定位法 (2)除基取余法
2020/8/5
80x86/8088宏汇编语言程序设计
减权定位法
首先写出要转换的十进制数,其次写出所有小于此数 的各位二进制权值,然后用要转换的十进制数减去与 它最接近的二进制权值,如够减则减去并在相应位记 以1;如不够减则在相应位记以0并跳过此位;如此不 断重复,直到该数为0为止。 例:将十进制数117转换为二进制数 计算过程如下:
2020/8/5
80x86/8088宏汇编语言程序设计
1.2 进位计数制及相互转换
1.2.2 各种数制间的相互转换
由于八进制数、十六进制数与二进制数之间有固定 的对应关系,按每3位或4位二进制数一组就可以完成 八进制数、十六进制数与二进制数之间的相互转换。
因此,我们只需讨论十进制数与二进制数之间的相 互转换。这两种数制之间的转换方法同样可以引入到 十进制数与八、十六进制数之间的相互转换。
第一章 基础知识
▪ 汇编语言简介 ▪ 进位计数制及相互转换 ▪ 带符号数的表示 ▪ 字符编码
2020/8/5
80x86/8088宏汇编语言程序设计
1.1 汇编语言简介
自1946年世界上第一台电子数字计算机ENIAC (Electronic Numerical Integrator and Calculator)问世 至今,虽然仅短短六十年,但计算机以惊人的速度发 展。现今社会无论哪个行业、部门、地区到处可见计 算机的应用。
效率
:汇编语言的效率通常高于高级语言。“效率”指
的是程序的目标代码所占有的空间和程序的运行速度。在需
要节省内存空间和提高程序运行速度的场合常常使用汇编语
言。
2020/8/5
80x86/8088宏汇编语言程序设计
1.2 进位计数制及相互转换
1.2.1 进位计数制
人类在长期的生产实践中创造了我们最熟悉的十进 制,而生活中还有八进制、十六进制等多种数系,还 有在计算机中广泛使用的二进制数系,它们的共同之 处就是都采用进位计数制。
+5×100+6×10-1+7×10-2
2020/8/5
80x86/8088宏汇编语言程序设计
1.2.1 进位计数制
在书写不同进位计数制数时,常常在尾部用一 个字母来表示该数时什么进位计数制的数。
结尾用B(2进制数)、 O (8进制数)、 D (10进制数)、H(16进制数)。缺省为十进制数。 例如712O、9198D、10010B、BE49H等等。
2020/8/5
80x86/8088宏汇编语言程序设计
1.2.1 进位计数制
对于任意一个进位计数制,如果用R表示基数,那么任 何一个数S均可用如下多项式表示: S= knRn+kn-1Rn-1+…+k0R0+k-1R-1+k-2R-2 +…+k-mR-m
例如,十进制数12345.67可用下面的多项式来表示: 12345.67=1×104+2×103+3×102+4×101
2020/8/5
80x86/8088宏汇编语言程序设计
1.2.1 进位计数制
在进位计数制中,每个数位上允许的数码十有限的。 每个数位上有限数码的个数叫基数。例如,在十进制 数中有10个数码0~9。由于每个进位计数制的数码中 必定包含0,因此有限数码中最大数码一定是基数减一。
如果某数位超过最大数码便产生向高位的进位,这 就是进位计数制的数。
80x86/8088宏汇编语言程序设计
1.1.2 汇编语言特性
由于每种计算机的设计者有不同的设计思想,不 同的应用目的。因此,每种计算机有它自己的机器语 言和汇编语言。为了学习、使用某种计算机的汇编语 言就必须首先熟悉那种计算机。这使得用汇编语言编 写程序比高级语言困难得多,但由于汇编语言的特性 使得我们还有意义继续学习和使用它。
机器语言的指令以代码的形式表示的,这对编制程 序和阅读程序都是相当困难的。
来自百度文库
2020/8/5
80x86/8088宏汇编语言程序设计
1.1.1 程序设计语言的发展
汇编语言
汇编语言是把由机器指令组成的机器语言程序“符 号化”,并与机器语言一一对应。
由于不同的机器有不同的汇编语言指令系统,因此 汇编语言的可移植性较差。
2020/8/5
80x86/8088宏汇编语言程序设计
1.1.1 程序设计语言的发展
高级语言
如VB、VC、DELPHI等程序设计语言。高级语言易 学好用,这些语言是面向数学语言或自然语言,因此 容易接受和掌握。
2020/8/5
2020/8/5
80x86/8088宏汇编语言程序设计
1.1.2 汇编语言特性
知识
:学习和使用汇编语言可以从根本上认识、理解计
算机的工作过程。有助于程序设计任意更充分地利用机器硬
件的全部功能,写出更好的程序
功能
:现在的计算机系统中,某些功能还只能通过使用
汇编语言来实现。例如机器的自检、系统的初始化等。
2020/8/5
80x86/8088宏汇编语言程序设计
1.1 汇编语言简介
1. 程序设计语言的发展
在计算机的发展过程中,程序设计语言也经历了下面三个 阶段的发展。 ▪ 机器语言 ▪ 汇编语言 ▪ 高级语言
2020/8/5
80x86/8088宏汇编语言程序设计
1.1.1 程序设计语言的发展
机器语言
小于117的二进制权为64 32 16 8 4 2 1
2020/8/5
80x86/8088宏汇编语言程序设计
经过转换后,117D = 1110101B
2020/8/5
80x86/8088宏汇编语言程序设计
除基取余法
把要转换的十进制数的整数部分不断除以2,并记 下余数,直到商为0为止。例:将十进制数117转换为 二进制数。计算过程如下:
2020/8/5
80x86/8088宏汇编语言程序设计
1.2.1 进位计数制
进位计数制采用位置表示法,即处于不同位置的同 一数字符号,所表示的数值不同。如1992中两个9一个 表示9百,一个表示9十。
数制中每一固定位置对应的单位值称为“权”。如 1992中1的位权为1千,其它各位的位权依次为百、十、 一。
2020/8/5
80x86/8088宏汇编语言程序设计
1.2.2 各种数制间的相互转换
1.2.2 .1 十进制整数转换为二进制整数
十进制整数转换位二进制整数有两种转换方法: (1)减权定位法 (2)除基取余法
2020/8/5
80x86/8088宏汇编语言程序设计
减权定位法
首先写出要转换的十进制数,其次写出所有小于此数 的各位二进制权值,然后用要转换的十进制数减去与 它最接近的二进制权值,如够减则减去并在相应位记 以1;如不够减则在相应位记以0并跳过此位;如此不 断重复,直到该数为0为止。 例:将十进制数117转换为二进制数 计算过程如下:
2020/8/5
80x86/8088宏汇编语言程序设计
1.2 进位计数制及相互转换
1.2.2 各种数制间的相互转换
由于八进制数、十六进制数与二进制数之间有固定 的对应关系,按每3位或4位二进制数一组就可以完成 八进制数、十六进制数与二进制数之间的相互转换。
因此,我们只需讨论十进制数与二进制数之间的相 互转换。这两种数制之间的转换方法同样可以引入到 十进制数与八、十六进制数之间的相互转换。
第一章 基础知识
▪ 汇编语言简介 ▪ 进位计数制及相互转换 ▪ 带符号数的表示 ▪ 字符编码
2020/8/5
80x86/8088宏汇编语言程序设计
1.1 汇编语言简介
自1946年世界上第一台电子数字计算机ENIAC (Electronic Numerical Integrator and Calculator)问世 至今,虽然仅短短六十年,但计算机以惊人的速度发 展。现今社会无论哪个行业、部门、地区到处可见计 算机的应用。
效率
:汇编语言的效率通常高于高级语言。“效率”指
的是程序的目标代码所占有的空间和程序的运行速度。在需
要节省内存空间和提高程序运行速度的场合常常使用汇编语
言。
2020/8/5
80x86/8088宏汇编语言程序设计
1.2 进位计数制及相互转换
1.2.1 进位计数制
人类在长期的生产实践中创造了我们最熟悉的十进 制,而生活中还有八进制、十六进制等多种数系,还 有在计算机中广泛使用的二进制数系,它们的共同之 处就是都采用进位计数制。
+5×100+6×10-1+7×10-2
2020/8/5
80x86/8088宏汇编语言程序设计
1.2.1 进位计数制
在书写不同进位计数制数时,常常在尾部用一 个字母来表示该数时什么进位计数制的数。
结尾用B(2进制数)、 O (8进制数)、 D (10进制数)、H(16进制数)。缺省为十进制数。 例如712O、9198D、10010B、BE49H等等。
2020/8/5
80x86/8088宏汇编语言程序设计
1.2.1 进位计数制
对于任意一个进位计数制,如果用R表示基数,那么任 何一个数S均可用如下多项式表示: S= knRn+kn-1Rn-1+…+k0R0+k-1R-1+k-2R-2 +…+k-mR-m
例如,十进制数12345.67可用下面的多项式来表示: 12345.67=1×104+2×103+3×102+4×101
2020/8/5
80x86/8088宏汇编语言程序设计
1.2.1 进位计数制
在进位计数制中,每个数位上允许的数码十有限的。 每个数位上有限数码的个数叫基数。例如,在十进制 数中有10个数码0~9。由于每个进位计数制的数码中 必定包含0,因此有限数码中最大数码一定是基数减一。
如果某数位超过最大数码便产生向高位的进位,这 就是进位计数制的数。
80x86/8088宏汇编语言程序设计
1.1.2 汇编语言特性
由于每种计算机的设计者有不同的设计思想,不 同的应用目的。因此,每种计算机有它自己的机器语 言和汇编语言。为了学习、使用某种计算机的汇编语 言就必须首先熟悉那种计算机。这使得用汇编语言编 写程序比高级语言困难得多,但由于汇编语言的特性 使得我们还有意义继续学习和使用它。