资源描述:
《微型计算机原理与接口技术 第3章 寻址方式和指令系统new》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、第3章8086寻址方式和指令系统汇编语言指令寻址方式指令系统汇编语言指令计算机都是通过指令来解决问题的,因而每种计算机都有一组指令供使用,称为计算机的指令集汇编语言指令由操作码和操作数两部分组成的操作码:指示计算机所要进行的操作,对每一种操作指定一种二进制代码。操作数:操作的对象,操作数可以是立即数,寄存器或存储单元;操作数可以有一个、两个或三个,也可以无操作数汇编语言指令格式操作码操作数…………操作数其中:B8H为操作码,3412H为操作数MOVAX,1234H对应的机器语言指令为:B83412H操作数来源操
2、作数来源CPU:寄存器存储器:在以逻辑地址(段基地址和偏移地址)表示的存储单元中存放立即数:存储在指令中,作为指令的一部分I/O端口:8086专门有针对I/O端口进行读写的指令寻址方式什么是寻址方式?寻址方式是指令中用于说明操作数所在地址的方法。与数据有关的寻址方式与转移地址有关的寻址方式与数据有关的寻址方式(共7种)立即数寻址寄存器寻址有效地址的概念与有效地址有关的寻址方式直接寻址寄存器间接寻址寄存器相对寻址基址变址寻址相对基址变址寻址立即数寻址立即数:操作数直接放在指令中,紧跟在操作码之后,作为指令的一部分
3、,这种操作数称为立即数举例(以MOV指令为例,以下同):字节:MOVAL,5字:MOVAX,3064H注意立即数只能作为源操作数,不能作目的操作数源、目的操作数的类型必须一致用于给寄存器赋初值寄存器寻址源、目的操作数都在寄存器中举例MOVAX,BX注意源、目的操作数的类型必须一致目的操作数不能为代码段寄存器源、目的操作数不能同时为段寄存器由于操作数都在寄存器中,不需要访问存储器来取得操作数,因而可以得到较高的运算速度有效地址的概念操作数的偏移地址称为有效地址(EA)有效地址的三种成分:位移量:存放在指令中的一个
4、8位、16位的位移量基址:存放在基址寄存器中的内容变址:存放在变址寄存器中的内容有效地址的计算:EA=位移量+基址+变址与有效地址有关的寻址方式的确定有效地址的三种成分的不同组合形成以下5种不同的寻址方式:只有位移量一种成分----直接寻址(或称相对寻址)只有基址或变址一种成分----寄存器间接寻址含有位移量和基址(或位移量和变址)两种成分----寄存器相对寻址含有基址和变址两种成分----基址变址寻址三种成分同时存在----相对基址变址寻址寻址方式的关键问题首先根据寻址方式确定操作数的有效地址根据有效地址和操
5、作数所在段的段基地址确定操作数的物理地址根据操作数的物理地址得到具体的操作数直接寻址操作数有效地址只包含指令中指定的位移量一种成分EA=8位或16位位移量PA=段基地址×16+EA直接寻址举例数字表示的位移量MOVAX,[2000H]注意与MOVAX,2000H的区别符号地址表示的位移量(下面两种表示方式是等价的)MOVAX,VALUEMOVAX,[VALUE]使用段跨越前缀MOVAX,ES:[VALUE]注意与MOVAX,[VALUE]的区别缺省段选择规则访存类型所用段及段寄存器缺省选择规则指令代码段CS取指
6、令堆栈堆栈段SS所有关于堆栈的操作数据数据段DS存放程序所需的数据目的串附加段ES串处理指令的目的串段跨越前缀用段跨越前缀来改变系统所指定的缺省段。在下列3种情况下,不允许使用段跨越前缀:串处理的目的串必须在ES中所有对堆栈的操作必须在堆栈段SS中指令必须存放在代码段CS中寄存器间接寻址操作数有效地址只包含基址(或变址)一种成分基址寄存器有:BX,BP变址寄存器有:SI,DIEA=基址或EA=变址PA=段基地址×16+EA寄存器间接寻址举例作为源操作数MOVAX,[BX]MOVAX,[BP](注意:如果指令中用
7、BP寄存器寻址,则缺省的段是堆栈段)作为目的操作数MOV[DI],AX寄存器间接寻址适用场合通常用于对一维数组的处理。只需执行完一条指令后改变间接寻址寄存器的内容,就可以使用同一地址表达式来指定一维数组中的各个元素,从而实现对连续单元进行存取操作。寄存器相对寻址操作数有效地址包含位移量和基址(或位移量和变址)两种成分EA=位移量+基址或EA=位移量+变址PA=段基地址×16+EA寄存器相对寻址举例作为源操作数MOVAX,COUNT[SI]作为目的操作数MOVCOUNT[BX],BL寄存器相对寻址适用场合通常用于
8、对表格的处理,表格的首地址可设置为位移量,利用修改基址寄存器或变址寄存器的内容来取得表格中的值。基址变址寻址操作数有效地址包含基址和变址两种成分EA=基址值+变址值PA=段基地址×16+EA基址变址举例作为源操作数MOVCX,[BX][SI]作为目的操作数MOV[BP+DI],AH注意:两个基址寄存器或两个变址寄存器不能放在一起使用基址变址适用场合这种寻址方式适用于数组和表格的处理,数