微型计算机原理与接口技术:2数据传送指令

上传人:工**** 文档编号:570128332 上传时间:2024-08-02 格式:PPT 页数:21 大小:145.50KB
返回 下载 相关 举报
微型计算机原理与接口技术:2数据传送指令_第1页
第1页 / 共21页
微型计算机原理与接口技术:2数据传送指令_第2页
第2页 / 共21页
微型计算机原理与接口技术:2数据传送指令_第3页
第3页 / 共21页
微型计算机原理与接口技术:2数据传送指令_第4页
第4页 / 共21页
微型计算机原理与接口技术:2数据传送指令_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《微型计算机原理与接口技术:2数据传送指令》由会员分享,可在线阅读,更多相关《微型计算机原理与接口技术:2数据传送指令(21页珍藏版)》请在金锄头文库上搜索。

1、数据传送指令数据传送指令通用数据传送指令堆栈操作指令地址传送指令标志寄存器传送指令 除了标志寄存器传送指令,其他指令都不会影响标志寄存器。通用数据传送指令传送指令MOV交换指令XCHG换码指令XLATBACK传送指令MOV指令格式:MOV DST, SRC可传送 立即数到寄存器、内存 寄存器到寄存器、内存、段寄存器 内存到寄存器、段寄存器 段寄存器到寄存器、内存8/16位数据MOV指令举例MOV BX, 12HMOV BYTE PTRBX, 12HMOV CL, DLMOV BP, AXMOV DS, AXMOV BL, DIMOV ES, DIMOV AX, CSMOV SI, SSMOV指

2、令的使用规则1.立即数只能作为源操作数2.严格匹配8/16位操作3.不允许内存之间直接传送4.涉及到段寄存器的都是16位操作5.立即数不能传送到段寄存器6.CS不能作为目的操作数,IP不是操作数7.不允许段寄存器直接直接传送MOV指令使用规则(续)8.寄存器有明确的字节或字类型,对应的立即数或存储器操作数也只能是字节或字,无需说明。9.将立即数传送给存储器单元时,若指令给出的立即数是字节格式,则既可理解为字节,也可理解为字,会引起类型模糊,内存单元必须用BYTE PTR或WORD PTR类型说明符指定。MOV指令使用规则举例1. MOV 12, BL2. MOV BX, CL3. MOV BX

3、, SI4. MOV DS, BL5. MOV ES, 1000H6. MOV CS, AX7. MOV DS, SS8. MOV BL, 12H MOV BX, 12H MOV DI, BX MOV DI, BL9. MOV 20H, 12H MOV BYTE PTR20H,12H MOV WORD PTR20H,21HBACK正确正确交换指令XCHG指令格式:XCHG reg, reg/mem不能在存储器之间交换数据操作数可以是字节或字XCHG AL, BLXCHG AX, DATAXCHG DI, BLBACK换码(查表转换)指令XLAT指令格式:XLAT;(AL) (BX)+(AL)通

4、过查表完成代码转换首先建立被转换代码(字节型)的数据表,并将表格的首地址存放于BX,再将代码(相对于表格首地址的位移量)存入AL,执行后AL中的内容就是查表得到的转换代码。XLAT指令举例在数据段设置十六进制数0F所对应的ASCII码表: TAB DB 30H,31H,32H,33H,34H,35H,36H,37H DB 38H,39H,41H,42H,43H,44H,45H,46H NUM DB * ;015中的任一数字代码段设置如下指令,即可查出和NUM单元中的数字对应的ASCII码: MOV BX, OFFSET TAB MOV AL, NUM XLATBACK堆栈操作指令堆栈是一个“先

5、进后出”的主存区域,SS中是段基址,SP指明当前栈顶的偏移地址。常用于数据的暂存与恢复、子程序返回地址与中断断点地址的保护和返回。堆栈只有一个出口,即当前栈顶。8086系统的堆栈向上生长,即栈底(偏移地址为0)是高地址,栈顶是低地址。程序中用配对嵌套使用保证“先进后出”,刻意的不配对使用可以用于参数传递。堆栈操作都是以字为单位的。堆栈操作指令(续)进栈指令 PUSH reg16/mem16/seg ; SPSP-2, SS:SP SRC出栈指令 POP reg16/mem16/seg ; DST SS:SP, SPSP+2堆栈指令举例1子程序中用到AX、BX和CX寄存器,为了不破坏它们在主程序

6、中的值,在程序主体开始之前先将它们压入堆栈保存,完成程序操作后将它们反顺序弹回,再退出子程序。PUSH AXPUSH BXPUSH CX程序主体POP CXPOP BXPOP AX返回主程序堆栈指令举例2BACK将AX和BX中的内容互换:PUSH AXPUSH BXPOP AXPOP BX还有什么方法可以实现?地址传送指令有效地址送寄存器 LEA reg16, mem ; reg16mem的EA指针送寄存器:将源操作数指定的单元开始的4个连续字节的内容分别送入指令指定的寄存器以及DS或ES中。 LDS/LES reg16, mem ; reg16mem, DS/ESmem+2地址传送指令举例L

7、EA BX, 2000HLEA BX, DILEA DI, ES:BXLDS BX, 2000HLES SI, 2000H假设DS2000H,DI200H,数据段22000H22003H中的数据分别为01H、20H、01H、20HBACK标志寄存器传送指令LAHF:FLAGS的低字节送AHSAHF:AH中的内容送FALGS低字节PUSHF:FLAGS入栈POPF:栈顶数据弹出至FLAGSBACK课堂练习找出下列指令中的错误指令并说明错误原因:MOV DX, CHMOV SS, DSMOV 13, CLMOV CX, IPMOV 20H, SIPUSH ALMOV CS, 20HPOP DLPOP DSLEA BH, BPLDS BX, AXMOV AX, 20HMOV ES, 20HMOV 20H, 255作业编写一段程序,将数据段中A单元和B单元内容互换,A+1单元和B+1单元内容互换。说明下列程序段执行后AX的值。 假设数据段有: TABLE DW 158,258,358,458 ENTRY DW 3 代码段: MOV BX, OFFSET TABLE MOV SI, ENTRY MOV AX, SI+BX作业如果数据段符号地址DBUF为3100H,并从它开始存放1234H,请问执行以下指令后AX的内容是什么? LEA AX, DBUF MOV AX, DBUF

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

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