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

上传人:努力****83 文档编号:192430835 上传时间:2023-03-06 格式:PPT 页数:41 大小:831KB
返回 下载 相关 举报
微机原理与接口技术:第一章 基础知识_第1页
第1页 / 共41页
微机原理与接口技术:第一章 基础知识_第2页
第2页 / 共41页
微机原理与接口技术:第一章 基础知识_第3页
第3页 / 共41页
点击查看更多>>
资源描述
1汇编语言程序设计汇编语言程序设计2教学计划教学计划1.1.总学时数为总学时数为4848,其中课堂讲授,其中课堂讲授4646学时,习题课学时,习题课2 2学学时。另有上机实验时。另有上机实验1616学时。学时。2.教学方式:教学方式:课堂讲授课堂讲授3.最后成绩评定方法:最后成绩评定方法:平时出勤与作业占平时出勤与作业占10,半,半期测验占期测验占10,实验,实验10,期末考试占,期末考试占70。4.教材:教材:汇编语言程序设计汇编语言程序设计 廖建明廖建明 主编主编 清华大学出版社清华大学出版社35.参考资料:参考资料:8086/8088宏汇编语言程序设计教程宏汇编语言程序设计教程王正智,王正智,电子工业出版社电子工业出版社 IBM-PC汇编语言程序设计汇编语言程序设计 沈美明编著,清沈美明编著,清华大学出版社华大学出版社汇编语言程序设计汇编语言程序设计殷肖川主编,清华大学出殷肖川主编,清华大学出版社版社Win32汇编语言程序设计教程汇编语言程序设计教程严义等编著,机严义等编著,机械工业出版社械工业出版社4第一章第一章 基础知识基础知识 本章主要学习内容:本章主要学习内容:1.汇编语言的一般概念汇编语言的一般概念 2.学习和使用汇编语言的目的学习和使用汇编语言的目的3.进位计数制及其相互转换进位计数制及其相互转换4.带符号数的表示带符号数的表示5.字符的表示字符的表示 6.基本逻辑运算基本逻辑运算 51.1 汇编语言的一般概念汇编语言的一般概念 计算机程序设计语言可分为机器语言、高级计算机程序设计语言可分为机器语言、高级语言和汇编语言三类。语言和汇编语言三类。1.机器语言机器语言 机器语言就是把控制计算机的机器语言就是把控制计算机的命令命令和和各种数各种数据据直接用直接用二进制数码二进制数码表示的一种程序设计语言。表示的一种程序设计语言。例如例如,要实现将寄存器要实现将寄存器AH的内容与数的内容与数10相加,结相加,结果再送回到寄存器果再送回到寄存器AH中。中。1011 0100 0000 1010 为了书写和记忆方便可用十六进制数表示:为了书写和记忆方便可用十六进制数表示:B40A用机器语言实现上述操作的代码:用机器语言实现上述操作的代码:6又如,要让计算机完成又如,要让计算机完成46+40的算式运算。假设参加运算的的算式运算。假设参加运算的数据事先分别存放在寄存器数据事先分别存放在寄存器AL、BL和和CL中,并要求将运算中,并要求将运算结果存放到寄存器结果存放到寄存器AL中。中。用机器指令来实现的代码为:用机器指令来实现的代码为:1111 0110 1110 0011 在在32位二进制数表示的机器语言程序代码中,包含了乘位二进制数表示的机器语言程序代码中,包含了乘法和加法运算操作,其中前法和加法运算操作,其中前16位代码表示了乘法运算,后位代码表示了乘法运算,后16位代码表示了加法运算。位代码表示了加法运算。0000 0000 1100 1000机器指令中既包含了指示运算功能的代码,又给出了参加机器指令中既包含了指示运算功能的代码,又给出了参加运算的操作数据,表示非常详细。运算的操作数据,表示非常详细。十六进制数:十六进制数:F6E3十六进制数:十六进制数:00C87优点优点:机器语言最直接地表示了计算机内部的基:机器语言最直接地表示了计算机内部的基本操作,用它编制的程序在计算机中运行的效率本操作,用它编制的程序在计算机中运行的效率最高,即运行速度最快,程序长度最短。最高,即运行速度最快,程序长度最短。缺点缺点:用二进制数表示的内容既不便于记忆又难:用二进制数表示的内容既不便于记忆又难于阅读。于阅读。82.高级语言高级语言 高级语言将计算机内部的操作细节屏蔽起高级语言将计算机内部的操作细节屏蔽起来,用户不需要知道计算机内部数据的传送和来,用户不需要知道计算机内部数据的传送和处理的细节,使用类似于自然语言的一些语句处理的细节,使用类似于自然语言的一些语句来编制程序,完成指定的任务。来编制程序,完成指定的任务。特点特点:程序设计简单,但程序效率较机器语言低。:程序设计简单,但程序效率较机器语言低。93.汇编语言汇编语言 虽然高级语言方便了人对计算机的使用,虽然高级语言方便了人对计算机的使用,但其运行效率较低。在一些应用场合,如系统但其运行效率较低。在一些应用场合,如系统管理管理,实时控制等,难于满足要求。因此又希实时控制等,难于满足要求。因此又希望使用机器语言。望使用机器语言。(1)定义)定义 为了便于记忆和阅读,使用字母和符号来为了便于记忆和阅读,使用字母和符号来表示机器语言的命令,用十进制数或十六进制表示机器语言的命令,用十进制数或十六进制数来表示数据,这样的计算机程序设计语言就数来表示数据,这样的计算机程序设计语言就称为汇编语言。称为汇编语言。10(2)汇编语言程序与机器语言程序的关系)汇编语言程序与机器语言程序的关系例如例如,对于前述的对于前述的46+40算式运算,如果把机器语言程算式运算,如果把机器语言程序改写为汇编语言程序,则为以下两条汇编指令:序改写为汇编语言程序,则为以下两条汇编指令:(3)不同类型计算机有不同的机器指令系统和汇编)不同类型计算机有不同的机器指令系统和汇编语言描述语言描述 为了学习和使用某种计算机的汇编语言,必须为了学习和使用某种计算机的汇编语言,必须熟悉计算机的内部组成结构。但并非要掌握计算机熟悉计算机的内部组成结构。但并非要掌握计算机系统的全部硬件组成,只需掌握用汇编语言编制程系统的全部硬件组成,只需掌握用汇编语言编制程序时所涉及到的那些硬件的结构和功能。序时所涉及到的那些硬件的结构和功能。一条汇编语言的语句与一条机器语言指令对应一条汇编语言的语句与一条机器语言指令对应,汇编语言程序与机器语言程序效率相同汇编语言程序与机器语言程序效率相同.MUL BLADD AL,CL 11CPU中有哪些寄存器及其作用?中有哪些寄存器及其作用?CPU是如何访问存储器?是如何访问存储器?输入输出操作的方式有哪些?输入输出操作的方式有哪些?在本课程中,将以在本课程中,将以IBM-PC系列微型计算机系列微型计算机及其汇编语言为例,学习汇编语言程序设计的基及其汇编语言为例,学习汇编语言程序设计的基本原理、方法和技巧。本原理、方法和技巧。对一台计算机来说,机器语言的执行主要取对一台计算机来说,机器语言的执行主要取决于该计算机的中央处理器决于该计算机的中央处理器CPU。因此熟悉计算。因此熟悉计算机内部结构主要是指机内部结构主要是指CPU的功能结构。它包括:的功能结构。它包括:12 1.2 学习和使用汇编语言的目的学习和使用汇编语言的目的 1.学习和使用汇编语言可以从根本上认识、理学习和使用汇编语言可以从根本上认识、理解计算机的工作过程。解计算机的工作过程。通过用汇编语言编制程序可以更清楚地了解计通过用汇编语言编制程序可以更清楚地了解计算机是如何完成各种复杂的工作。在此基础上,算机是如何完成各种复杂的工作。在此基础上,程序设计人员能更充分地利用机器硬件的全部功程序设计人员能更充分地利用机器硬件的全部功能,发挥机器的长处。能,发挥机器的长处。2.在计算机系统中,某些功能必须用汇编语言程序在计算机系统中,某些功能必须用汇编语言程序来实现。来实现。如:机器自检、系统初始化、实际的输入输出设备的如:机器自检、系统初始化、实际的输入输出设备的操作等。操作等。13在某些要求节省内存空间和提高程序运行速度的在某些要求节省内存空间和提高程序运行速度的应用场合,如实时过程控制、智能仪器仪表等,应用场合,如实时过程控制、智能仪器仪表等,常常用汇编语言来编制程序。常常用汇编语言来编制程序。3.汇编语言程序的效率高于高级语言程序汇编语言程序的效率高于高级语言程序“效率效率”有两个方面的含义:程序的目标代码长度有两个方面的含义:程序的目标代码长度和运行的速度。和运行的速度。14 1.3 进位计数制及其相互转换进位计数制及其相互转换 一一.进位计数制进位计数制 使用一定个数的数码的组合来表示数字,这种使用一定个数的数码的组合来表示数字,这种表示方法称为进位计数制。根据所使用的数码的表示方法称为进位计数制。根据所使用的数码的个数,就产生了不同的进位计数制。个数,就产生了不同的进位计数制。如十进制数,用如十进制数,用0、19十个数码的组合来表示数十个数码的组合来表示数字。每个数码排在不同位置,所表示的数值大小字。每个数码排在不同位置,所表示的数值大小不相同。不相同。例如:例如:222从右边开始从右边开始,第一个第一个2表示表示2个个1,第二,第二个个2表示有表示有2个个10,第三个,第三个2表示有表示有2个个100.15将各个位置上所表示的基本数值称为位权将各个位置上所表示的基本数值称为位权,简称权。简称权。不同的进位制和不同的位置其位权是不同的。不同的进位制和不同的位置其位权是不同的。位权乘以对应位置上的数码就等于该数位上数值位权乘以对应位置上的数码就等于该数位上数值的大小。的大小。每个数位上能使用不同数码的个数称为基数。每个数位上能使用不同数码的个数称为基数。例如十进制有十个数码例如十进制有十个数码09,基数为,基数为10,二进制基,二进制基数为数为2。每个数位能取的最大数码值每个数位能取的最大数码值=基数基数-1。如十进制为。如十进制为10-1=9 16 在计算机中数据表示一般采用二进制数,在计算机中数据表示一般采用二进制数,因为它在计算机中最容易表示和存储,且适合因为它在计算机中最容易表示和存储,且适合于逻辑值的表达与运算。于逻辑值的表达与运算。对人来说二进制不便于书写和阅读,习惯使对人来说二进制不便于书写和阅读,习惯使用十进制,但是十进制与二进制间的转换关系不用十进制,但是十进制与二进制间的转换关系不是很简便。是很简便。二进制与二进制与8进制、进制、16进制之间有非常简单的转进制之间有非常简单的转换关系:换关系:3位二进制数与一位位二进制数与一位8进制数对应,进制数对应,4位二位二进制数与一位进制数与一位16进制数对应进制数对应。因此在程序中常常使用因此在程序中常常使用8进制和进制和16进制。进制。17 在书写不同进位计数制数时,为了区别,常在书写不同进位计数制数时,为了区别,常在数的尾部用一个字母来表示。在数的尾部用一个字母来表示。B(Binary)二进制数)二进制数O(Octal)或或Q八进制数八进制数D(Decimal)十进制数十进制数H(Hexadecimal)十六进制数。十六进制数。如未使用任何字母,则默认表示是十进制数。如未使用任何字母,则默认表示是十进制数。例如,例如,10B,10Q,10D,10H18二二.各种数制间的相互转换各种数制间的相互转换 由于二进制与八进制和十六进制间的转换很简单,由于二进制与八进制和十六进制间的转换很简单,下面主要讨论二进制与十进制之间的相互转换。下面主要讨论二进制与十进制之间的相互转换。1.十进制整数转换为二进制数十进制整数转换为二进制数 有两种转换方法有两种转换方法:(1)减权定位法)减权定位法l从二进制数高位起,依次用待转换的十进制数与各从二进制数高位起,依次用待转换的十进制数与各位权值进行比较;位权值进行比较;l如够减,则该数位系数如够减,则该数位系数Ki=1,同时减去该位权值,同时减去该位权值,余数作为下一次比较的值;,余数作为下一次比较的值;l如不够减,则如不够减,则Ki=0。19例:将例:将325转换为二进制数,直到余数为转换为二进制数,直到余数为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,其余数为次低位,反复做下,其余数为次低位,反复做下去,直到商去,直到商0.这种转换方法同样适合于其它进制数之间的转换。这种转换方法同样适合于其它进制数之间的转换。除基除基余数余数Ki2 3252 1622 812 402 202 102 52 22 10101000101k0k1k2k3k4k5k6k7k8212.十进制小数转换为二进制数十进制小数转换为二进制数 例例 将十进制数将十进制数0.645转换为二进制数转换为二进制数(1)减权定位法减权定位法 转换时应根据程序要求的精度或计算机的字长来确转换时应根据程序要求的精度或计算机的字长来确定二进制的位数定二进制的位数.减权比较减权比较Ki对应二进制数对应二进制数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.50.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.640625D例例 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所以所以 10100010B=A2 H=10 100 0102426 1.4 带符号数的表示带符号数的表示 在一般算术表示中使用在一般算术表示中使用”“”“+”和和“-”来表示正数与负数,来表示正数与负数,而在计算机中使用而在计算机中使用“0”和和“1”来表示正数和负数。来表示正数和负数。用用“”或或“”表示正负的数叫表示正负的数叫真值真值用用“0”或或“1”表示正负的数叫机器表示正负的数叫机器数数 带符号的机器数可以用原码、反码和补码三种不同码制来带符号的机器数可以用原码、反码和补码三种不同码制来表示。一般计算机中大多采用补码表示。表示。一般计算机中大多采用补码表示。一、原码表示一、原码表示 二进制数的最高位表示符号,二进制数的最高位表示符号,0表示正,表示正,1表示负。数值表示负。数值 部分部分用二进制数绝对值表示用二进制数绝对值表示 27 8位二进制数原码的最大数为位二进制数原码的最大数为01111111(+127)最小数为最小数为11111111(-127)8位二进制数表示范围:位二进制数表示范围:127X+1270的原码有两种表示形式的原码有两种表示形式:00000000和和10000000(+0和和-0)二、补码的表示二、补码的表示 1.补码的定义补码的定义 带符号数带符号数X的补码表示的补码表示X补补定义为:定义为:X补补M+X (Mod M)其中模数其中模数M根据机器数的位数而定,如位数为根据机器数的位数而定,如位数为8则则M=28 用补码表示的机器数,符号位仍然表示数的符号:用补码表示的机器数,符号位仍然表示数的符号:0为正为正,1为为负。对于正数,补码与原码相同,对于负数需要进行变换。负。对于正数,补码与原码相同,对于负数需要进行变换。28 2.由真值、原码变换为补码由真值、原码变换为补码 由于正数的原码与补码相同,下面讨论负数的变换方法。由于正数的原码与补码相同,下面讨论负数的变换方法。负数的真值变换为补码的方法:将各位变反(负数的真值变换为补码的方法:将各位变反(0变变1,1变变0)然后在最低位加然后在最低位加1.负数的原码变换为补码:保持符号位不变负数的原码变换为补码:保持符号位不变,其余各位变反,其余各位变反,最低位加最低位加1。例例 将将59变换为补码变换为补码真值真值 00111011变反变反 11000100加加1 11000101所以所以 -59补补11000101原码原码 10111011变反变反 11000100加加1 11000101293.补码数的表示范围补码数的表示范围当位数为当位数为8时,最大补码为时,最大补码为01111111=+127补补 最小补码为最小补码为10000000=-128补补0的补码只有一个,的补码只有一个,0补补=00000000,而,而10000000是是-128补补11111111=-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补补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补补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补补=110101111011011011010111+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 字符的表示字符的表示 在计算机内部,各种字符(字母、符号、数字码)都是按一定在计算机内部,各种字符(字母、符号、数字码)都是按一定的方式编写成二进制信息。不同的计算机以及不同的场合所采的方式编写成二进制信息。不同的计算机以及不同的场合所采用的编码形式可能不同。目前最广泛采用的是用的编码形式可能不同。目前最广泛采用的是ASCII码(码(American Standard Code for Information Interchange)标准标准ASCII码为一字节,其中用低七位表示字符编码码为一字节,其中用低七位表示字符编码(见附录见附录A),用最高位表示奇偶数验位。用最高位表示奇偶数验位。7 6 5 4 3 2 1 0字符编码字符编码奇偶校验位奇偶校验位35标准标准ASCII码共有码共有128个,可分为两类:个,可分为两类:非打印非打印ASCII码码,共共33个个,用于控制操作用于控制操作,如如BEL(响铃响铃07H),DEL(删除删除7FH),CR(回车回车,0DH),LF(换行换行,0AH).可打印可打印ASCII码共有码共有95个,如数字符个,如数字符09,大小写字母等。,大小写字母等。36 1.6 基本逻辑运算基本逻辑运算 计算机内部采用二进制数表示信息,具有物理实现容易、可计算机内部采用二进制数表示信息,具有物理实现容易、可靠性高的优点,且由于状态靠性高的优点,且由于状态“0”和和“1”正好与逻辑运算中的正好与逻辑运算中的逻辑逻辑“真真”和和“假假”对应,因此可以用对应,因此可以用“0”和和“1”来表示逻来表示逻辑变量的取值,很容易地实现各种复杂的逻辑运算。辑变量的取值,很容易地实现各种复杂的逻辑运算。在计算机的指令系统中,一般都有逻辑运算指令。下面介在计算机的指令系统中,一般都有逻辑运算指令。下面介绍几种常见的基本逻辑运算。绍几种常见的基本逻辑运算。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)“或或”运算也叫逻辑加,用运算也叫逻辑加,用或表示。即有或表示。即有: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
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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