第3篇_3+数据传送.pptVIP

  • 4
  • 0
  • 约4.71千字
  • 约 17页
  • 2017-06-27 发布于湖北
  • 举报
课后作业 3.12 指令系统 操作码助记符 操作数助记符 ;注释 标号: 指令格式 指令构成的基本原则 源、目的操作数的字长一致 源、目的操作数不能同为内存单元 立即数不能作目的操作数 指令分类 数据传送指令 算术运算指令 逻辑运算与移位指令 串操作指令 控制转移指令 处理机控制指令 数据传送指令(14条) 实现在寄存器、存储器及I/O端口之间传送数据 除标志传送指令外,指令执行结果都不影响标志寄存器 累加器←(端口地址) (端口地址)←累加器 IN 累加器,端口地址 OUT 端口地址,累加器 从I/O端口输入数据 数据输出至I/O端口 输入输出 (2条) AH←F的低8位 AH→F的低8位 SP←SP-2,(SP)←F F←(SP),SP←SP+2 LAHF SAHF PUSHF POPF 标志寄存器送AH AH送标志寄存器 标志入栈 标志出栈 标志传送 (4条) reg16←s的有效地址 reg16←(s)的偏移地址,DS←(s)的段地址 reg16←(s)的偏移地址,ES←(s)的段地址 LEA reg16,s LDS reg16,s LES reg16,s 取有效地址 取逻辑地址(指针) 取逻辑地址(指针) 地址传送 (3条) d←s d←→s SP←SP-2,(SP)←s d←(SP),SP←SP+2 AL←DS:[BX+AL] MOV d,s XCHG d,s PUSH s POP d XLAT 传送 交换 压入堆栈 弹出堆栈 查表转换 通用数据传送 (5条) 操作 助记符格式 功能 分类 通用数据传送 1、MOV指令 格式:MOV d,s 功能: (d) ? (s) 说明:将s的内容传送给d,s保持不变 内 存 立即数 AH,AL BH,BL CH,CL DH,DL AX,BX CX,DX SI,DI BP,SP CS DS SS ES 【例】 MOV AX,BX MOV AH,DL MOV CL,[SI] MOV DS,SI MOV DI,[SI] MOV [DI],DH MOV CX,30H MOV BYTE PTR [SI],04 MOV [BX],CX MOV WORD PTR [DI],100H 不影响标志位 d不能是CS和立即数 d、s不同为段寄存器和存储器 ? MOV DS, ES 立即数不能直接送段寄存器 ? MOV DS, 2000H MOV AX,ES MOV DS,AX MOV AX,2000H MOV DS,AX 2、 XCHG 指令 格式: XCHG d,s 功能: (d) ? (s) 说明:交换s和d的内容,s和d的内容都变化 内 存 AH,AL BH,BL CH,CL DH,DL AX,BX CX,DX SI,DI BP,SP 【例】 XCHG CL,[SI] XCHG CL,AL XCHG [DI],DX XCHG BX,CX 不影响标志位 不允许使用立即数 ? XCHG AX, 2000H 不允许使用段寄存器 ? XCHG CS, DX d、s不同为存储器 ? XCHG [SI], [DI] 进栈指令PUSH 格式: PUSH s16 功能: SP←SP-2,(SP)←s16 说明:将s指定的16位操作数压入堆栈 3、 堆栈操作指令PUSH和POP 出栈指令POP 格式: POP d16 功能: d16←(SP),SP←SP+2 说明:将栈顶的16位操作数弹出,送入d 堆栈是存储器中的特定区域,在堆栈中对数据采取特殊的存取规则即“后进先出(LIFO或FILO)”。堆栈设在堆栈段中,段地址在段寄存器SS中。在堆栈中始终有一个栈顶单元,该单元的段内偏移地址存放在堆栈指针寄存器SP中(初始值可以设置)。当压入数据时,数据被存放在栈顶上面的2个字节单元中,且SP自动减2以指向新的栈顶;当弹出数据时是将栈顶的2个字节单元数据弹出至d,且SP自动加2又指向新的栈顶。总之,不管压入还是弹出总是对栈顶进行操作,且栈顶指针SP会自动修改以保持始终指向新的栈顶。 【例】设SS=8000H,SP=1000H,AX=1122H,BX=3344H,执行以下指令: PUSH AX PUSH BX POP AX 不影响标志位 不允许使用立即数 ? PUSH 2000H 必须以字为单位 ? PUSH DL ? POP AH d、s可以是16位通用寄存器、存储器或段寄存器,但POP指令不能用CS

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档