第3章 指令系统与汇编语言程序设计 1.通用数据传送指令 (1)传送指令MOV 格式: mov dst,src MOⅴ指令的功能是把源操作数src传送至目的操作数 dst,执行后源操作数内容不变,目的操作数内容 与源操作数内容相同。 源操作数可以是通用寄存器、段寄存器、存储器 以及立即数,目标操作数可以是通用寄存器、段寄 存器(CS除外)或存储器。 21
21 第3章 指令系统与汇编语言程序设计 1. 通用数据传送指令 (1)传送指令MOV 格式:MOV dst,src MOV 指令的功能是把源操作数src传送至目的操作数 dst,执行后源操作数内容不变, 目的操作数内容 与源操作数内容相同。 源操作数可以是通用寄存器、段寄存器、存储器 以及立即数,目标操作数可以是通用寄存器、段寄 存器(CS除外)或存储器
数据之间的传送关系如图3-5所示 通用寄存器 (A×、BX、CX、DⅩ、 s|、D|、BP、SP) 存储器 立即数 段寄存器 (CS、DS、Ss、ES) 图3-5数据之间的传送关系
22 通用寄存器 (AX、BX、CX、DX、 SI、DI、BP、SP) 存 储 器 立 即 数 段寄存器 (CS、DS、SS、ES) 数据之间的传送关系如图3-5所示。 图3-5 数据之间的传送关系
第3章 指令系统与汇编语言程序设计 使用MOV指令进行数据传送时要注意以下几点: (1)段寄存器CS及立即数不能作为目标操作数; (2)两个存储单元之间不允许直接传送数据; (3)立即数不能直接传送到段寄存器; (4)两个段寄存器之间不能直接传送数据; (5)传送数据的类型必须匹配; (6)MOV指令不影响标志位
23 第3章 指令系统与汇编语言程序设计 使用MOV指令进行数据传送时要注意以下几点: (1) 段寄存器CS及立即数不能作为目标操作数; (2) 两个存储单元之间不允许直接传送数据; (3)立即数不能直接传送到段寄存器; (4)两个段寄存器之间不能直接传送数据; (5)传送数据的类型必须匹配; (6)MOV指令不影响标志位
第3章 指令系统与汇编语言程序设计 (2)堆栈操作指令PUSH/POP 进栈指令: PUSh opr SP←SP一2,将源操作 数op压入堆栈 出栈指令: POP opr;栈顶弹出字数据到目 标操作数opr,SP←SP+ 堆栈是存储器中的一个特殊区域,主要用于存 入和取出数据,堆栈是以“先进后出”的方式进行 数据操作的。在8086的堆栈组织中,堆栈从高地址 向低地址方向生长,它只有一个出入口,堆栈指针 寄存器SP始终指向堆栈的栈顶单元 24
24 第3章 指令系统与汇编语言程序设计 (2)堆栈操作指令PUSH/POP 进栈指令:PUSH opr ;SP←SP-2,将源操作 数opr压入堆栈 出栈指令:POP opr ;栈顶弹出字数据到目 标操作数opr,SP←SP+2 堆栈是存储器中的一个特殊区域,主要用于存 入和取出数据,堆栈是以“先进后出”的方式进行 数据操作的。在8086的堆栈组织中,堆栈从高地址 向低地址方向生长,它只有一个出入口,堆栈指针 寄存器SP始终指向堆栈的栈顶单元
第3章 指令系统与汇编语言程序设计 (3)XCHG交换指令 XCHG指令用来将源操作数和目的操作数的内容进 行交换。它可以实现字节数据交换,也可以实现字 数据交换 该指令的操作数必须有一个是在寄存器中,即可 以在两个通用寄存器之间或寄存器与存储器之间交 换数据,但不能在两个存储器之间交换数据。指令 执行结果不影响标志位
25 第3章 指令系统与汇编语言程序设计 (3)XCHG 交换指令 XCHG指令用来将源操作数和目的操作数的内容进 行交换。它可以实现字节数据交换,也可以实现字 数据交换。 该指令的操作数必须有一个是在寄存器中,即可 以在两个通用寄存器之间或寄存器与存储器之间交 换数据,但不能在两个存储器之间交换数据。指令 执行结果不影响标志位