汇编语言的几个简单指令,并附上中文解释

如题所述

常用汇编指令: MOV 指令为双操作数指令,两个操作数中必须有一个是寄存器. MOV DST , SRC // Byte / Word 执行操作: dst = src
1.目的数可以是通用寄存器, 存储单元和段寄存器(但不允许用CS段寄存器). 2.立即数不能直接送段寄存器
3.不允许在两个存储单元直接传送数据 4.不允许在两个段寄存器间直接传送信息
PUSH 入栈指令及POP出栈指令: 堆栈操作是以"后进先出"的方式进行数据操作.
PUSH SRC //Word
入栈的操作数除不允许用立即数外,可以为通用寄存器,段寄存器(全部)和存储器. 入栈时高位字节先入栈,低位字节后入栈. POP DST //Word

出栈操作数除不允许用立即数和CS段寄存器外, 可以为通用寄存器,段寄存器和存储
器. 执行POP SS指令后,堆栈区在存储区的位置要改变.
执行POP SP 指令后,栈顶的位置要改变.
XCHG(eXCHanG)交换
指令: 将两操作数值交换
.
XCHG OPR1, OPR2 //Byte/Word
执行操作: Tmp=OPR1 OPR1=OPR2 OPR2=Tmp 1.必须有一个操作数是在寄存器中 2.不能与段寄存器交换数据
3.存储器与存储器之间不能交换数据.
XLAT(TRANSLATE)换码指令: 把一种代码转换为另一种代码. XLAT (OPR 可选) //Byte 执行操作: AL=(BX+AL)
指令执行时只使用预先已存入BX中的表格首地址,执行后,AL中内容则是所要转换的代码.
LEA(Load Effective Address) 有效地址传送寄存器指令
LEA REG , SRC //指令把源操作数SRC的有效地址送到指定的寄存器中. 执行操作: REG = EAsrc
注: SRC只能是各种寻址方式的存储器操作数,REG只能是16位寄存器 MOV BX , OFFSET OPER_ONE 等价于 LEA BX , OPER_ONE
MOV SP , [BX] //将BX间接寻址的相继的二个存储单元的内容送入SP中 LEA SP , [BX] //将BX的内容作为存储器有效地址送入SP中 LDS(Load DS with pointer)指针送寄存器和DS指令 LDS REG , SRC //常指定SI寄存器。
执行操作: REG=(SRC), DS=(SRC+2) //将SRC指出的前二个存储单元的内容送入指令中指定的寄存器中,后二个存储单元送入DS段寄存器中。
温馨提示:答案为网友推荐,仅供参考
相似回答