汇编-第一章(精品).ppt

上传人:hyn****60 文档编号:71977926 上传时间:2023-02-08 格式:PPT 页数:42 大小:694.50KB
返回 下载 相关 举报
汇编-第一章(精品).ppt_第1页
第1页 / 共42页
汇编-第一章(精品).ppt_第2页
第2页 / 共42页
点击查看更多>>
资源描述

《汇编-第一章(精品).ppt》由会员分享,可在线阅读,更多相关《汇编-第一章(精品).ppt(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、汇编语言程序设计汇编语言程序设计河北工业大学计算机系河北工业大学计算机系韩雪Qq:办公室:办公室:C430211课程安排课程安排l课时安排:共课时安排:共48课时,课时,32课时上课,课时上课,16课时上机课时上机l教学形式:整个教学过程由授课、实验、和自学三教学形式:整个教学过程由授课、实验、和自学三个环节组成。个环节组成。l实验、作业、平时占本课程总学分的实验、作业、平时占本课程总学分的20%20%30%30%,期,期末理论考试占末理论考试占70%70%80%80%学分。学分。l前序课程:计算机文化基础前序课程:计算机文化基础 软件技术基础软件技术基础l后序课程:微机原理与接口技术、单片机

2、、嵌入式后序课程:微机原理与接口技术、单片机、嵌入式l教材:教材:IBM-PC汇编语言程序设计汇编语言程序设计 沈美明沈美明 温冬婵温冬婵 清华大学清华大学出版社出版社 2课程培养目标课程培养目标l1.1.熟练掌握熟练掌握8086/80888086/8088指令系统的常用指指令系统的常用指令及寻址方式令及寻址方式l2.2.掌握汇编语言程序编程及其程序设计掌握汇编语言程序编程及其程序设计的基本方法和技巧。的基本方法和技巧。l3.3.熟练掌握汇编语言程序的上机调试和熟练掌握汇编语言程序的上机调试和运行。运行。3第第1章章 汇编语言基础知识汇编语言基础知识41.1汇编语言简介汇编语言简介n n一、机

3、器语言一、机器语言n n计算机能够直接识别的数据是由二进制数计算机能够直接识别的数据是由二进制数0 0和和1 1组成组成的代码。的代码。n n机器指令就是用二进制代码组成的指令,一条机器机器指令就是用二进制代码组成的指令,一条机器指令控制计算机完成一个基本操作。指令控制计算机完成一个基本操作。n n机器语言编写的程序是计算机惟一能够直接识别并机器语言编写的程序是计算机惟一能够直接识别并执行的程序,而用其他语言编写的程序必须经过翻译执行的程序,而用其他语言编写的程序必须经过翻译才能变换成机器语言程序,所以,机器语言程序被称才能变换成机器语言程序,所以,机器语言程序被称为为目标程序目标程序。5二、

4、二、汇编语言汇编语言n n为了克服机器语言的缺点,人们采用助记符表示机器指令的操作码,用变量代替操作数的存放地址等,这样就形成了汇编语言。n ADD A,Bn n汇编语言是一种用符号书写的、基本操作与机器指令相对应的、并遵循一定语法规则的计算机语言。6二、二、汇编语言汇编语言n n用汇编语言编写的程序称为汇编源程序。n n汇编语言源程序要翻译成机器语言程序才可以由计算机执行。这个翻译的过程称为“汇编”,这种把汇编源程序翻译成目标程序的语言加工程序称为汇编程序。7三三 高级语言高级语言n n汇编语言虽然较机器语言直观,但仍然烦琐难懂。于是人们研制出了高级程序设计语言。高级程序设计语言接近于人类自

5、然语言的语法习惯,与计算机硬件无关,易被用户掌握和使用。n n目前广泛应用的高级语言有多种,如BASIC、JAVA、C、VC+等等。8 机器语言机器语言10000000B10000000B 表示表示“加法加法”操作操作 汇编语言汇编语言高级语言高级语言A=A+BA=A+B例:求解例:求解 A+BA+B ADD A,BADD A,B 表示执行表示执行 A+B AA+B A9 9四、四、汇编语言的特点汇编语言的特点n n(1)汇编语言与处理器密切相关。n n(2)汇编语言程序效率高。n n(3)编写汇编语言源程序比编写高级语言源程序烦琐。n n(4)调试汇编语言程序比调试高级语言程序困难。10汇编

6、语言的主要应用场合:汇编语言的主要应用场合:n n(1)程序执行占用较短的时间,或者占用较小存储容量的场合。n n(2)程序与计算机硬件密切相关,程序直接控制硬件的场合。n n(3)需提高大型软件性能的场合。n n(4)没有合适的高级语言的场合。111.2 计算机中数制的表示计算机中数制的表示 数制 数制之间的转换 运算12预预 备备 知知 识识22=4 24=16 28=256 210=1024 220=10485761K=210=1024 (Kilo)1M=1024K=220 (Mega)1G=1024M=230 (Giga)1个二进制位:bit(比特)8个二进制位:Byte(字节)1By

7、te=8bit2个字节:Word(字)1Word=2Byte=16bit131.2.1 数数 制制 十进制十进制十进制十进制:基数基数为为1010,逢十进一,逢十进一(按权展开式)(按权展开式)543.12=510543.12=5102 2+410+4101 1+310+3100 0+110+110-1-1+210+210-2-2 二进制二进制二进制二进制:基数为:基数为2 2,逢二进一,逢二进一1101112=125+124+122+121+120=5510 十六进制十六进制十六进制十六进制:基数为:基数为1616,逢十六进一,逢十六进一 1001,0001,1000,0111 1001,0

8、001,1000,0111 9 1 8 7 9 1 8 7 =9 16 =9 163 3+1 16+1 162 2+8 16+8 161 1+7 16+7 160 0 八进制八进制八进制八进制:基数为:基数为8 8,逢八进一,逢八进一14数 制 基 数 数 码 二进制 Binary 2 0,1 八进制 Octal 8 0,1,2,3,4,5,6,7 十进制 Decimal 10 0,1,2,3,4,5,6,7,8,9 十六进制 Hexadecimal 16 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F15 二进制 十进制 110111.11B 110111.11B=12=12

9、5 5+12+124 4+12+122 2+12+121 1+12+120 0+12+12-1-1 +12+12-2-2=55.75D=55.75D 1.2.2 数制之间的转换数制之间的转换 整数部分:除基取余法整数部分:除基取余法 例例例例:N=55D N=55D 55/2=27 55/2=27 余数余数=1 (=1 (a0)a0)27/2=13 27/2=13 余数余数=1 (=1 (a1)a1)13/2=6 13/2=6 余数余数=1 (=1 (a2)a2)6/2=3 6/2=3 余数余数=0 (=0 (a3)a3)3/2=1 3/2=1 余数余数=1 (=1 (a4)a4)1/2=0

10、1/2=0 余数余数=1 (=1 (a5)a5)N=55D=110111B N=55D=110111B 16例例例例:N=0.425DN=0.425D 0.4252=0.85 0.4252=0.85 整数整数=0=00.852=1.70 0.852=1.70 整数整数=1=10.702=1.400.702=1.40整数整数=1=10.402=0.800.402=0.80 整数整数=0=00.802=1.60 0.802=1.60 整数整数=1=1.N=0.425D=0.01101BN=0.425D=0.01101B 小数部分:乘基取整法小数部分:乘基取整法17 二进制 十六进制 A 1 9 C

11、A 1 9 C 1010 0001 1001 1100 1010 0001 1001 1100 A19CH=1010,0001,1001,1100B A19CH=1010,0001,1001,1100B 0011 0101 1011 1111 0011 0101 1011 1111 3 5 3 5 B FB F 0011 0011,0101,1011,1111B=350101,1011,1111B=35BFHBFH18 十六进制 十进制 BF3CH=11BF3CH=11 16163 3+15+15 16162 2+3+3 16161 1+1212 16160 0 除基取余法除基取余法 例例例例

12、:399 399D=?HD=?H399/16=24.1524/16=1.81/16=0.1399D=18FH191-2 将下列十进制数转换成二进制数将下列十进制数转换成二进制数和十六进制数和十六进制数n1、216n2、57.375n3、0.6875n4、43.42320n1、216=11011000B=D8Hn2、57.375=111001.011B=39.6Hn3、0.6875=0.1011B=BHn4、43.423=101011.01101B=2B.68H21作业:作业:完成下列十六进制数的运算,完成下列十六进制数的运算,并转换成十进制数进行校验并转换成十进制数进行校验n1、B7H+3AH

13、n2、DACBH-AFEH22 算术运算二进制二进制 加法规则加法规则 乘法规则乘法规则 0+0=0 00+0=0 0 0=00=0 0+1=1 0 0+1=1 0 1=01=0 1+0=1 1 1+0=1 1 0=00=0 1+1=0 1+1=0(进位进位1 1)1 1 1=11=11.2.3 运算运算(算术运算和逻辑运算)(算术运算和逻辑运算)十六进制十六进制 0 5 0 5 C 3 H 3 D 2 5 HC 3 H 3 D 2 5 H +3 D 2 5 H -0 5 C 3 H +3 D 2 5 H -0 5 C 3 H 4 2 E 8 H 3 7 6 2 H 4 2 E 8 H 3 7

14、 6 2 H23 逻辑运算(按位bit操作)“与”运算(AND)A B AB 0 0 0 0 1 0 1 0 0 1 1 1“异或”运算(XOR)A B AB 0 0 0 0 1 1 1 0 1 1 1 0“或”运算(OR)A B AB 0 0 0 0 1 1 1 0 1 1 1 1“非”运算(NOT)A A 0 1 1 024 X=0000 0000 1111 1111 B Y=0101 0101 0101 0101 B Z=0101 0101 1010 1010 B Z=55AAH例例:X=00FFH Y=5555H,求Z=XY=?251.3 计算机中数和字符的表示计算机中数和字符的表示1

15、.3.1 计算机中数的表示:数的表示:计算机中的数用二进制表示 机器数机器数机器数:数在计算机中的表示形式正负数数的符号也用二进制表示。符号位符号位=0 表示正数表示正数 符号位符号位=1 表示负数表示负数机器数在计算机中的运算和处理机器字长261.3 计算机中数和字符的表示计算机中数和字符的表示 7 6 5 4 3 2 1 0符号位 数值位假设机器字长n为16位符号位 数值位15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 假设机器字长n为8位l 机器字长:指参与运算的数的基本位数,标志着计算精度,一般是字节的整数倍(8位、16位、32位等)。27一、常用表示法一、

16、常用表示法 原码 反码 补码原码表示法原码表示法:符号+绝对值例:n=8bit +3原码=0 000,0011=03H -3原码=1 000,0011=83H +0原码=0 000,0000=00H -0原码=1 000,0000=80H 0的表示不唯一28反码表示法反码表示法:正数的反码同原码,负数的反码数值位与原码相反例:n=8bit +5反码=0 000,0101=05H -5反码=1 111,1010=FAH +0反码=0 000,0000=00H -0反码=1 111,1111=FFH 0的表示不唯一29补码表示法:补码表示法:IBM-PC采用补码表示法采用补码表示法正数的补码:同原

17、码正数的补码:同原码 +1补码补码 =0000 0001=01H +127补码补码=0111 1111=7FH +0补码补码 =0000 0000=00H负数的补码:负数的补码:(1)写出与该负数相对应的正数的补码写出与该负数相对应的正数的补码 (2)按位求反)按位求反 (3)末位加一)末位加一例:例:机器字长机器字长8位,位,-46补码补码 =?按位求反末位加一 46补码补码 =0010 1110 1101 0001 1101 0010=D2H 机器字长机器字长16位,位,-46补码补码 =FFD2H 30 -1补码 =1111 1111=FFH -127补码 =1000 0001=81H

18、-0补码 =0000 0000=00Hn位补码的表数范围:-2n-1 N 2n-1-1n=8 -128 N 127n=16 -32768 N 3276731n位二进制补码的表数范围位二进制补码的表数范围十进制 二进制 十六进制 十进制 十六进制 n=8 n=16+127 0111 1111 7F +32767 7FFF+126 0111 1110 7E +32766 7FFE.+2 0000 0010 02 +2 0002+1 0000 0001 01 +1 0001 0 0000 0000 00 0 0000 -1 1111 1111 FF -1 FFFF -2 1111 1110 FE -

19、2 FFFE .-126 1000 0010 82 -32766 8002-127 1000 0001 81 -32767 8001-128 1000 0000 80 -32768 800032补码的加法和减法补码的加法和减法求补运算求补运算 对一个二进制数按位求反、末位加一对一个二进制数按位求反、末位加一X补码补码 -X补码补码 X补码补码求补 求补117补=0075H 0000 0000 0111 0100B按位求反 1111 1111 1000 1011B末尾加1 1111 1111 1000 1100B FF8BH-117补=FF8BH33补码的加法和减法补码的加法和减法加法规则:加法

20、规则:X+Y补码补码 =X补码补码 +Y补码补码减法规则:减法规则:X-Y补码补码 =X补码补码 +-Y补码补码 补码减法可转换为补码加法补码减法可转换为补码加法符号位参加运算,能自动得到正确结果。符号位参加运算,能自动得到正确结果。无符号整数:数的表示范围无符号整数:数的表示范围 0 N 2n-1 n=8 0 N 255 n=16 0 N 6553534补码的符号扩展补码的符号扩展n n把8位二进制数扩展成16位二进制数l l无符号数时:在最高位前扩展8个0。l l补码形式的有符号数:进行符号位扩展,符号扩展后,其结果仍是该数的补码。n n例:符号扩展表示。n n21的8位二进制补码为:00

21、010101 n n符号扩展后21的16位二进制补码为:n n 0000000000010101。n n00010101和0000000000010101都是21的补码。35l1、ASCII码:American Standard Code for Information Interchange,美国信息交换标准码。l l ASCII码:用一个字节来表示一个字符,低7位为字符的ASCII值,最高位一般用作校验位。l例例:A 41H l a 61H l 1 31Hl 换行 0AHl 回车 0DHl 空格 20H1.3.2 字符的表示36值符号值符号值符号0空字符44,9132空格45-9233!4

22、6.933447/9435#48 570 9 95-36$58:9637%59;97 122a z38&6012541)63?12642*64127DEL(Delete键)43+65 90 A Z37n一个二进制数在计算机中有着深刻的意义。从不同的角度看可以有不同的解释。n例如:00110010B,即32H。n可看成是字符“2”的ASCII码;n可以看成是50D的二进制表示;既是无符号数50D,又是50D的补码;n可以看成是一个地址的偏移量;n可以看成是一个指令的机器码等等。2、从不同的角度看待一个二进制数38小结小结n n1.11.1汇编语言简介汇编语言简介n n机器语言、汇编语言、高级语言

23、机器语言、汇编语言、高级语言n n1.21.2计算机中的数制计算机中的数制n n二进制、八进制、十进制、十六进制二进制、八进制、十进制、十六进制n n算术运算、逻辑运算算术运算、逻辑运算n n1.31.3计算机中数和字符的表示计算机中数和字符的表示n n原码、反码、补码原码、反码、补码n nASCIIASCII码码39如何学好汇编如何学好汇编n n汇编语言入门比较枯燥,需要记忆大量的指令n n多练,多看,多想,不要只看书和书上的例子,有条件就把例子弄到电脑上试一试n n学会使用debug,很多情况下不知道程序对不对的时候,用debug试一下就解决了n n入门后会觉得汇编甚至比高级语言还简单,设计方法很直观。40思考题:设以下各数均为有符号数思考题:设以下各数均为有符号数的补码表示,请比较它们的大小的补码表示,请比较它们的大小n1、327F 与 A521Hn2、80H 与 32Hn3、8000H 与 A632Hn4、72H 与 13H41n n1.IBM PC微机中,有符号数是用()表示的 n nA.原码B.补码C.反码D.BCD码 n n2.把汇编源程序变成代码程序的过程是n nA.编译B.汇编C.编辑D.链接 42

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁