欢迎来到天天文库
浏览记录
ID:29215638
大小:49.50 KB
页数:26页
时间:2018-12-17
《大数据的传送类指令》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实用标准文案3.2.1数据传送类指令数据传送指令用于实现寄存器与存储器之间、寄存器之间、累加器AL/AX与I/O端口之间、立即数到寄存器或存储器之间的字节或字的传送。这类指令的共同特点是不影响标志寄存器的内容(SAHF,POPF除外)。堆栈操作指令、标志位传送指令和地址传送指令也归入这一类中,共14条指令,又可分为4组,如表3.4所示。1.通用数据传送指令通用数据传送指令包括传送指令MOV、堆栈操作指令PUSH、POP、输入/输出指令(累加器传送指令)、数据交换指令XCHG和查表转换指令XLAT。这类指令是唯一允许以段寄存器作为操作数的指令(XCHG除外)。表3.4数据传送类指
2、令指令类型 指令书写格式 指令功能通用数据传送指令 MOV 目标,源 PUSH 源 POP 目标 XCHG 目标,源 XLAT 字节或字传送 字压入堆栈 字弹出堆栈 字节或字交换 字节翻译目标地址传送指令 LEA 目标,源 LDS 目标,源 LES 目标,源 精彩文档实用标准文案3.2.1数据传送类指令数据传送指令用于实现寄存器与存储器之间、寄存器之间、累加器AL/AX与I/O端口之间、立即数到寄存器或存储器之间的字节或字的传送。这类指令的共同特点是不影响标志寄存器的内容(SAHF,POPF除外)。堆栈操作指令、标志位传送指令和地址传送指令也归入这一
3、类中,共14条指令,又可分为4组,如表3.4所示。1.通用数据传送指令通用数据传送指令包括传送指令MOV、堆栈操作指令PUSH、POP、输入/输出指令(累加器传送指令)、数据交换指令XCHG和查表转换指令XLAT。这类指令是唯一允许以段寄存器作为操作数的指令(XCHG除外)。表3.4数据传送类指令指令类型 指令书写格式 指令功能通用数据传送指令 MOV 目标,源 PUSH 源 POP 目标 XCHG 目标,源 XLAT 字节或字传送 字压入堆栈 字弹出堆栈 字节或字交换 字节翻译目标地址传送指令 LEA 目标,源 LDS 目标,源 LES 目标,源
4、精彩文档实用标准文案装入有效地址 装入DS寄存器 装入ES寄存器标志位传送指令 LAHF SAHF PUSHF POPF 将FR低字节装入AH寄存器 将AH内容装入FR低字节 将FR内容压入堆域 从堆栈弹出FR内容I/O数据传送指令 IN 累加器,端口 OUT 端口,累加器 从端口输入字节或字 将字节或字输出到端口(1)MOV 传送指令指令格式:MOVOPD,OPS指令功能:将源操作数OPS传送到目的操作数OPD,即(OPD)→(OPS)。源操作数OPS可以是8/16位的通用寄存器、段寄存器、存储器中某单元或8/16位的立即数。(2)PUSH进栈(压入)指令
5、指令格式:PUSHOPS指令功能:将源操作数OPS压入堆栈,即SP–2→SP,OPS→(SPH,SP)。源操作数0PS可以是16位通用寄存器、段寄存器或存储器中的数据字,以保证堆栈按“字”操作。源操作数OPS不能是立即数。由于堆栈是按“后进先出”方式工作,所以每次执行PUSH指令时,总是首先修改栈指针(SP)–2→SP精彩文档实用标准文案(即SP先减2),使之指向新栈顶,然后把源操作数压入堆栈中SP所指示的位置,高字节在较高地址单元,低字节在较低地址单元中(真正的栈顶单元)。由于堆栈总是按字操作,所以,SP总是指向字地址单元,堆栈段基址由SS确定。堆栈最大容量为64K。(3)P
6、OP出栈(弹出)指令指令格式:POPOPD指令功能:将堆栈中当前SP所指示的栈顶的一个字传送到指定的目的操作数OPD中,同时修改栈指针,即(SP+1,SP)→OPD,(SP)+2→SP,出栈操作是进栈操作的逆过程。目的操作数OPD可以是16位通用寄存器、段寄存器或存储单元,但CS不能作目的操作数。和进栈指令不同的是,出栈操作时是先将数据弹出送入目标地址,然后修改栈指针,即将SP减2送SP,这时SP向高地址端移动,指向新的栈顶。(4)XCHG数据交换指令指令格式:XCHG OPD,OPS指令功能:把一个字或字节的源操作数OPS与目的操作数OPD互相交换位置。即(OPD)→OPS,
7、(OPS)→OPD。源操作数OPS可为通用寄存器或存储器,目的操作数OPD只能为通用寄存器。因此,交换指令可以在通用寄存器之间、通用寄存器与累加器之间、通用寄存器与存储器之间进行。段寄存器不能作为操作数。(5)XLAT查表转换指令(换码指令)指令格式:XLAT 转换表 或 XLAT 指令功能:将[BX]为首址,[AL]为位移量的字节存储器单元中的数据→AL,即[BX+AL]→精彩文档实用标准文案AL。查表转换指令XLAT可用来将一种代码转换成另一种代码,或者说可使累加器中的一个值
此文档下载收益归作者所有