汇编语言之基础知识.ppt

上传人:小飞机 文档编号:6586385 上传时间:2023-11-15 格式:PPT 页数:38 大小:307.14KB
返回 下载 相关 举报
汇编语言之基础知识.ppt_第1页
第1页 / 共38页
汇编语言之基础知识.ppt_第2页
第2页 / 共38页
汇编语言之基础知识.ppt_第3页
第3页 / 共38页
汇编语言之基础知识.ppt_第4页
第4页 / 共38页
汇编语言之基础知识.ppt_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《汇编语言之基础知识.ppt》由会员分享,可在线阅读,更多相关《汇编语言之基础知识.ppt(38页珍藏版)》请在三一办公上搜索。

1、2023/11/15,80 x86/8088宏汇编语言程序设计,第一章 基础知识,汇编语言简介 进位计数制及相互转换 带符号数的表示 字符编码,2023/11/15,80 x86/8088宏汇编语言程序设计,1.1 汇编语言简介,自1946年世界上第一台电子数字计算机ENIAC(Electronic Numerical Integrator and Calculator)问世至今,虽然仅短短六十年,但计算机以惊人的速度发展。现今社会无论哪个行业、部门、地区到处可见计算机的应用。,2023/11/15,80 x86/8088宏汇编语言程序设计,1.1 汇编语言简介,程序设计语言的发展 在计算机的

2、发展过程中,程序设计语言也经历了下面三个阶段的发展。机器语言 汇编语言 高级语言,2023/11/15,80 x86/8088宏汇编语言程序设计,1.1.1 程序设计语言的发展,机器语言 计算机的中央处理器(CPU)能够识别和执行的机器指令代码。机器语言的指令以代码的形式表示的,这对编制程序和阅读程序都是相当困难的。,2023/11/15,80 x86/8088宏汇编语言程序设计,程序设计语言的发展,汇编语言 汇编语言是把由机器指令组成的机器语言程序“符号化”,并与机器语言一一对应。由于不同的机器有不同的汇编语言指令系统,因此汇编语言的可移植性较差。,2023/11/15,80 x86/808

3、8宏汇编语言程序设计,程序设计语言的发展,高级语言 如VB、VC、DELPHI等程序设计语言。高级语言易学好用,这些语言是面向数学语言或自然语言,因此容易接受和掌握。,2023/11/15,80 x86/8088宏汇编语言程序设计,汇编语言特性,由于每种计算机的设计者有不同的设计思想,不同的应用目的。因此,每种计算机有它自己的机器语言和汇编语言。为了学习、使用某种计算机的汇编语言就必须首先熟悉那种计算机。这使得用汇编语言编写程序比高级语言困难得多,但由于汇编语言的特性使得我们还有意义继续学习和使用它。,2023/11/15,80 x86/8088宏汇编语言程序设计,汇编语言特性,知识:学习和使

4、用汇编语言可以从根本上认识、理解计算机的工作过程。有助于程序设计任意更充分地利用机器硬件的全部功能,写出更好的程序 功能:现在的计算机系统中,某些功能还只能通过使用汇编语言来实现。例如机器的自检、系统的初始化等。效率:汇编语言的效率通常高于高级语言。“效率”指的是程序的目标代码所占有的空间和程序的运行速度。在需要节省内存空间和提高程序运行速度的场合常常使用汇编语言。,2023/11/15,80 x86/8088宏汇编语言程序设计,1.2 进位计数制及相互转换,1.2.1 进位计数制 人类在长期的生产实践中创造了我们最熟悉的十进制,而生活中还有八进制、十六进制等多种数系,还有在计算机中广泛使用的

5、二进制数系,它们的共同之处就是都采用进位计数制。,2023/11/15,80 x86/8088宏汇编语言程序设计,进位计数制,进位计数制采用位置表示法,即处于不同位置的同一数字符号,所表示的数值不同。如1992中两个9一个表示9百,一个表示9十。数制中每一固定位置对应的单位值称为“权”。如1992中1的位权为1千,其它各位的位权依次为百、十、一。,2023/11/15,80 x86/8088宏汇编语言程序设计,进位计数制,在进位计数制中,每个数位上允许的数码十有限的。每个数位上有限数码的个数叫基数。例如,在十进制数中有10个数码09。由于每个进位计数制的数码中必定包含0,因此有限数码中最大数码

6、一定是基数减一。如果某数位超过最大数码便产生向高位的进位,这就是进位计数制的数。,2023/11/15,80 x86/8088宏汇编语言程序设计,进位计数制,对于任意一个进位计数制,如果用R表示基数,那么任何一个数S均可用如下多项式表示:S=knRn+kn-1Rn-1+k0R0+k-1R-1+k-2R-2+k-mR-m 例如,十进制数12345.67可用下面的多项式来表示:12345.67=1104+2103+3102+4101+5100+610-1+710-2,2023/11/15,80 x86/8088宏汇编语言程序设计,进位计数制,在书写不同进位计数制数时,常常在尾部用一个字母来表示该数

7、时什么进位计数制的数。结尾用B(2进制数)、O(8进制数)、D(10进制数)、H(16进制数)。缺省为十进制数。例如712O、9198D、10010B、BE49H等等。,2023/11/15,80 x86/8088宏汇编语言程序设计,1.2 进位计数制及相互转换,1.2.2 各种数制间的相互转换 由于八进制数、十六进制数与二进制数之间有固定的对应关系,按每3位或4位二进制数一组就可以完成八进制数、十六进制数与二进制数之间的相互转换。因此,我们只需讨论十进制数与二进制数之间的相互转换。这两种数制之间的转换方法同样可以引入到十进制数与八、十六进制数之间的相互转换。,2023/11/15,80 x8

8、6/8088宏汇编语言程序设计,各种数制间的相互转换,1.2.2.1 十进制整数转换为二进制整数 十进制整数转换位二进制整数有两种转换方法:(1)减权定位法(2)除基取余法,2023/11/15,80 x86/8088宏汇编语言程序设计,减权定位法,首先写出要转换的十进制数,其次写出所有小于此数的各位二进制权值,然后用要转换的十进制数减去与它最接近的二进制权值,如够减则减去并在相应位记以1;如不够减则在相应位记以0并跳过此位;如此不断重复,直到该数为0为止。例:将十进制数117转换为二进制数 计算过程如下:小于117的二进制权为64 32 16 8 4 2 1,2023/11/15,80 x8

9、6/8088宏汇编语言程序设计,经过转换后,117D=1110101B,2023/11/15,80 x86/8088宏汇编语言程序设计,除基取余法,把要转换的十进制数的整数部分不断除以2,并记下余数,直到商为0为止。例:将十进制数117转换为二进制数。计算过程如下:,经过转换后,117D=1110101B,2023/11/15,80 x86/8088宏汇编语言程序设计,各种数制间的相互转换,1.2.2.2 十进制小数转换位二进制小数 转换方法与整数转换方面类似,也有两种方法。(1)减权定位法 与整数转换差异:a、位权值不同 二进制小数部分的位权值分别位 0.5,0.25,0.125,0.062

10、5 b、转换的小数需要根据程序要求或计算机字长来确定小数的位数。,2023/11/15,80 x86/8088宏汇编语言程序设计,减权定位法,例如把十进制小数0.8125转换成二进制数:0.8125-0.5=0.3125(a-1=1)0.3125-0.25=0.0625(a-2=1)0.0625 0.125(a-3=0)0.0625-0.0625=0(a-4=1)经过转换后,0.8125 D=0.1101B,2023/11/15,80 x86/8088宏汇编语言程序设计,十进制小数转换为二进制小数,(2)乘基取整法 十进制小数,成立基数2后,如整数部分为1则a-1=1,否则a-1=0,把剩余的

11、小数部分重复乘以基数2,直到小数为零或达到程序要求的小数位数。例如把十进制小数0.8125转换成二进制数:0.8125 2=1.625(a-1=1)0.625 2=1.25(a-2=1)0.25 2=0.5(a-3=0)0.5 2=1(a-4=1)经过转换后,0.8125 D=0.1101B,2023/11/15,80 x86/8088宏汇编语言程序设计,二进制整数转换为十进制整数,二进制整数转换为十进制整数有两种方法:按权相加法 首先二进制各位的系数乘以该位的位权值,然后把各位的乘积相加即得到转换后的十进制数。例如:110110101B=1 28+127+125+124+122+120=43

12、7D,2023/11/15,80 x86/8088宏汇编语言程序设计,二进制整数转换为十进制整数,(2)逐次乘积相加法 从最高位开始,逐次乘2再加次高位的系数,所得结果再乘以2并与相邻位的低位相加,一直进行到加上最低位为止。例如:1101101B=((1 2+1)2+0)2+1)2+12)+0)2+1=109D,2023/11/15,80 x86/8088宏汇编语言程序设计,二进制小数转换为十进制小数,二进制小数转换为十进制小数有两种方法:(1)按权相加法 同整数的按权相加法类同。例如:0.1101B=1 2-1+12-2+12-4=0.8125D,2023/11/15,80 x86/8088

13、宏汇编语言程序设计,二进制小数转换为十进制小数,(2)逐次除基相加法 从最低位开始,除以基数2,再与次低位相加,所得结果再除以2并与相邻的高位相加,如此继续到小数点后最高位除以2为止。例如:0.1101B=(1/2+0)/2+1)/2+1)/2=0.8125D,2023/11/15,80 x86/8088宏汇编语言程序设计,1.3 带符号数的表示,在现实生活中我们所使用的数有正数和负数,因此计算机中处理的数常常是带符号的数。在日常生活中我们用和表示数值的正负。在计算机中正数与负数是如何表示的呢?在计算机中通常在数的最高位用1位二进制数位来表示数的符号,0表示正数,1表示负数。,2023/11/

14、15,80 x86/8088宏汇编语言程序设计,1.3 带符号数的表示,在日常生活中用或表示的数叫真值。在二进制数的最高位设置符号位,把符号加以数值化,这样的数叫做机器数。例如 1011 的机器数表示为11011。带符号的机器数可以用原码、反码和补码三种不同码制来表示。由于补码表示法在加减运算中的优点,现在大多数计算机都采用补码表示法。IBM PC及其系列机也是采用的补码表示法。,2023/11/15,80 x86/8088宏汇编语言程序设计,1.3.1 原码表示法,原码是一种比较直观的机器数表示方法。原码用二进制数的最高位表示符号位(0表示正数,1表示负数),数的有效值用二进制数绝对值表示。

15、例如,1011的原码表示为:01011,1101的原码表示为11101。在原码表示法中数0有两种表示方法。对应8位带符号的二进制数,数0两种表示方法为00000000和10000000,分别对应0和0。8位带符号的二进制数的原码表示中能表示的最大数为01111111,最小数为11111111,即-127127。对原码表示的机器数进行加减运算时,需要根据指令中的加减和两数的符号,才能确定实际的加或减操作。因此,运算非常不方便。,2023/11/15,80 x86/8088宏汇编语言程序设计,1.3.2 补码表示法,由于原码对加减运算不太方便,因此设想让符号位也作为数的一部分参与运算,使器运算操作

16、简化,无需进行过多的判断和处理。补码能够满足这个要求。补码的表示规则:以最高位作为符号位(0表示正数,1表示负数)。正数的补码是其本身。负数的补码是对其正数“各位求反、末位加1”后形成的。,2023/11/15,80 x86/8088宏汇编语言程序设计,真值、原码与补码的变换,由于正数的原码和补码的机器数一样,因此我们只讨论负数的变换。从一个负数的真值变换为补码的方法:把n位二进制数连同符号位一起,按位变反(即0到1,1到0),然后最低位加1。例如-46补码=?,46补码=00101110按位取反 11010001末位加1 11010010,2023/11/15,80 x86/8088宏汇编语

17、言程序设计,真值、原码与补码的变换,如果一个负数已是原码,那么转换为补码表示,首先保持符号位不变,然后将有效数各位变反,最低位加1即可。例如:46原码=1 0 1 0 1 1 1 0有效数位按位取反 1 1 0 1 0 0 0 1末位加1 1 1 0 1 0 0 1 0,2023/11/15,80 x86/8088宏汇编语言程序设计,真值、原码与补码的变换,负数由真值或原码转换为补码时,有一个简便的方法:自最低位向最高位,遇到第一个1以及以前的各位0均保持不变,以后各高位按位变反。若变换前已是原码,则符号位保持不变。例如:46二进制真值:-00101110 46补码=11010010 46原码

18、:10101110 46补码:=11010010,2023/11/15,80 x86/8088宏汇编语言程序设计,真值、原码与补码的变换,在计算机程序中有一个求补运算。把一个已经是补码表示的数,连同符号位一起“各位求反、末位加1”的操作称作求补。求补运算实际上是一个变号运算或求相反数运算。即X补通过求补预算得到-X补。例如,y补=10011010,则对y补进行求补运算 各位求反 01100101 末位加1 01100110得到-y补=01100110,2023/11/15,80 x86/8088宏汇编语言程序设计,补码表示法中数的表示范围,在8位二进制补码表示法中,最大的数为01111111,

19、最小的数为10000000。因此8位二进制补码表示范围为:-1281278位二进制补码表示法中,0只有一种表示方法:00000000,而11111111为1的补码形式。,2023/11/15,80 x86/8088宏汇编语言程序设计,补码的加减运算,如果在计算机内,参与运算的数已是补码表示,那么按下面规则进行加减运算:x+y补=x补+y补 x-y补=x补+-y补加法运算:参加加法运算的两个数,连同符号位一起参加运算,并以2n为模便可得到运算的正确结果,且和数一定也是补码表示的。减法运算:先对减数进行一次求补运算,然后进行加法运算,同样可以得到正确的运算结果。,2023/11/15,80 x86

20、/8088宏汇编语言程序设计,补码的加法运算,例 X=74D,Y=-41D,求X+Y=?X补=01001010 Y补=11010111 X补=01001010+Y补=11010111 100100001 高位1自动舍去(以2n为模)因此,X补+Y补=00100001=33补,2023/11/15,80 x86/8088宏汇编语言程序设计,补码的减法运算,例 X=74D,Y=-41D,求X-Y=?X补=01001010 Y补=11010111-Y补=00101001 X补=01001010+-Y补=00101001 01110011 因此,X补-Y补=X补+-Y补=01110011=115补,2023/11/15,80 x86/8088宏汇编语言程序设计,1.4字符编码,计算机中通常采用的字符编码是ASCII码。ASCII码字符集采用一个字节(最高位用做奇偶校验)表示字符。标准的ASCII码共128个字符,分为可打印ASCII码和非打印ASCII码。可打印ASCII码:共95个。例如:数字09:30H39H 字母AZ:41H5AH 字母az:61H7AH 空格:20H 非打印ASCII码:用于控制性代码,共33个。例如 回车CR:0DH,换行LF:0AH,响铃BEL:07H,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号