微型计算机原理 教学全案.ppt

上传人:本田雅阁 文档编号:2117506 上传时间:2019-02-18 格式:PPT 页数:314 大小:4.35MB
返回 下载 相关 举报
微型计算机原理 教学全案.ppt_第1页
第1页 / 共314页
微型计算机原理 教学全案.ppt_第2页
第2页 / 共314页
微型计算机原理 教学全案.ppt_第3页
第3页 / 共314页
亲,该文档总共314页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《微型计算机原理 教学全案.ppt》由会员分享,可在线阅读,更多相关《微型计算机原理 教学全案.ppt(314页珍藏版)》请在三一文库上搜索。

1、微型计算机原理,开设的基本目的: 计算机工作原理是电类专业学生知识结构的重要组成部分,相关知识对后续课程、日常生活和工作、开展毕业设计和硕博课题等各个方面都可能有不同程度的作用。学习目标: 掌握微型计算机系统的结构组成、实现机理、工作原理; 掌握汇编语言程序设计的初步方法和调试过程; 建立微型计算机系统整体概念,具备利用微机进行硬件和软件开发的初步能力。 课程特点:抽象、难理解、乏味!虽然对象是具体的。 课时安排:共48学时,授课40学时,上机实验8学时。 要求:加强理解,把相关知识具体化而不要抽象化。,第一章 微型计算机基本原理,1-1 概述 1、电子数字计算机概念 目前通常所说的计算机是指

2、电子数字计算机 。 电子技术实现、数字化信息处理方式、高度复杂的逻辑电子电路。信息以二进制形式(逻辑电平形式)表示;自动地进行信息处理。 2、计算机分类 按信息处理方式:数字计算机和模拟计算机。 模拟计算机由于受元器件质量影响,其计算精度较低,目前已很少生产。,按用途:通用计算机和专用计算机。 专用计算机针对某用途专门设计。 按规模、速度(没有一个统一的标准,1989年IEEE(电气与电子工程师协会)提出一种分类) 巨型计算机或超级计算机(Supercomputer) 小巨型计算机(Minisupercomputer) 大型主机(Mainframe) 小型计算机(Minicomputer) 工

3、作站(Work Station) 个人计算机(Personal ComputerPC),3、计算机发展简史 1)机械计算机的诞生 1614 年:苏格兰人John Napier发明了一种可以进行四则运算和方根运算的精巧装置。 1890年:Herman Hollerith 设计了用于美国人口普查的机器。结果仅用6周就得出了准确的人口统计数据(如果用人工方法,大概要花10年时间)。 2)电子计算机时代 1906 年: 美国人Lee De Forest 发明电子管,为电子计算机的发展奠定了基础。 1946 年: 第一台真正意义上的数字电子计算机(ENIAC)由美国宾夕法尼亚大学研制成功。,重达数吨,占

4、据几间房间,需要多个操作员来维持它们正常工作。 非常昂贵,以至于只有政府和大型机构才能够买得起。 当时的人们认为几台或者几十台这样的机器就能够满足全世界的需求了。 在此期间,冯.诺伊曼(VON.NEUMANM)也研制出一台被认为是现代计算机原型的通用电子计算机。,根据使用电子器件的不同,电子计算机经历了四个阶段: 电子管计算机 (19461956) 晶体管计算机 (19571964) 集成电路计算机 (19651970) 超大规模集成 电路计算机 (1971至今),用机器语言、汇编语言编写程序 用于军事和国防尖端技术 开始使用高级语言 开始用于工程技术、数据处理和 其它科学领域 采用微程序、流

5、水线等技术,提高 运行速度 出现操作系统、诊断程序等软件 采用半导体存储器 采用图形界面操作系统 器件速度更快, 软件、外设更加丰富,微型计算机是第四代计算机时期出现的一种。 自从1981年IBM公司进入微型计算机领域推出了IBMPC以后,计算机的发展开创了一个新的时代微型计算机时代。微型计算机的迅速、大规模的应用与普及,使计算机真正广泛地应用于工业、农业、科学技术以及社会生活与日常生活的各个方面。以前的大型机、中型机、小型机的界线巳经日益模糊与消失。随着微型计算机应用的普及和发展,芯片与微型机的功能和性能迅速提高,其功能已经远远超过了20世纪80 年代以前的小型机、中型机,甚至超过了大型机。

6、,当前微型计算机运算速度一般为2030亿次/秒; 世界最快的计算机速度为280万亿次/秒; 中国最快的计算机为上海超级计算机中心的“曙光4000A”,8万亿次/秒,世界排名第31位。 4、计算机的特点 处理速度快 运算精度高 存储记忆能力强 自动执行任务功能 人机交互功能,5、计算机的应用 数值计算: 基本功能,但此功能应用逐渐缩小; 信息处理:数据库,管理信息系统,办公自动化系统;目前世界约80的计算机用于信息处理; 控制、自动化:过程控制,生产自动化 辅助分析、设计:CAD,CAM,CAI 仿真计算 网络应用 人工智能:模式识别、神经网络、专家系统、机器人等,6、计算机发展方向 当前模式的

7、电子计算机发展趋势是朝微型化和巨型化两方面发展。 功能发展 多媒体计算机:更好地支持多媒体技术,音频、视频数据压缩、解压缩技术,多媒体数据的通信。 计算机智能化:具有推理、联想、学习等思维功能和模式识别功能。 网络计算机:全面支持网络功能。,新型计算机的研究: 神经网络计算机:从内部结构模拟人脑神经系统。 生物计算机:使用蛋白分子为材料的生物芯片。 光学计算机:用光子代替电子,用光连接代替金属导线连接,运算速度快千倍。,7、个人计算机的构成 中央处理器CPU、主板、内存、硬盘、显卡、显示器、键盘等,1-2 微型计算机系统的组成 1、组成部分,2、中央处理器,中央处理器CPU(Central P

8、rocessing Unit)具有运算和控制功能,是整个微型计算机的核心,也称微处理器。 微处理器的主要功能部件有 (1)运算器,也称算术逻辑部件(ALU):用来进行算术和逻辑运算。 (2)控制器:整个系统的指挥控制部件,从内存中取出指令、翻译指令并操控运算器及其它部件完成相应操作。 (3)寄存器:包括程序计数器、指令寄存器、累加器、地址寄存器、数据寄存器、通用寄存器等。,3、存储器(Memory),记忆部件:存储程序和数据。 存储器分级配置 内存:由半导体存储器组成,读写速度快; 外存:如硬盘、软盘等,容量大,读写速度慢 程序在外存存放,执行时调入内存。,4、外部设备、I/O设备、外设(Pe

9、ripheral Equipment) 完成信息转换、计算机与外界交互;文字、声音等自然信息以及其它物理信息与计算机能识别的二进制信息进行转换; 使计算机对人有用,至少应有一台外设。,5、总线(Bus),计算机各部件之间传送信息的公共通道。 各部件分时复用总线。 在某一时刻,只能有一个部件向总线发送数据,否则形成总线冲突。 可有多个部件从总线接收数据。 总线结构降低了部件之间连线数量,提高可靠性;但数据交换速度降低。 总线按传递信息的内容分为: 数据总线(Data Bus -DB)-双向 地址总线(Address Bus-AB)-单向 控制总线(Control BusCB)-双向,6、微型计算

10、机结构框图,1、位与字节,1)位 ( Bit) 指计算机能表示的最小信息单位。 在计算机中采用二进制表示数据和指令,故: 位就是一个二进制位,有两种状态,“0” 和 “1”,1-3 微型计算机系统的工作原理,2)字节 ( Byte ) 相邻的8位二进制数称为一个字节 1 Byte = 8 bit 如: 1100 0011 ;0101 0111,3)字(Word) 字是CPU内部进行数据处理的基本单位。 字长与CPU内部的寄存器、 运算器、总线宽度是一致的。 通常也将2个字节(16位)定义为一个字;,4)位编号,指令是CPU能执行的一项基本操作。 如:存数、取数、加、减、乘、除等,2、指令与指令

11、系统,指令系统(或指令集)是某CPU所能执行的全部操作的总和。不同的CPU,其指令系统不同。,程序是用户为使用计算机完成特定任务而编写的指令的序列。,为使指令能被计算机识别,必须以二进制编码形式表示,称为机器码。 用机器码形式表示的指令不便于人来记忆和理解,于是用一些助记符表示指令代码。如: MOV AX, 3561H; ADD BL, 21H 用助记符表示指令代码的语言称为汇编语言。 汇编源程序经特定的软件进行编译,形成机器码程序目标程序。 高级语言:按一定语法规则设计的便于理解和编程的计算机编程语言,需经特定的编译软件转化为机器语言才能被计算机执行。,3、计算机的工作过程,程序存放在存储器

12、中,CPU上电后自动从存储器特定位置开始逐条执行指令。 执行过程: 取一条指令 分析指令 执行指令,举例 一段汇编程序 MOV AL,7 ;将数值7装入累加器AL中 ADD AL,10 ;AL内容与10相加,结果存于AL中 HLT ;停止操作,编译成机器码: 10110000 (MOV AL,X) 00000111 ( X=7 ) 00000100 (ADD AL,X )00001010 ( X=10 ) 11110100 (HLT ),4、当前计算机的基本实现方案冯.诺依曼(Von Neumann)体系结构,由运算器、控制器、存储器、输入设备、输出设备五部分组成,各自行使不同功能; 指令与数

13、据存放在存储器中,顺序执行; 采用二进制形式表示信息。 该体系结构是冯.诺依曼(Von Neumann)于1946年提出,奠定了计算机实现框架; 1949年诞生冯.诺依曼结构计算机,至今计算机结构没有根本突破。,年代 型号 晶体管数量 1978年 8086 2.9万 1982年 80286 13.5万 1985年 80386 32万 1990年 80486 120万 1993年 Pentium 320万 1996年 Pentium Pro 550万 1997年 Pentium II 750万,300MHz 1999年 Pentium III 2000年 Pentium IV 4200万,1.4

14、GHz(0.18um工艺),Moore定律: “晶体管的大小将以指数速率变小,而集成到芯片上的晶体管数目将1824个月翻一番。” Gordon Moore,1965( Intel公司的创始人,著名半导体科学家),二进制(Binary)表示;计算机表示信息的方式。 十进制(Decimal)表示;人的自然表示。 16进制(Hexadecimal)表示;二进制的等价表示,每4位二进制数字等价于一位16进制数字。用0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F 表示16个数码。 表示:二进制B; 十进制D(可省略); 十六进制H,1-4 计算机运算基础,1、常用的计数制,2、数制间的数

15、值转换,1)非十进制数化十进制数的方法:各位数码乘以与其对应的权,然后相加即可。 如: 1011B=1*23+0*22+1*21+1*20=11 02E3H=0*163+2*162+E*16+3=2*256+14*16+3=739,2)十进制转化为N进制数的方法 整数部分除以N,并记下余数,直到商为0; 将余数按从后往前的顺序排列起来,构成整数部分。 小数部分乘以N ,并记下结果的整数部分,直到结果的小数部分为0;然后将结果的整数部分从前向后排列起来,构成小数部分。,3)十六进制与二进制数的转换 十六进制数每一位用4位二进制数表示,4)举例 求100D的二进制和十六进制表示 100/2=50余

16、0 50/2=25余0 25/2=12余1 12/2=6余0 6/2=3余0 3/2=1余1 1/2=0余1 所以100D=1100100B=64H,其它例: 18.125 10010.001 B ;101010.111B 42.875 D,3、计算机中常用的编码,1)所谓编码是指信息在计算机中的表示方法。信息既包括数字也包括字母、符号和一些不可见的控制符号。 2)BCD码(Binary-Coded Decimal) 用四位二进制数表示一位十进制数。 3)ASCII码(American Standard Code for Information Interchange) 用7位二进制进行编码(

17、00-7FH),可表示128种字符,见附录1。 在机器内用一个字节表示,D7=0。,4)汉字编码: 常用国标码,用两个7位编码表示汉字和一些图形符号; 在机器内用两个8位字节表示,称为内码; 每个字节的D7=1,以与ASCII码相区别。 如汉字啊的国标码为0110000 0100001; 对应内码为10110000 10100001,在计算机中,符号只能用数字来表示。 用二进制数字的最高位表示该数的符号。正数为0,负数为1。其余位为数值位。 机器数的表示方法有:原码、反码、补码。,4、计算机中有符号数的表示,5、原码、反码和补码 1)原码:正数的原码为该数的二进制数; 负数的原码仅符号位为1。

18、 例:若用8位二进制数表示机器数,则13的原码为00001101;-13的原码为10001101。 原码便于乘除运算,但不便于加减运算。,2)反码 正数的反码等于原码; 负数的反码为其原码的符号位不变,数值位按位取反。 例:若用8位二进制数表示机器数,则13的反码为00001101;-13的反码为11110010; 对反码取反得到相反数的反码。 例如: -(-13)反码为(11110010)的各位取反。,3)补码 正数的补码等于原码; 负数的补码为其反码+1。 例:若用8位二进制数表示机器数,则13的补码为00001101;-13的补码为11110010+1=11110011。 对补码取补可得

19、到相反数的补码。 -(-13)的补码为00001100+1=00001101=13,4)补码的性质与作用 x+y补 = x补 + y补 x-y补 = x补 + -y补 x补补=x;补码的补码等于原码 如 32-13=32+(-13)=00100000B+11110011B=00010011B 而13-32=00001101B+11100000B=11101101B =-19的补码 采用补码可将减法转化为加法,而且符号位同数值位一同参与运算,运算简单。 引入补码的目的是:1)便于加减法运算;2)使加法和减法相统一,降低硬件复杂性。,例如:有两个补码X=00100000B,Y=00001101B

20、计算X-Y的过程如下: 1)对Y取补,得到其相反数的补码 (-Y)=11110011B 2)启动CPU中的加法器,计算X+(-Y) 00100000B+11110011B=000010011B 思考:计算Y-X应怎样处理?,M位二进制数能够表示的无符号数范围为: 02M-1 M位二进制数能够表示的有符号数范围为: 原码 -2M-1+12M-1-1 反码 -2M-1+12M-1-1 补码 -2M-12M-1-1,6、无符号数和有符号数的表示范围,典型8位二进制数的码值 数值 原码 反码 补码 127 7FH 7FH 7FH 126 7EH 7EH 7EH 1 01H 01H 01H 0 00H/

21、80H 00H/0FFH 00H -1 81H 0FEH 0FFH -2 82H 0FDH 0FEH -127 0FFH 80H 81H -128 / / 80H,如上所述,一定位数的二进制数能够表示的数值范围是有限的。 两数相加或相减,结果超过该数字位能够表示的无符号数范围(最高位产生进位),称为进位。 两数相加或相减,结果超过该数字位能够表示的有符号数范围(与进位无关),称为溢出。 进位和溢出是互不相干的两种情况。 课后自己结合进位和溢出概念给出具体算例。,7、进位与溢出,第二章 Intel-8086微处理器结构,2-1 Intel-80x86系列微处理器概述,1971年推出Intel 4

22、004芯片,被认为是世界上第一个微处理器(CPU)。 1978年Intel 公司推出8086 CPU,16位。1979年又推出8088,8位数据线,以满足与当时的8位机间的兼容性。 IBM公司进入个人计算机领域,采用Intel 8088芯片,使Intel CPU成为主流。,2-2 Intel-8086微处理器结构,1、8086概况,16位微处理器 地址总线20条,寻址能力220=1MB DIP-40(双列直插式40脚)封装,2、8086的功能结构 传统CPU执行指令的过程是:取指令执行指令再取指令,串行操作。 而8086的取指令与执行指令操作是由两个不同的部件完成,可同时进行。目的是提高CPU

23、的执行速度。,8086从功能上可分成两部分: 总线接口部件BIU(Bus Interface Unit); 执行部件EU(Execution Unit)。 总线接口部件BIU负责与内存或I/O端口进行指指令和数据传送;执行部件EU负责指令执行。 BIU从内存中取指令送到指令队列; 当EU执行指令时,BIU要配合EU从指定的内存单元或I/O端口中读取数据,或者把EU的操作结果送到指定的内存单元或I/O端口去。,3、8086的存储器组织 1)8086寻址能力的扩展 存储器由很多个8位的存储单元组成,每个存储单元对应于一个地址编码。CPU要访问某存储单元,需将该单元地址发到地址总线。 8086内部与

24、地址有关的寄存器均为16位,只能寻址216=64KB的存储器空间。 为了扩大CPU可访问的存储器容量,8086 CPU采用两个寄存器来形成地址:段地址寄存器、偏移地址寄存器。 这样,8086实际上有20条地址线,能够访问的存储单元数(即寻址能力)为220=1MB; 地址范围:00000H0FFFFFH,2)8086中20位地址的生成 将1MB存储空间分成若干个不超过64KB的区段,称为存储器的段(Segment)。 每个存储段有一个16位的基准地址,称为段地址; 以段地址为基准,段内各存储单元的相对地址称为偏移地址(16位); 段地址存放在CPU的段寄存器中;偏移地址存放在偏移地址寄存器中。

25、20位物理地址= 16位段地址24(左移四位)+16位偏移地址 例如:段地址为2500H,偏移地址9700H 则形成的物理地址为25000H+9700H=2E700H,3)物理地址、逻辑地址 物理地址:存储器中各存储单元的实际地址。 逻辑地址:用段地址和偏移地址表示的相对地址。 表示形式为 段地址:偏移地址 如 2000H:1340H 一个物理地址可对应多个逻辑地址; 如物理地址12345H,逻辑地址可以是 1234H:0005H;1200H:0345H;1100H:1345H,4)段的种类 有了段寄存器,可将1M的存储空间分成很多个段; 为便于管理,8086设计上将不同的存储内容存放在不同的

26、段中;分为代码段、数据段、堆栈段和附加段。 用户编写的程序放在代码段中,使用的数据放在数据段中。,4、8086的寄存器组 数据寄存器:AX、BX、CX、DX 指针及变址寄存器:SP、BP、SI、DI 段寄存器:CS、DS、ES、SS 指令指针IP (Instruction Pointer) 状态标志寄存器PSW(Program State Word) 说明 数据寄存器和指针及变址寄存器又统称通用寄存器; 指令指针与状态标志统称控制寄存器; 所有寄存器均为16位。,1)数据寄存器 AX:通用寄存器;算术运算的主寄存器累加器(Accumulator); BX:通用寄存器;一些指令中作为基址(Bas

27、e)寄存器; CX:通用寄存器;一些指令中作为计数器(Counter) ; DX:通用寄存器;一些指令中作为数据(Data)寄存器与AX配合使用。,说明: 在一般指令中,这些寄存器可作为通用寄存器使用,在一些特定的指令中,各寄存器有特定功能; 既可作为16位使用,也可分成两个8位寄存器使用 高8位记作 : AH、BH、CH、DH 低8位记作 : AL、BL、CL、DL,2)指针及变址寄存器 SP:堆栈指针寄存器(Stack Pointer),用来指示栈顶的偏移地址。 BP:基址指针寄存器(Base Pointer),指示堆栈区中的一个基地址。 SI:源变址寄存器(Source Index)。

28、DI:目的变址寄存器(Destination Index)。 说明:这4个寄存器也可以作为通用寄存器使用。,3)段寄存器 CS:代码段(Code Segment);存放程序段的段地址。 DS:数据段(Data Segment);存放数据段的段地址。 ES:附加段(Extra Segment);存放附加段的段地址. SS:堆栈段(Stack Segment);存放堆栈段的段地址。,4)控制寄存器 IP:指令指针(Instruction Pointer)寄存器;能自动加1,生成代码段中下一条将要取的指令的偏移地址。 PSW:程序状态字(Program State Word)寄存器;用各个状态位反映

29、算术逻辑运算的一些状态标志和控制标志。,5、PSW标志位的定义 C进位标志,结果在最高位产生进位或借位时置1; P奇偶标志,结果中1的个数为偶数时置1; A半进位标志(低4位向高4位的进位); Z运算结果为零时置1; S符号标志,该标志位与结果的最高位相同; O溢出标志,运算结果超出有符号数表示范围时置1; D方向标志,用于串操作,置1使串操作按减1执行; T跟踪标志,置1后处理器进入单步执行方式,便于调试; I中断允许标志,置1允许CPU接受外部可屏蔽中断; 前6种标志为状态标志,后3种标志为控制标志。,CPU怎样判断是否溢出? 按结果的最高位和次高位的进位情况判断;对两个进位进行异或,异或

30、结果为1表示有溢出,为0表示无溢出。 原理不做讨论。,第三章 Intel-8086的指令系统,3-1 8086的指令格式,指令由操作码和操作数两部分字段组成。 如:MOV AX,2345H MOV为操作码;AX和2345H为操作数。 操作码 指示计算机执行何种操作。 操作数 参加操作的数据对象或其所在的地址。,8086系列指令包括无操作数指令、单操作数指令和双操作数指令。 如 HLT ;无操作数指令 INC CX ;单操作数指令 ADD AX , BX ;双操作数指令。第一操作数为目的操作数,第二操作数为源操作数。,3-2 8086指令的寻址方式,1、指令中数据的存放位置 指令中进行操作的数据

31、存放位置有三种情况: )存于指令中(立即数) 数据包含在指令中,即被操作数据直接表示在指令的操作数字段中。 例:MOV AL , 08H 这种操作数称为立即数。 )存于寄存器中(寄存器操作数) 数据存放在的一个寄存器中。 例:INC CX,)存于存储器中(存储器操作数) 数据在内存中或在I/O端口中,存放数据的偏移地址以某种方式表示在指令中。 如: MOV AX,2500H MOV AX, BX 此例中2500、BX为存储器操作数。 存储器操作数中操作数字段指示此操作数的偏移地址,而段地址由某个段寄存器提供。此例中默认为数据段DS。,2、8086指令的寻址方式 寻址方式:指令中指明操作数存放位

32、置的表达方式。 8086有6种寻址方式 1)立即寻址 操作数为立即数,直接存放在指令的操作数字段中。 只能作为源操作数。,例:MOV AL, 05H 指令执行后: (AL)=05H,例: MOV AX, 3064H 指令执行后: (AX)=3064H,2) 寄存器寻址方式 操作数在指令所指示的寄存器中。 表示格式:直接在指令中写出寄存器名称。 如 MOV BX,AX MOV CL,23H,3)直接寻址 操作数存放在内存中,操作数的偏移地址直接表示在指令中。 表示格式:偏移地址 如 MOV AX,3100H 默认操作数存放在内存的数据段中。,例:MOV AX,3100H 若 (DS)=6000H

33、 (63100H)=3050H 则 (AX)=3050H,操作数也允许存放在其它段中(SS,ES),此时应在指令中指明段超越。 段超越 若操作数不在指令默认的段中,而是在其它某个段中,则需要在指令中加以表示,这种情况称为段超越。 表示 如直接寻址方式中操作数在附加段中,则应表示为 MOV AX,ES:3100H,4) 寄存器间接寻址方式 操作数在存储器中, 操作数偏移地址在BX、SI、DI或BP的某个寄存器中。 若以SI、DI、BX作为间接寻址寄存器 则默认操作数存放在数据段中,用DS寄存器的内容作为段地址。 若以BP寄存器作为间接寻址寄存器 则默认操作数存放在堆栈段中,用SS寄存器的内容作为

34、段地址。,如 MOV BX,DI 若 (DS)=6000H (DI)=2000H(62000H)=50A0H 则执行指令后 (BX)=50A0H,表示格式: 寻址寄存器,寄存器间接寻址方式也允许段超越。 如 MOV AX, DS:BP MOV CH, SS:SI MOV ES:BX, AL 设(AL)=B2H,(BX)=1234H (ES)=1400H,则执行指令后:,变址寻址方式 操作数的偏移地址是以寄存器SI、DI、BX、BP的内容与指令中给定的8位或16位偏移量之和。 如 MOV AH,1000HBX 或写成 MOV AH,BX+1000H 又如 MOV 25HBP ,BX 表示格式:位

35、移量寄存器 或 寄存器+位移量 若以SI、DI、BX寻址,则默认在数据段中;若以BP寻址,则默认在堆栈段中。,6)基址加变址寻址方式 操作数的偏移地址是一个基址寄存器BX或BP和一个变址寄存器SI或DI的内容之和加上给定的8位或16位偏移量。 表示格式: 位移量基址变址 或 位移量+基址+变址 如 MOV 10HBXSI,CX 或写为 MOV 10H+BX+SI,CX BX寻址默认为数据段;BP寻址默认为堆栈段。,3-3 8086指令系统,可以分为以下六类: 数据传送指令 算术运算指令 逻辑运算和移位指令 串操作指令 控制转移指令 处理器控制指令,3.3.1 数据传送类指令,包括: 通用传送指

36、令;累加器专用传送指令; 地址传送指令;标志传送指令; 1、通用传送指令 1)基本传送指令(MOV) 指令格式:MOV DST,SRC; 源操作数和目的操作数可用上述6种寻址方式的任何一种。 操作:将SRC内容赋给DST。 所有通用传送指令都不影响标志位。,注意:不能用MOV指令实现以下传送 存储器操作数之间不能直接传送 MOV 1000H , DI 错 应改为 MOV AX , DI MOV 1000H, AX 立即数不能直接传送段寄存器 MOV DS,2000H 错 应改为 MOV AX, 2000H MOV DS , AX,段寄存器之间不能直接传送 MOV ES , DS ; 错 应改为

37、 MOV BX , DS MOV ES , BX CS只可以作为源操作数 例:MOV CS,AX ;错 MOV AX,CS ;对 源操作数和目的操作数的宽度必须相同,立即数,段寄存器,存储器 (各种寻址),通 用 寄存器,2)堆栈指令(PUSH 、POP) 堆栈(STACK)的概念 数据的存储按后进先出(Last In First OutLIFO)原则组织的一段内存区域。,入栈指令(PUSH): 格式:PUSH src 操作过程分两步完成: (SP) (SP) - 2 (SP)+1,(SP) (src) 功能:把一个字压入由SP指向的堆栈区。 如:PUSH AX,若(AX)=50A0H SP=

38、2002H SS=6000H 则执行 PUSH AX的结果如右图。 若再执行 PUSH BX 设(BX)=0ABCDH,结果如右图。,出栈指令(POP) 格式:POP dst ; 操作: (dst) (SP)+1,(SP) (SP) (SP)+2 功能:把SP所指向的堆栈顶部的一个字 送入目的地址,同时进行修改堆栈指针。 如: POP BX POP AX,PUSH 2300H PUSH CS 但 POP CS 错,堆栈用途如下图,断点信息:程序断点地址、标志寄存器及其它能被子程序使用和改变的寄存器。,堆栈用途 存放寄存器或存储器中暂时不使用的数据,在使用这些数据时可方便地将其弹出; 调用子程序

39、或发生中断时要保护断点信息(入栈),子程序或中断返回时恢复断点信息(出栈)。,应注意的问题 堆栈操作都按字操作; PUSH , POP 指令的操作数可以是CPU内部寄存器或存储单元; PUSH CS 合法,POP CS 非法; 执行PUSH 指令, (SP)-2 (SP),低字节放在低地址,高字节放在高地址; SP总是指向栈顶; 堆栈最大容量即为SP的初值。,3)交换指令(XCHG) 格式:XCHG dst , src ;(dst) (src) 可以实现:寄存器之间 寄存器和存储器之间 注意: 存储器之间不能直接交换; 段寄存器不能作为操作数; 允许字或字节操作。,2、累加器专用传送指令 1)

40、输入指令(IN) 功能:用于CPU从外设端口接收数据。 具体形式有四种: IN AL, data8;从8位端口地址输入一个字节 IN AX, data8;从8位端口地址输入一个字 IN AL, DX;从16位端口地址输入一个字节 IN AX, DX ; 从16位端口地址输入一个字,例1: IN AL, 80H; 从地址为80H的端口读入一个字节; 例2: MOV DX, 1020H; 将16位端口地址赋给DX IN AX, DX; 从(DX)为地址的端口读入16位数据。,解释: 1)CPU对各个外部设备接口也采用地址编码。 8086CPU连接外部设备的地址可以是8位或16位。,解释: 2)80

41、86CPU访问存储器和访问外部设备采用不同的指令形式,外设地址与存储器地址可以重叠。 通过CPU的IO/M引脚控制存储器或外设被选通;当访问存储器时IO/M引脚输出低电平,当访问外设时该引脚输出高电平。,MOV BX,1234H;从存储器的1234H单元读数据,放入BX。CPU执行该指令使IO/M=0 MOV DX,1234H ;立即数赋给DX IN AX,DX;从地址为1234H 的外设读数据, CPU执行该指令使IO/M=1,2)输出指令(OUT) 功能:用于CPU向外设端口发送数据 四种形式: OUT data8 , AL;向8位地址端口输出一个字节 OUT data8, AX ;向8位

42、地址端口输出一个字 OUT DX , AL;向16位地址端口输出一个字节 OUT DX , AX ;向16位地址端口输出一个字,3、目的地址传送指令 8086 提供三条: LEA LDS LES,1)LEA (Load Effective Address) 格式: LEA reg16 , mem Reg16 16位通用寄存器; mem 存储单元; 功能:将源操作数的偏移地址传送到目的操作数; 注意:源操作数必须以寄存器间接寻址、变址寻址、基址加变址寻址等方式表示的存储器操作数;目的操作数为一个16位的通用寄存器。,例: LEA AX,DI 设(DI)=1005H 执行 LEA AX,DI,有(

43、AX)=1005H 例: LEA BX,BX+SI+0F62H 设(BX)=0400H,(SI)=003CH 执行指令后: 源操作数地址为:(BX)+(SI)+ 0F62H =0400H+003CH+0F62H=139EH 则(BX)=139EH,2)LDS (Load pointer using DS)(略) 格式:LDS reg16 , mem ; 功能:把源操作数指定的4个相继字节的数据分别送指令指定的寄存器及DS寄存器中。 (reg16)(mem) (DS)(mem)+2),3)LES (Load pointer using ES )(略) 格式:LES reg16 ,mem ; 功能

44、:把源操作数指定的4个相继字节的数据分别送指令指定的寄存器及ES寄存器中。 (reg16)(mem) (ES)(mem)+2),例: 设 (DS)=0C 000H 指令 LDS SI, 0010H 执行指令后: (SI)=0180H (DS)=2000H,例: 设 (DS)=B 000H (BX)=080AH 指令 LES DI, BX 执行指令后: (DI)=05A2H (ES)=4000H,4、标志传送指令 8086有四条标志传送操作指令:,1)LAHF(Load AH into flags) 格式:LAHF ; 功能:标志寄存器低八位传送给AH (AH)(PSW的低字节),2)SAHF(

45、Store AH into Flags) 格式:SAHF 功能:AH内容传送给标志寄存器低八位。 (PSW的低字节)(AH),3)PUSHF(Push Flags ) 格式:PUSHF ; 功能 : 标志进栈。 (SP)(SP)-2 (SP)+1,(SP)(PSW) 4)POPF(Pop Flags ) 格式:POPF; 功能:标志出栈。 (PSW)(SP)+1,(SP) (SP)(SP)+2,3.3.2 算术运算类指令,包括: 加法指令、减法指令、乘法指令、除法指令 1、加法指令 8086具有5条加法指令: ADD(Addition) 加法指令 ADC(Add with Carry)带进位加

46、法指令 INC(Increment)加 1指令 AAA(ASCII adjust for addition)加法ASCII调整指令(略) DAA(Decimal adjust for addition)加法十进制调整指令(略),1)不含进位的加法指令ADD 指令格式:ADD dest , src ; 功 能 :(dest) (dest)+(src) Src:立即数,通用寄存器,存储器 dest:通用寄存器,存储器 例: ADD CL,10 ADD DX,SI ADD AX, 2F00H ADD 100HBX, AL ADD DI, 30H,特点: 可进行8位或16位的无符号数或有符号数加法运算

47、; 源操作数和目标操作数不能同时为存储器, 不能为段寄存器; 指令影响标志位 8位(有符号)数相加,和超出范围(128127),或16位(有符号)数相加,和超出范围(-32768 +32767),则 O=1 8位(无符号)数相加,和超过255,或16位(无符号)数相加,和超过65535,则 C=1, 其他标志(S,A,P,Z)由运算结果按定义确定。,2)含进位加法指令ADC(Add with carry) 格式: ADC dest,src ; 功能:(dest)(dest)+(src)+C C: 进位标志C的当前值 特点: 与ADD同。 类型举例: ADC CX, 300 ADC AL, BL

48、 ADC DX, SI,用途: ADC 指令主要用于多字节运算中。 如:求两个32位数12345678H与0ABCDEFABH之和 MOV AX, 1234H MOV BX, 5678H ADD BX, 0EFABH ADC AX, 0ABCDH,3)加 1 指令INC (Increment by 1 ) 格式: INC dest ; 功能: (dest)(dest)+1 dest : 通用寄存器、存储器; 用途:用于在循环程序中修改循环次数或地址指针。 标志位影响情况:影响S, Z, A, P, O;不影响C。,例: INC DL ; 8位寄存器1 INC SI ;16位寄存器1 而 INC 2100 ;错误,应写成 INC WORD PTR 2100 ; 存储器内容1(字操作),PTR为属性转换操作。 又如 INC BYTE PTR BXSI ;字节操作,2、减法指令(Subtraction) 8086有7条减法指令: SUB(Subtraction) 不含借位减法指令 SBB

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1