微机原理与接口技术:第一章 基础知识

上传人:大米 文档编号:569928468 上传时间:2024-07-31 格式:PPT 页数:41 大小:831KB
返回 下载 相关 举报
微机原理与接口技术:第一章 基础知识_第1页
第1页 / 共41页
微机原理与接口技术:第一章 基础知识_第2页
第2页 / 共41页
微机原理与接口技术:第一章 基础知识_第3页
第3页 / 共41页
微机原理与接口技术:第一章 基础知识_第4页
第4页 / 共41页
微机原理与接口技术:第一章 基础知识_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《微机原理与接口技术:第一章 基础知识》由会员分享,可在线阅读,更多相关《微机原理与接口技术:第一章 基础知识(41页珍藏版)》请在金锄头文库上搜索。

1、1汇编语言程序设计汇编语言程序设计2教学计划教学计划1.1.总学时数为总学时数为4848,其中课堂讲授,其中课堂讲授4646学时,习题课学时,习题课2 2学学时。另有上机实验时。另有上机实验1616学时。学时。 2. 教学方式:教学方式: 课堂讲授课堂讲授3. 最最后后成成绩绩评评定定方方法法:平平时时出出勤勤与与作作业业占占10,半半期测验占期测验占10,实验,实验10,期末考试占,期末考试占70。4. 教材:教材:汇编语言程序设计汇编语言程序设计 廖建明廖建明 主编主编 清华大学出版社清华大学出版社35. 参考资料:参考资料:8086/8088宏宏汇汇编编语语言言程程序序设设计计教教程程王

2、王正正智智,电子工业出版社电子工业出版社 IBM-PC汇汇编编语语言言程程序序设设计计 沈沈美美明明编编著著,清清华华大学出版社大学出版社汇汇编编语语言言程程序序设设计计殷殷肖肖川川主主编编,清清华华大大学学出出版社版社Win32汇汇编编语语言言程程序序设设计计教教程程严严义义等等编编著著,机机械工业出版社械工业出版社4第一章第一章 基础知识基础知识 本章主要学习内容:本章主要学习内容:1.汇编语言的一般概念汇编语言的一般概念 2.学习和使用汇编语言的目的学习和使用汇编语言的目的3.进位计数制及其相互转换进位计数制及其相互转换4.带符号数的表示带符号数的表示5.字符的表示字符的表示 6.基本逻

3、辑运算基本逻辑运算 51.1 汇编语言的一般概念汇编语言的一般概念 计算机程序设计语言可分为机器语言、高级计算机程序设计语言可分为机器语言、高级语言和汇编语言三类。语言和汇编语言三类。 1. 机器语言机器语言 机器语言就是把控制计算机的机器语言就是把控制计算机的命令命令和和各种数各种数据据直接用直接用二进制数码二进制数码表示的一种程序设计语言。表示的一种程序设计语言。 例如例如,要实现将寄存器要实现将寄存器AH的内容与数的内容与数10相加,结相加,结果再送回到寄存器果再送回到寄存器AH中。中。 1011 0100 0000 1010 为了书写和记忆方便可用十六进制数表示:为了书写和记忆方便可用

4、十六进制数表示:B40A用机器语言实现上述操作的代码:用机器语言实现上述操作的代码:6又又如如,要要让让计计算算机机完完成成46+40的的算算式式运运算算。假假设设参参加加运运算算的的数数据据事事先先分分别别存存放放在在寄寄存存器器AL、BL和和CL中中,并并要要求求将将运运算算结果存放到寄存器结果存放到寄存器AL中。中。 用机器指令来实现的代码为:用机器指令来实现的代码为: 1111 0110 1110 0011 在在32位位二二进进制制数数表表示示的的机机器器语语言言程程序序代代码码中中,包包含含了了乘乘法法和和加加法法运运算算操操作作,其其中中前前16位位代代码码表表示示了了乘乘法法运运

5、算算,后后16位代码表示了加法运算。位代码表示了加法运算。 0000 0000 1100 1000机机器器指指令令中中既既包包含含了了指指示示运运算算功功能能的的代代码码,又又给给出出了了参参加加运算的操作数据,表示非常详细。运算的操作数据,表示非常详细。十六进制数:十六进制数:F6E3十六进制数:十六进制数:00C87优点优点:机器语言最直接地表示了计算机内部的基:机器语言最直接地表示了计算机内部的基本操作,用它编制的程序在计算机中运行的效率本操作,用它编制的程序在计算机中运行的效率最高,即运行速度最快,程序长度最短。最高,即运行速度最快,程序长度最短。 缺点缺点:用二进制数表示的内容既不便

6、于记忆又难:用二进制数表示的内容既不便于记忆又难于阅读。于阅读。 82. 高级语言高级语言 高级语言将计算机内部的操作细节屏蔽起高级语言将计算机内部的操作细节屏蔽起来,用户不需要知道计算机内部数据的传送和来,用户不需要知道计算机内部数据的传送和处理的细节,使用类似于自然语言的一些语句处理的细节,使用类似于自然语言的一些语句来编制程序,完成指定的任务。来编制程序,完成指定的任务。 特点特点:程序设计简单,但程序效率较机器语言低。:程序设计简单,但程序效率较机器语言低。 93. 汇编语言汇编语言 虽虽然然高高级级语语言言方方便便了了人人对对计计算算机机的的使使用用,但但其其运运行行效效率率较较低低

7、。在在一一些些应应用用场场合合,如如系系统统管管理理,实实时时控控制制等等,难难于于满满足足要要求求。因因此此又又希希望望使使用机器语言。用机器语言。(1)定义)定义 为为了了便便于于记记忆忆和和阅阅读读,使使用用字字母母和和符符号号来来表表示示机机器器语语言言的的命命令令,用用十十进进制制数数或或十十六六进进制制数数来来表表示示数数据据,这这样样的的计计算算机机程程序序设设计计语语言言就就称为汇编语言。称为汇编语言。10 (2)汇编语言程序与机器语言程序的关系)汇编语言程序与机器语言程序的关系例例如如,对对于于前前述述的的46+40算算式式运运算算,如如果果把把机机器器语语言言程程序改写为汇

8、编语言程序,则为以下两条汇编指令:序改写为汇编语言程序,则为以下两条汇编指令: (3)不同类型计算机有不同的机器指令系统和汇编)不同类型计算机有不同的机器指令系统和汇编语言描述语言描述 为了学习和使用某种计算机的汇编语言,必须为了学习和使用某种计算机的汇编语言,必须熟悉计算机的内部组成结构。但并非要掌握计算机熟悉计算机的内部组成结构。但并非要掌握计算机系统的全部硬件组成,只需掌握用汇编语言编制程系统的全部硬件组成,只需掌握用汇编语言编制程序时所涉及到的那些硬件的结构和功能。序时所涉及到的那些硬件的结构和功能。 一一条条汇汇编编语语言言的的语语句句与与一一条条机机器器语语言言指指令令对对应应,汇

9、编语言程序与机器语言程序效率相同汇编语言程序与机器语言程序效率相同. MUL BLADD AL, CL 11CPU中有哪些寄存器及其作用?中有哪些寄存器及其作用?CPU是如何访问存储器?是如何访问存储器?输入输出操作的方式有哪些?输入输出操作的方式有哪些? 在本课程中,将以在本课程中,将以IBM-PC系列微型计算机系列微型计算机及其汇编语言为例,学习汇编语言程序设计的基及其汇编语言为例,学习汇编语言程序设计的基本原理、方法和技巧。本原理、方法和技巧。 对对一一台台计计算算机机来来说说,机机器器语语言言的的执执行行主主要要取取决决于于该该计计算算机机的的中中央央处处理理器器CPU。因因此此熟熟悉

10、悉计计算算机内部结构主要是指机内部结构主要是指CPU的功能结构。它包括:的功能结构。它包括:12 1.2 学习和使用汇编语言的目的学习和使用汇编语言的目的 1.学学习习和和使使用用汇汇编编语语言言可可以以从从根根本本上上认认识识、理理解解计算机的工作过程。计算机的工作过程。 通通过过用用汇汇编编语语言言编编制制程程序序可可以以更更清清楚楚地地了了解解计计算算机机是是如如何何完完成成各各种种复复杂杂的的工工作作。在在此此基基础础上上,程程序序设设计计人人员员能能更更充充分分地地利利用用机机器器硬硬件件的的全全部部功功能,发挥机器的长处。能,发挥机器的长处。 2. 在计算机系统中,某些功能必须用汇

11、编语言程序在计算机系统中,某些功能必须用汇编语言程序来实现。来实现。 如如:机机器器自自检检、系系统统初初始始化化、实实际际的的输输入入输输出出设设备备的的操作等。操作等。13在某些要求节省内存空间和提高程序运行速度的在某些要求节省内存空间和提高程序运行速度的应用场合,如实时过程控制、智能仪器仪表等,应用场合,如实时过程控制、智能仪器仪表等,常常用汇编语言来编制程序。常常用汇编语言来编制程序。 3. 汇编语言程序的效率高于高级语言程序汇编语言程序的效率高于高级语言程序 “效效率率”有有两两个个方方面面的的含含义义:程程序序的的目目标标代代码码长长度度和运行的速度。和运行的速度。14 1.3 进

12、位计数制及其相互转换进位计数制及其相互转换 一一. 进位计数制进位计数制 使用一定个数的数码的组合来表示数字,这种使用一定个数的数码的组合来表示数字,这种表示方法称为进位计数制。根据所使用的数码的表示方法称为进位计数制。根据所使用的数码的个数,就产生了不同的进位计数制。个数,就产生了不同的进位计数制。 如十进制数,用如十进制数,用0、19十个数码的组合来表示数十个数码的组合来表示数字。每个数码排在不同位置,所表示的数值大小字。每个数码排在不同位置,所表示的数值大小不相同。不相同。 例如:例如:222从右边开始从右边开始,第一个第一个2表示表示2个个1,第二,第二个个2表示有表示有2个个10,第

13、三个,第三个2表示有表示有2个个100. 15将各个位置上所表示的基本数值称为位权将各个位置上所表示的基本数值称为位权, 简称权。简称权。 不同的进位制和不同的位置其位权是不同的。不同的进位制和不同的位置其位权是不同的。位权乘以对应位置上的数码就等于该数位上数值位权乘以对应位置上的数码就等于该数位上数值的大小。的大小。 每个数位上能使用不同数码的个数称为基数。每个数位上能使用不同数码的个数称为基数。 例例如如十十进进制制有有十十个个数数码码09,基基数数为为10,二二进进制制基基数为数为2。每个数位能取的最大数码值每个数位能取的最大数码值=基数基数-1。如十进制为。如十进制为10-1=9 16

14、 在计算机中数据表示一般采用二进制数,在计算机中数据表示一般采用二进制数,因为它在计算机中最容易表示和存储,且适合因为它在计算机中最容易表示和存储,且适合于逻辑值的表达与运算。于逻辑值的表达与运算。 对人来说二进制不便于书写和阅读,习惯使对人来说二进制不便于书写和阅读,习惯使用十进制,但是十进制与二进制间的转换关系不用十进制,但是十进制与二进制间的转换关系不是很简便。是很简便。 二进制与二进制与8进制、进制、16进制之间有非常简单的转进制之间有非常简单的转换关系:换关系:3位二进制数与一位位二进制数与一位8进制数对应,进制数对应,4位二位二进制数与一位进制数与一位16进制数对应进制数对应。 因

15、此在程序中常常使用因此在程序中常常使用8进制和进制和16进制。进制。17 在书写不同进位计数制数时,为了区别,常在书写不同进位计数制数时,为了区别,常在数的尾部用一个字母来表示。在数的尾部用一个字母来表示。 B(Binary)二进制数)二进制数O (Octal)或或Q八进制数八进制数D (Decimal)十进制数十进制数H (Hexadecimal)十六进制数。十六进制数。如未使用任何字母,则默认表示是十进制数。如未使用任何字母,则默认表示是十进制数。 例如,例如,10B, 10Q, 10D,10H18二二. 各种数制间的相互转换各种数制间的相互转换 由于二进制与八进制和十六进制间的转换很简单

16、,由于二进制与八进制和十六进制间的转换很简单,下面主要讨论二进制与十进制之间的相互转换。下面主要讨论二进制与十进制之间的相互转换。 1. 十进制整数转换为二进制数十进制整数转换为二进制数 有两种转换方法有两种转换方法 : (1)减权定位法)减权定位法l从二进制数高位起,依次用待转换的十进制数与各从二进制数高位起,依次用待转换的十进制数与各位权值进行比较;位权值进行比较;l如够减,则该数位系数如够减,则该数位系数Ki=1,同时减去该位权值,同时减去该位权值,余数作为下一次比较的值;余数作为下一次比较的值;l如不够减,则如不够减,则Ki=0 。19例:将例:将325转换为二进制数,直到余数为转换为

17、二进制数,直到余数为0。首先确定二进制数的最高位首先确定二进制数的最高位因为因为29(512)32528(256)。因此从。因此从K8位开始比较。位开始比较。 减数比较减数比较 Ki 对应二进制数对应二进制数325-256=69 K8 169128 K7 069-64=5 K6 1532 K5 0516 K4 058 K3 05-4=1 K2 112 K1 01-1=0 K0 1所以所以 325D=101000101B 20(2) 除基取余数除基取余数 将十进制数除以基数将十进制数除以基数2,其余数为二进制数的最,其余数为二进制数的最低位,再用其商除低位,再用其商除2,其余数为次低位,反复做下

18、,其余数为次低位,反复做下去,直到商去,直到商0. 这种转换方法同样适合于其它进制数之间的转换。这种转换方法同样适合于其它进制数之间的转换。 除基除基余数余数Ki2 3252 1622 812 402 202 102 52 22 10101000101k0k1k2k3k4k5k6k7k8212.十进制小数转换为二进制数十进制小数转换为二进制数 例例 将十进制数将十进制数0.645转换为二进制数转换为二进制数 (1) 减权定位法减权定位法 转换时应根据程序要求的精度或计算机的字长来确转换时应根据程序要求的精度或计算机的字长来确定二进制的位数定二进制的位数.减权比较减权比较Ki对应二进制数对应二进

19、制数0.645-0.5 =0.145 k-1 10.1450.25 k-2 00.145-0.125=0.02 k-3 10.020.0625 k-4 00.020.03125 k-5 00.02-0.015625 k-6 1所以所以 0.645D=0.101001B22(2)乘基取整法)乘基取整法 例例 将将0.8125D转换为二进制数转换为二进制数乘以基数乘以基数 Ki 整数部分整数部分 0.81250.81252 21.625 K-1 11.625 K-1 10.6250.6252 21.25 K-2 11.25 K-2 10.250.252 20.5 K-3 00.5 K-3 00.5

20、0.52 21. K-4 11. K-4 1所以所以 0.8125D0.1101B233. 二进制整数转换为十进制数二进制整数转换为十进制数 (1)按权相加法)按权相加法 (2)逐次乘基相加法)逐次乘基相加法1 0 1 0 0 0 1 0 1324 22222222325例例 101000101B12812612212025664413252410204080162244. 二进制小数转换为十进制数二进制小数转换为十进制数(1)按权相加法)按权相加法(2)逐次除基相加法)逐次除基相加法转换从最低位开始转换从最低位开始例例 0. 1 0 1 0 0 12222220.101001B0.64062

21、5D例例 0.101001B= 12-112-312-60.5+0.125+0.01560.640625D0.640625 0.28125 0.5625 0.1250.250.5255. 二进制与八进制和十六进制间的转换二进制与八进制和十六进制间的转换二进制与八进制和十六进制之间的对应关系很简单:二进制与八进制和十六进制之间的对应关系很简单:三位二进制数对应一位八进制数,四位二进制数对三位二进制数对应一位八进制数,四位二进制数对应一位十六进制数。应一位十六进制数。例如:例如:10100010B2所以所以 10100010B=242Q10100010B = 1010 0010A 2所以所以 10

22、100010B = A2 H=10 100 0102426 1.4 带符号数的表示带符号数的表示 在在一一般般算算术术表表示示中中使使用用”“+”和和“-”来来表表示示正正数数与与负负数数,而在计算机中使用而在计算机中使用“0”和和“1”来表示正数和负数。来表示正数和负数。用用“”或或“”表示正负的数叫表示正负的数叫真值真值用用“0”或或“1”表示正负的数叫机表示正负的数叫机器数器数 带符号的机器数可以用原码、反码和补码三种不同码制来带符号的机器数可以用原码、反码和补码三种不同码制来表示。一般计算机中大多采用补码表示。表示。一般计算机中大多采用补码表示。 一、原码表示一、原码表示 二进制数的最

23、高位表示符号,二进制数的最高位表示符号,0表示正,表示正,1表示负。数值表示负。数值 部分部分用二进制数绝对值表示用二进制数绝对值表示 27 8位二进制数原码的最大数为位二进制数原码的最大数为01111111(+127) 最小数为最小数为11111111 (-127) 8位二进制数表示范围:位二进制数表示范围:127X+1270的原码有两种表示形式的原码有两种表示形式:00000000和和10000000(+0和和-0) 二、补码的表示二、补码的表示 1.补码的定义补码的定义 带符号数带符号数X的补码表示的补码表示X补补定义为:定义为:X补补M+X (Mod M) 其中模数其中模数M根据机器数

24、的位数而定,如位数为根据机器数的位数而定,如位数为8则则M=28 用补码表示的机器数,符号位仍然表示数的符号:用补码表示的机器数,符号位仍然表示数的符号:0为正为正,1为为负。对于正数,补码与原码相同,对于负数需要进行变换。负。对于正数,补码与原码相同,对于负数需要进行变换。 28 2.由真值、原码变换为补码由真值、原码变换为补码 由于正数的原码与补码相同,下面讨论负数的变换方法。由于正数的原码与补码相同,下面讨论负数的变换方法。 负负数数的的真真值值变变换换为为补补码码的的方方法法:将将各各位位变变反反(0变变1,1变变0)然后在最低位加然后在最低位加1.负负数数的的原原码码变变换换为为补补

25、码码:保保持持符符号号位位不不变变,其其余余各各位位变变反反,最低位加最低位加1。例例 将将59变换为补码变换为补码真值真值 00111011变反变反 11000100加加1 11000101所以所以 -59补补11000101原码原码 10111011变反变反 11000100加加1 11000101293.补码数的表示范围补码数的表示范围当位数为当位数为8时,最大补码为时,最大补码为01111111=+127补补 最小补码为最小补码为10000000=-128补补0的的 补补 码码 只只 有有 一一 个个 , 0补补=00000000, 而而 10000000是是 -128补补111111

26、11=-1补补对于对于16位数,则补码表示范围为位数,则补码表示范围为-32768+32767 4. 补码的加减运算补码的加减运算 规则:规则:X+Y补补=X补补+Y补补 X-Y补补=X补补Y补补=X补补+-Y补补 求求补补运运算算是是将将原原数数连连同同符符号号位位一一起起(不不管管是是正正还还是是负)按位求反,再在最低位加负)按位求反,再在最低位加1。其中其中-Y补补是对是对Y补补执行一次求补运算执行一次求补运算30(1)加法运算:)加法运算:X+Y例例1 X=74D Y=41DX补补01001010 Y补补00101001010010100010100101110011所以所以 X补补Y

27、补补01110011115补补例例2 X=74D Y=-41DX补补01001010 Y补补110101110100101011010111001000011自动自动舍去舍去所以所以 X补补Y补补0010000133补补31例例 3 X=-74D Y=41DX补补10110110 Y补补001010011011011000101001+11011111所以所以 X补补Y补补11011111-33补补例例4 X=-74D Y=-41DX补补10110110 Y补补110101111011011011010111+100011011自动自动舍去舍去所以所以 X补补Y补补10001101=-115补

28、补32(2) 减法运算减法运算例例5 X=74D Y=41DX补补01001010 Y补补00101001 -Y补补=110101110100101011010111001000011自动自动舍去舍去所以所以 X补补Y补补X补补Y补补0010000133补补例例6 X=74D Y=41DX补补01001010 Y补补11010111 -Y补补=001010010100101000101001011100111自动自动舍去舍去所以所以 X补补Y补补X补补Y补补01110011115补补33例例7 X=-74D Y=41DX补补10110110 Y补补00101001 -Y补补=110101111

29、011011011010111+100011011自动自动舍去舍去所以所以 X补补Y补补X补补Y补补10001101-115补补例例8 X=-74D Y=-41DX补补10110110 Y补补11010111 -Y补补=001010011011011000101001+110111111自动自动舍去舍去所以所以 X补补Y补补X补补Y补补11011111-33补补34 1.5 字符的表示字符的表示 在在计计算算机机内内部部,各各种种字字符符(字字母母、符符号号、数数字字码码)都都是是按按一一定定的的方方式式编编写写成成二二进进制制信信息息。不不同同的的计计算算机机以以及及不不同同的的场场合合所所

30、采采用用的的编编码码形形式式可可能能不不同同。目目前前最最广广泛泛采采用用的的是是ASCII码码(American Standard Code for Information Interchange)标准标准ASCII码为一字节,其中用低七位表示字符编码码为一字节,其中用低七位表示字符编码(见附录见附录A),用最高位表示奇偶数验位。用最高位表示奇偶数验位。 7 6 5 4 3 2 1 0字符编码字符编码奇偶校验位奇偶校验位35标准标准ASCII码共有码共有128个,可分为两类:个,可分为两类:非打印非打印ASCII码码,共共33个个,用于控制操作用于控制操作, 如如BEL(响铃响铃07H),

31、DEL(删除删除7FH),CR(回车回车,0DH), LF(换行换行,0AH).可打印可打印ASCII码共有码共有95个,如数字符个,如数字符09,大小写字母等。,大小写字母等。36 1.6 基本逻辑运算基本逻辑运算 计算机内部采用二进制数表示信息,具有物理实现容易、可计算机内部采用二进制数表示信息,具有物理实现容易、可靠性高的优点,且由于状态靠性高的优点,且由于状态“0”和和“1”正好与逻辑运算中正好与逻辑运算中的逻辑的逻辑“真真”和和“假假”对应,因此可以用对应,因此可以用“0”和和“1”来表来表示逻辑变量的取值,很容易地实现各种复杂的逻辑运算。示逻辑变量的取值,很容易地实现各种复杂的逻辑

32、运算。在计算机的指令系统中,一般都有逻辑运算指令。下面介在计算机的指令系统中,一般都有逻辑运算指令。下面介绍几种常见的基本逻辑运算。绍几种常见的基本逻辑运算。371. “与与”运算运算(AND) “与与”运算也叫逻辑乘,常用运算也叫逻辑乘,常用 或或 表示。表示。 “与与”运运算算是是指指:仅仅当当逻逻辑辑变变量量A与与B都都是是1时时,运运算结果算结果F才为才为1。其它情况。其它情况F为为0,设有逻辑变量设有逻辑变量A和和B,则,则“与与”运算为:运算为:F=A B 或或 F=A B0 0 0 0 1 0 1 0 0 1 1 1即有:即有:382. “或或”运算运算(OR)“或或”运算也叫逻

33、辑加,用运算也叫逻辑加,用或表示。即有:或表示。即有:F=A B F=A +B“或或”运算是指当逻辑变量运算是指当逻辑变量A与与B中,至少有一个中,至少有一个为为1时,结果时,结果F为为1,其他情况,其他情况F为为0。即有:即有: 0 00 0 11 1 01 1 11393. “非非”运算运算逻辑逻辑“非非”运算通常是在逻辑变量上方加一横线表示。运算通常是在逻辑变量上方加一横线表示。“非非”运算是指对逻辑变量取相反的一个逻辑值。运算是指对逻辑变量取相反的一个逻辑值。“非非”运算规则为:运算规则为:如如A为为1,则,则 A0,若,若A为为0,则,则 A=11 = 0 0 = 1404. “异或异或”运算运算(XOR)通常用通常用 表示,即表示,即 F =A B“异或异或”运算是指:当运算是指:当A和和B相同时(同时为相同时(同时为1或同时为或同时为0),),运算结果运算结果F为为0,而不同时,而不同时,F为为1。上述四种基本逻辑运算规则用真值表表示为:上述四种基本逻辑运算规则用真值表表示为:1 1=0 1 0=1 0 1=1 0 0=0A B A B A B A B A B0 0 0 0 1 1 00 1 0 1 1 0 11 0 0 1 0 1 11 1 1 1 0 0 0运算规则为:运算规则为:41作业:P15 1.4(2) (3)(6) 1.6 1.8

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号