跳转命令 根据条件作出是否跳转的决定,通常前面会有一个判断语句
例如: 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 的值互换