文档详情

第三章 8086指令系统与汇编语言.ppt

发布:2017-06-22约6.03万字共305页下载文档
文本预览下载声明
第三章 8086指令系统及汇编语言 ;本章学习的主要内容及要求;本章难点: 1、段地址与源操作数之间的关系; 2、各寻址方式之间的差异; 3、指令执行后对标志位的影响; 4、指令与控制信号之间的联系; 5、汇编语言编写应用程序的基本设计方法; 本章的学习方法: 课前认真预习,课后请认真复习并请多看课本和参考书中的习题与练习题。;问题的提出: 什么是软件?为什么计算机的运行必须依靠软件来完成?软件都有那些形式?什么是汇编语言? 软件:能控制计算机完成指定工作任务的二进制代码集,这个代码集称为机器指令或机器语言。软件有很多种形式,如常用的高级语言(C、C++等),所有的高级语言编写的程序最终都必须被解译为机器指令(有序的二进制代码集),因为计算机只能接受二进制代码。;汇编语言:是一种将机器语言按其特定的功能符号化,使其便于记忆和理解的计算机语言。;指令的组成;指令的助记符格式;指令的操作码和操作数;寻址与寻址方式;操作数的来源;指令中的操作数直接存放在机器代码中,紧跟在操作码之后(操作数作为指令的一部分存放在操作码之后的主存单元中),这种操作数被称为立即数imm。 可以是8位数值(00H~FFH) 也可以是16位数值(0000H~FFFFH) 立即数寻址方式常用来给寄存器赋值; MOV AX, F58AH ; (字操作) F58AH称为立即数 助记符 目的 源 (16位操作数) H表示为十六进制数 dst src 完成的操作:AX F58AH MOV AH, F5H (字节操作) F5H称为立即数(8位操作数) MOV AL, 8AH (字节操作) 8AH称为立即数 完成的操作:AH F5H , AL 8AH;立即寻址操作过程示意如图3-2 ;指令对立即数格式的要求;2、 直接寻址方式; 直接寻址方式的操作数的16位偏移地址(有直接地址值和标号两种形式)直接包含在指令中,它与操作码一起存放在代码段中的操作码之后。 段地址DS隐含,也可指定其它段,必须需在指令中指明。 存储器物理地址地址为:DS:偏移地址 或 ES:偏移地址。 例: MOV AX,ES:[2000H] (读数据,RD线为低电平) 将ES:2000H单元内容送入AX。 例: MOV AX,LABLE 或 MOV AX,[LABEL] 将标号为LABLE(存放操作数单元的符号地址) ,即DS:LABLE中的内容送入AX。LABLE必须在段定义中指明。; 例:MOV AX,(2000H); 字操作 其过程如图3.3所示。指令中的16位段内偏移地址的低字节在前,高字节在后。 MOV AL,(2000H); 字节操作 MOV AH,(2001H); 字节操作 此两条指令的功能与字操作指令的功能相同! 16位段内偏移地址直接包含在指令中 ; 图3-3 直接寻址;3、寄存器寻址方式;例如:MOV AX,BX ;AX BX MOV BX,AX ;BX AX MOV AL,BH ;AL BH MOV AH,AL ;AH AL MOV DS,AX ;DS AX MOV SI,AX ;SI AX 注意:目的和源寄存器的 位数必须相同,不同 位数寄存器之间不能传送数据处理 如: MOV BX,AH 如果要将数据送入段寄存器(CS、DS、ES、SS),必须先将这个数送入一个非段寄存器,然后在送到段寄存器;段寄存器写入方法: MOV CS,3000H ; 错! MOV AX,3000H ; (该指令不影响RD和WR控制线均为高电;平) MOV CS,AX ;正确(在使用中不允许随便修改CS的内容!) MOV SS,1000H ;处理错! MOV DI,1000H MOV SS,DI ;正确 , (该指令不影响RD和WR控制线均为高电;平);4、 寄存器间接寻址方式;注意:寄存器间接寻址要用方括号或圆号括起来,以便与寄存器操作数相区别。 例: MOV AX,[BX];将由BX决定的存储单元的内容送到AX寄存器,要求对BX事前定义。;操作数在存储器中,指令中寄存器内容作为操作数所在单元的有效地址。
显示全部
相似文档