指令系统数据传送指令.pptVIP

  • 7
  • 0
  • 约5.94千字
  • 约 36页
  • 2019-11-06 发布于广东
  • 举报
* 下面两条指令等效: LEA BX,BUFFER MOV BX, OFFSET BUFFER 其中OFFSET BUFFER表示存储器单元BUFFER的偏移地址。 二者都可用于取存储器单元的偏移地址,但LEA指令可以取动态的地址,OFFSET只能取静态的地址。 * 4.标志传送指令 共有四条: (1)读标志指令LAHF LAHF把标志寄存器低8位中的5个标志位传送到AH中的指定位,如下图所示: OF DF IF TF SF ZF AF PF CF AH LAHF指令的功能 FLAG * (2)设置标志指令SAHF SAHF的功能与LAHF的功能正好相反,用图来示意,只要将上图中5个箭头方向反一下即可。 OF DF IF TF SF ZF AF PF CF AH SAHF指令的功能 FLAG * 执行的操作:(SP)-1←标志寄存器高8位 (SP)-2←标志寄存器低8位 (SP)←(SP)-2 (4)从栈顶弹出标志寄存器指令POPF 执行的操作:标志寄存器低8位←(SP) 标志寄存器高8位←(SP)+1 (SP)←(SP)+2 PUSHF和POPF指令用于保护和恢复标志寄存器内容。 (3)把标志寄存器推入栈顶指令PUSHF * 例如: PUSH AX PUSH CX PUSHF ;保护标志寄存器内容 ;这段程序要用到AX,CX以及标志位 POPF ;恢复标志寄存器内容 POP CX POP AX . . . * 数据传送指令中,除SAHF和POPF这两条指令外,其余所有指令均不影响标志位(即标志寄存器FLAGS的6个状态标志)。 * 为便于理解指令的形式和功能, 对指令中操作数符号的约定如下: 大小写字母无区别 oprd: 泛指各类操作数; oprd1, oprd2: 多操作数指令中, oprd1为目标操作数,oprd2为源操作数; dest, src: 目的操作数, 源操作数 reg: 8位或16位的通用寄存器; sreg: 段寄存器; acc: 累加器al或ax 3.3 8086/8088指令系统 * reg8: 8位通用寄存器; reg16: 16位通用寄存器; mem: 8位或16位存储器; mem8: 8位存储器; mem16: 16位存储器;  disp: 8位或16位存储器地址偏移量; imm或data: 8位或16位立即数; imm8: 8位立即数; imm16: 16位立即数; port :I/O端口地址,port端口号0~255 ; ( ):寄存器内容; [ ] :存储单元的内容或偏移地址。 * 可分成如下6类: 数据传送指令 算术运算指令 逻辑运算和移位指令 串操作指令 程序控制指令 处理器控制指令 * 3.3.1 数据传送指令 可实现 存储器 寄存器 I/O 数据传送指令又可分为如下四种: 通用传送 目标地址传送 标志传送 输入输出 * 表 4-1 数据传送类指令表 * 1.通用传送指令 (1) MOV dest,src; dest←src 传送的是字节还是字取决于指令中涉及的寄 存器是8位还是16位。 具体来说可实现: ① MOV mem/reg1,mem/reg2 指令中两操作数中至少有一个为寄存器 例: MOV CL,DL MOV AX,BX MOV [SI],CX MOV CL,[BX+5] * ② MOV reg,data ;立即数送寄存器 ③ MOV mem,data ;立即数送存储单元 ④ MOV acc,mem ;存储单元送累加器 ⑤ MOV mem,acc ;累加器送存储单元 ⑥ MOV segreg,mem/reg ;存储单元/寄存器送 段寄存器 ⑦ MOV mem/reg,segreg ;段寄存器送存储单 元/寄存器 * MOV指令使用规则: 1) IP不能作目的寄存器 2) 不允许mem←mem 3) 不允许segreg

文档评论(0)

1亿VIP精品文档

相关文档