当前位置:
文档之家› 微机原理与接口技术第三章传送类指令
微机原理与接口技术第三章传送类指令
• 例:XLAT CS:table
注意
• 指令执行时采用隐含约定的寻址方 式来查找数据; • 指令中隐含使用了寄存器DS、BX、 AL,如使用其它某个段寄存器,则不 能缺省,必须指明。
4.栈操作指令
• (1)进栈指令 • 功能:SP内容减2后将src压入栈区 中SS和SP指定位置 • 格式:PUSH src
(2)存储标志寄存器指令
• 功能:把寄存器中第7、6、4、2、 0的内容分别送入标志寄存器的SF、 ZF、AF、PF、CF各标志位 • 格式;SAHF
(3)标志寄存器进栈指令
• 功能:首先把堆栈指针SP减2,然 后将16位标志寄存器FR的全部内容 压入SP指向的栈顶字单元中 • 格式:PUSHF
(2)装入地址指令
• 格式:LDS dest,src • 功能:把src指定内存中连续4个字 节单元内容的低16位数据存入dest 指定的通用寄存器中,高16位存入 DS中
格式:LES dest,src
• 功能:把src指定内存中连续4个字 节单元内容的低16位数据存入dest 指定的通用寄存器中,高16位存入 ES中
数据传送类指令
1. 2. 3. 4. 5. 6. 7. 传送指令 交换指令 换码指令 栈操作指令 标志传送指令 地址传送指令 输入/输出指令
1.传送指令
• 功能:将数据从源操作数传送到目的操作数, 具有“复制”性质; • 格式:MOV dest,src
立即数 通用寄存器 AX BX CX DX SP BP SI DI 段寄存器 DS ES SS
• 例XCHG AL,[BP] XCHG DL,BH
注意
• 可在通用寄存器之间,或通用寄存器与 存储器之间交换;
• 不允许存储器之间,立即数与存储器或 寄存器之间,段寄存器间进行交换, CS,IP,出表中AL指明位置的数据,并 赋给AL • 格式:XLAT
例;PUSH AX
• (2)出栈指令 • 功能:将栈区中SS和SP指定位置的 一个字数据弹出到dest,同时SP内 容加2 • 格式:POP dest
例:POP BX
• 注意
• dest不能为CS; • 堆栈原则为后进先出; • src,dest都不能为立即数。
5.标志传送指令
• (1)取标志寄存器指令 • 功能:把标志寄存器的低8位传送给 AH寄存器 • 格式:LAHF
(4)标志寄存器出栈指令
• 功能:首先把现堆栈顶部的一个字 的内容弹出到标志寄存器FR,然后 SP加2 • 格式:POPF
6.地址传送指令
• (1)装入有效地址指令 • 功能:把指定的EA(偏移量)送到指定 的寄存器中 • 格式:LEA dest,src • 注意(本指令传送的是偏移量,不是操 作数,dest必须是通用寄存器之一,src 必须是内存操作数)
存储器
例:MOV AX,1234H MOV AL,CL
• 注意
• MOV指令源、目的操作数长度必须一致; • 源、目的操作数不能同时为段寄存器, 也不能同时为存储器单元; • 不允许立即数直接给段寄存器传送数据、 CS做dest和IP、FR参与。
2.交换指令
• 功能:将源操作数和目的操作数内的数 据做交换 • 格式:XCHG dest,src
注意
• dest必须是通用寄存器之一,src必 须是内存操作数。
7.输入输出指令
• 功能:实现CPU与I/O端口间进行 数据传送 • 格式:IN dest,src • OUT dest,src
注意
• 输入输出指令中,对I/O端口均允 许直接寻址和寄存器间接寻址; • 输入指令中的dest,输出指令中src, 当进行字节传输时,必须是AL,当 进行字传输时,必须是AX。