微型计算机系统原理及应用 教学课件 ppt 作者 贺建民 第2章 汇编语言程序设计

上传人:E**** 文档编号:89508646 上传时间:2019-05-26 格式:PPT 页数:261 大小:1.17MB
返回 下载 相关 举报
微型计算机系统原理及应用 教学课件 ppt 作者 贺建民 第2章  汇编语言程序设计_第1页
第1页 / 共261页
微型计算机系统原理及应用 教学课件 ppt 作者 贺建民 第2章  汇编语言程序设计_第2页
第2页 / 共261页
微型计算机系统原理及应用 教学课件 ppt 作者 贺建民 第2章  汇编语言程序设计_第3页
第3页 / 共261页
微型计算机系统原理及应用 教学课件 ppt 作者 贺建民 第2章  汇编语言程序设计_第4页
第4页 / 共261页
微型计算机系统原理及应用 教学课件 ppt 作者 贺建民 第2章  汇编语言程序设计_第5页
第5页 / 共261页
点击查看更多>>
资源描述

《微型计算机系统原理及应用 教学课件 ppt 作者 贺建民 第2章 汇编语言程序设计》由会员分享,可在线阅读,更多相关《微型计算机系统原理及应用 教学课件 ppt 作者 贺建民 第2章 汇编语言程序设计(261页珍藏版)》请在金锄头文库上搜索。

1、第2章 汇编语言程序设计,2.1 指令与寻址 2.2 8086 CPU指令系统 2.3 汇编语言程序设计方法,2.1 指令与寻址,2.1.1 指令的概念,指令(Instruction):指示计算机执行某种操作的命令,指令在未执行前存放在内存中,CPU取出指令后,再进行译码,转换为相应的控制信号,以实现数据在运算器、寄存器、主存之间的流动。指令由操作码和地址码两部分组成。,操作码:由若干个二进制位编码组成,表示该指令的操作性质,操作码部分又称为操作码字段。,地址码:表示该指令需要处理的具体数据或数据所在地址,一条指令中可以有一到二个地址码,对应的指令也被称一地址、二地址指令。,2.1.2 寻址方

2、式,CPU执行的指令中,操作数可直接写在指令中,或存放在寄存器中,或由存储单元指定,如何通过指令确定操作数实际地址的过程就是寻址。,8086CPU主要包括下列寻址方式: 1. 立即寻址方式 2. 寄存器寻址方式 3. 直接寻址方式 4. 寄存器间接寻址方式 5. 寄存器相对寻址方式 6. 基址变址寻址方式 7. 相对基址变址寻址方式,2.1.2 寻址方式,1. 立即寻址方式,定义:将操作数直接写在指令中,紧跟在操作码后面,成为指令代码的一部分,这种操作数称为立即数,相应的寻址方式称为立即寻址。,说明:立即数可以是一个字节,也可以是一个字。若是一个字,它的高位字节存放在较高地址中,低位字节存放在

3、较低字节中。,例2-1 立即寻址方式举例,MOV BX, 2050H 在下图中,BBH是指令的操作码,2050H为立即数,它是指令的一个组成部分,该指令执行后,(BX)=2050H。,2.1.2 寻址方式,特点:操作数在CPU内的某个寄存器中,参与操作的寄存器由指令中指出。由于操作数在CPU内部,所以这类指令执行起来速度比较快。 对于16位操作数,可用寄存器有:AX、BX、CX、DX、SI、DI、SP和BP等。 对于8位操作数,可用寄存器有:AH、AL、BH、BL、CH、CL、DH和DL。,2. 寄存器寻址方式,例2-2寄存器寻址方式举例,MOV BX, AX 该指令为数据传送指令,功能是将A

4、X中的内容放入BX寄存器中。 若指令执行前,(AX)=1234H,(BX)=3080H, 则指令执行后,BX的内容成了1234H,而AX的内容不变。,2.1.2 寻址方式,直接将有效地址(偏移地址)写在指令的操作码以后,使它成为指令的一部分。根据8086 CPU的规定,偏移地址长度应是16位,即由两个字节组成。,3. 直接寻址方式,例2-3直接寻址方式举例,MOV AX, 8700H 第二操作数是直接寻址方式,缺省段寄存器是DS。,若(DS)=2000H,源操作数物理地址是:20000H+8700H=28700H。,由于是字操作指令,操作结果是将28700H和28701H两个单元的内容分别存入

5、AL和AH。,例2-4 用符号表示直接地址举例,MOV AX ,DATA MOV AX ,DATA MOV AX ,DATA+1 MOV AX ,DATA+1 MOV AX ,DATA1,段跨越,在指令中指定其它段寄存器。 如:MOV BL , ES:4300H 这条指令中,就将段寄存器指定为ES,这种做法称为段跨越。,2.1.2 寻址方式,指令的操作数在存储器中,其有效地址存放在BX、BP或变址寄存器SI、DI中。,4. 寄存器间接寻址方式,物理地址=(DS)左移4位(BX)(或SI、DI中的一个) 物理地址=(SS) 左移4位(BP),例2-5 寄存器间接寻址方式举例,指令 MOV AX

6、, BX 设:(DS)=2000H,(BX)=3000H 则物理地址=20000H+3000H=23000H 寄存器间接寻址也可以采用段跨越的方式,指定该指令适用的段寄存器。 如:MOV AX , ES:BX 指令中将段寄存器改为ES。 这种寻址方式可以用于连续数据(如表格、字符串)处理,执行完一条指令后,只需修改寄存器的内容就可以指向下一个数据。,2.1.2 寻址方式,操作数的有效地址是由基址或变址寄存器的内容加上指令中给出的位移量(8位或16位)得到的。使用段寄存器的情况也与寄存器间接寻址一样,即SI 、DI和BX用DS段寄存器,而BP则用SS段寄存器。寄存器相对寻址方式也可以使用段跨越方

7、法,选用CS、ES或SS作为段寄存器。,5. 寄存器相对寻址方式,例2-6 寄存器相对寻址方式举例,例:MOV AX,DATA+SI 其中位移量DATA是个16位长的符号地址。 指令也可以写成: MOV AX , DATA SI 或 MOV AX ,DATASI 设:(DS)=2000H,(SI)=1000H,DATA =3000H。 有效地址为(SI)+ DATA =4000H。 物理地址=20000H+1000H+3000H=24000H。,2.1.2 寻址方式,有效地址由一个基址寄存器(BX或BP)和一个变址寄存器(SI或DI)的内容之和组成。这两个寄存器都在指令中被指定。,6.基址变址

8、寻址方式,物理地址=(DS)左移4位(BX)(SI/DI) 物理地址=(SS) 左移4位(BP)(SI/DI),例2-7 基址变址寻址方式举例,例: MOV AX , BXDI MOV AX , BX+DI 设:(DS)=F000H,(BX)=1000H,(DI)=0004H,则: EA=1000H+0004H=1004H。 物理地址=F0000H+1004H=F1004H。 基址变址寻址时也可以用段跨越,形式上与前面一样。,2.1.2 寻址方式,有效地址由一个基址寄存器和一个变址寄存器的内容以及8位或16位的位移量相加得到。,7.相对基址变址寻址方式,几种用法: MOV AX,BX+SI+n

9、 MOV AX,nBXSI MOV AX,BP+SI+n MOV AX,nBPSI,物理地址=(DS)左移4位(BX)(SI/DI)8位或16位位移量 物理地址=(SS) 左移4位(BP)(SI/DI)8位或16位位移量,例2-8 相对基址变址寻址方式举例,例: MOV AX , STRINGBXSI 设:(DS)=F000H,(BX)=1000H,(SI)=0400H,STRING=0200H。则: 有效地址=1000H+0400H+0200H=1600H, 物理地址=F0000H+1600H=F1600H。,寻址方式的小结,从表中可以看出,操作数可以是立即数、寄存器和存储器中的数据,存储器

10、寻址方式是最灵活的,其有效地址由基址寄存器(BX、BP)、变址寄存器(SI、DI)和位移量中的任意一项、二项或三项组合构成的,但其中BX和BP、SI和DI不能同时出现在同一有效地址的构成中。,2.2 8086 CPU指令系统,8086 CPU的指令系统按照功能可以分为:,数据传送指令 算术运算指令 逻辑运算指令 串处理指令 控制转移指令 处理机控制指令。,2.2.1 数据传送指令,数据传送指令用于实现CPU的内部寄存器之间、CPU和存储器之间以及CPU和I/O端口之间的数据传送。 这是使用频率最高的一类指令,包括: 通用传送指令 累加器专用传送指令 地址传送指令 标志传送指令 这一类指令除SA

11、HF和POPF指令对标志位有影响外,其余均不影响。,2.2.1 数据传送指令,通用数据传送指令包括: MOV指令; 入栈指令; 出栈指令;,1.通用数据传送指令,2.2.1 数据传送指令,(1)传送指令MOV 格式:MOV DST , SRC 功能:(DST)(SRC) 其中的DST(Destination)表示目的操作数,SRC(Source)表示源操作数。,1.通用数据传送指令,MOV指令传送规则,立即数只能作源操作数,而且立即数不能直接送段寄存器; 存储器与通用寄存器、段寄存器(CS除外)之间可以相互传送数据; 通用寄存器与段寄存器(CS除外)之间可以相互传送数据; 各通用寄存器之间可以

12、相互传送数据。,MOV指令常用格式,将立即数E的ASCII码送入AL中,将符号地址DATA的存储器内容送入BX,将立即数3455H送入DATA指定的存储单元,将SS: (BP)(SI)DATA对应的存储器内容送AX,常用的MOV指令传送格式如下: MOV AL , E ; MOV DATA , 3455H ; MOV BX , DATA ; MOV AX , DATABPSI ;,2.2.1 数据传送指令,入栈指令格式:PUSH SRC 指令执行的操作为:(SP)(SP)-2; (SP+1),(SP)(SRC) 出栈指令格式:POP DST 指令执行的操作为:(DST)(SP)+1,(SP);

13、 (SP)(SP)+2 堆栈是计算机中用以存储数据的一种特殊结构存储器,用以暂时保存寄存器或存储单元的内容。,1.通用数据传送指令,(2)堆栈操作指令PUSH与POP,2.2.1 数据传送指令,1.通用数据传送指令,(2)堆栈操作指令PUSH与POP,堆栈的组织,2.2.1 数据传送指令,PUSH指令举例 设,(SS)=2000H,(SP)=1884H,则,栈顶地址:21884H。 执行PUSH AX指令后,栈顶地址为:(SP)-2,即:21882H。 如果AX=3045H,栈中的内容应为: (21883H)=30H;(21882H)=45H。,1.通用数据传送指令,(2)堆栈操作指令PUSH

14、与POP,2.2.1 数据传送指令,POP指令举例 继续上面的例子,执行POP AX后, (AX)=3045H, 栈顶:21884H,即(SP)=1884H。,1.通用数据传送指令,(2)堆栈操作指令PUSH与POP,2.2.1 数据传送指令,例2-9利用堆栈保护与恢复寄存器内容,1.通用数据传送指令,(2)堆栈操作指令PUSH与POP,PUSH DS PUSH AX ;其间程序用到DS和AX寄存器 POP AX POP DS 编程时,通常按照对称的次序执行一系列入栈和出栈指令。对整个程序而言,有一个入栈操作,就有一个出栈操作,2.2.1 数据传送指令,1.通用数据传送指令,(3)交换指令XC

15、HG,格式:XCHG OPR1,OPR2 功能:(OPR1)(OPR2) 说明:指令中的OPR(OPeRand)表示操作数,它们可以是存储器的内容,也可以是寄存器内容,既可以是字节交换也可以是字交换。 交换规则: 操作数可以是存储器内容,也可以是寄存器内容,可字节交换,也可字交换。 参加交换的两个操作数,必须有一个在寄存器中。 段寄存器内容不能交换 指令执行不影响标志位,例2-10交换指令举例,指令 XCHG AX , BX+DI 设执行前,(AX)=2739H, (DS)=2000H,(BX)=3000H,(DI)=1300H 第二操作数的有效地址为:20000H+3000H+1300H=2

16、4300H 如果(24300H)=00H,(24301H)=45H 则指令执行以后,(AX)=4500H,(24300H)=39H,(24301H)=27H。,2.2.1 数据传送指令,累加器专用传送指令主要包括: 端口输入指令IN 端口输出指令OUT 换码指令XLAT。,2.累加器专用传送指令,端口的概念,外设与CPU之间的数据传送也可以在指令控制下进行操作,这种指令称为输入、输出指令。因为一个系统中所用的外设通常不止一个,所以输入输出指令应指定进行数据传送的外设地址,通常称它们为端口地址。,在CPU内部能与端口传送数据的只有累加器AX或AL,其它寄存器一律不能直接与外设进行数据传送。,8086 CPU有20条地址线,所以它的存储器空间为1MB。当指令对端口地址进行寻址时,这20条地址线中只有16条起作用,也

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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