用户名:  密码:   
您当前的位置:首页 > 程序设计 >  汇编与密码学 > 

常见的汇编命令

上次修改时间: 2017-10-12 20:54:33      来源:网络总结      作者:钢铁长陈
上一页      路径:DSD\Learn\assembly与反assembly\X86汇编(零基础入门学通汇编语言)\      下一页

ret/retf/iret  //ret相当于pop IP,retf相当于pop IP和pop CS,iret相当于pop IP,pop CS,popf,恢复IP,CS和标志寄存器
call   //一般同ret配合使用,它是先将IP或CS和IP压栈再jmp,call不能短转移,只能段间转移
pushf/popf  //将标志寄存器入栈,将栈的值恢复到标志寄存器
cld/std   //设置DF标志位为0或1,该标志位决定了movsb复制的顺序
cli/sti   //IF置0(清空)/IF置1(设置IF)
int 21h   //主动调用21号中断,同除法溢出被动触发中断不同。
    //中断步骤:取得中断码——flag入栈——TF,IF置为0——CS入栈——IP入栈——调用中断处理程序

ja/jb/je   //大于跳,小于跳,等于跳,主要根据上步cmp比较结果来跳
jna/jnb/jne  //不大于跳,不小于跳,不等于跳
jcxz ok   //若cx的值为0就跳到ok标号处
jmp   //无条件跳转

db 8 dup(0)   //用0填充8个字节
db 'conversation' //定义一个字符串,每个字符占一字节
dw 1,2,3,4,5,6,7,8 //定义8个字
dd 1,2,3,4,5,6,7,8 //定义8个双字

运算指令:
inc/dec   //自增或自减1
and/or   //与和或运算,前者3种组合都0用来置0(仅1和1得1),后者三种组合为1用来置1(仅0和0得0)
add/adc  //加法和带进位的加,adc还要加上标志寄存器
sub/sbb/cmp //减法和带借位的减 ,cmp也是减法但只影响标志位不存结果
mul   //8位相乘默认有个乘数在al结果放ax,16位相乘默认有个乘数在ax结果低位在ax高位在dx