汇编基本命令讲解

跳转命令 根据条件作出是否跳转的决定,通常前面会有一个判断语句

例如: CMP AX,BX     

              JZ XX //jump zero

上面两条命令意为用 AX 减 BX,它的值如果为 0 则跳转到 XX 的标号行。

常用的跳转命令有:    

JZ/JE   相等或为零为则跳转     

JNZ/JNE  不相等或不为零则跳转     

JL/JLE  小于/小于或等于则跳转     

JG/JGE  大于/大于或等于则跳转     

JMP    无条件跳转

-------------------------------------------------------------比较语句 -------------------------------------------------------------    

CMP AX,BX //AX 寄存器减去 BX 寄存器的内容     

AND AX,BX //AX 与 BX 做“与运算”    

OR AX,BX //AX 与 BX 做“或运算”    

TEST AX,BX 与 AND AX,BX 命令有相同效果     

XOR AX,AX 使 AX 的内容清零,每个寄存器与自己作异或运算等于清零动作

-------------------------------------------------------------子程序 -------------------------------------------------------------

一个子程的模样长得像这个样子CALL 15F:334422

子程式是个很重要的概念,它是主程式的一个分支,用来做特定动作。打个比方:你要上班,先你是走路到车站,然后上车,然后下车,然后走到自己的办公室。

这里如果要把上班编为一段程式的话,那么就可以把“走路”、“搭车”、“走到办公室”做为分支程式来处理。说得再通俗一点就是:你要破解的程式不可能就是一条主程式到底,

肯定会呼叫下面的子程式,由子程式来处理你发送的注册信息,然后比较,然后标记是否注册正确,这些都是靠它来完成的。所以说,破解的关键在于,你找准程式在哪儿将会作注册判断,

并进入那个注册子程式,仔细观察,你就成功了。(子程式的返回码是 RET)

-------------------------------------------------------------算术运算 -------------------------------------------------------------    

ADD AX,BX  加法运算   

AX=AX+BX     

SUB AX,BX  减法运算   

AX=AX-BX     

INC AX   寄存器加一  

AX=AX+1     

DEC AX   寄存器减一  

AX=AX-1     

MUL     乘法运算     

DIV/idiv     除法运算

-------------------------------------------------------------数据操作 -------------------------------------------------------------    

MOV AX,BX 数据传送指令,将 BX 的值移送到 AX 中    

XCHG AX,BX 将 AX 与 BX 的值互换

posted @ 2012-08-29 12:17  cracksa  阅读(331)  评论(0编辑  收藏  举报
Top Buttom