4个数据寄存器(EAX、EBX、ECX和EDX)
2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP)
6个段寄存器(ES、CS、SS、DS、FS和GS)
1个指令指针寄存器(EIP) 1个标志寄存器(EFlags)
CMP AX,BX
JZ XX
这两组是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,BX 将AX内容清零
子程式(这个在破解中特别重要),他是主程序的一个分支,一般在发送注册码,比较注册码这些工作都是靠子程式来完成的。
子程式的返回码一般是RET
一般是这个样子的: CALL 15F:334422
数据操作
MOV AX,BX 数据传送指令,将BX的值传送到AX中
XCHG AX,BX AX与BX值互换
还有见得最多的就是算术运算
ADD AX,BX 加法 AX=AX+
BX
SUB AX,BX 减法 AX=AX-
BX
INC AX 寄存器加1 AX=AX+
1
DEC AX 寄存器减1 AX=AX-
1
MUL 乘法
DIV 除法
mov ax,bx 意思是 把bx传入到ax里面!
寄存器分别为 AX BX CX DX SI DI SP BP IP CS SS DS ES PSW
AX乘、除运算,字的输入输出,中间结果的缓存
BX存储器指针
CX串操作、循环控制的计数器
DX字的乘、除运算,间接的输入输出
简单的指令
mov ax,18 将18送入寄存器AX 高级语言 AX=
18
mov ah,78 将78送入寄存器AH 高级语言 AH=
78
add ax,8 将寄存器AX中的数值加上8 高级语言 AX=AX+
8
mov ax,bx 将AXZ和BX中的数值相加,结果存在AX中 高级语言 AX=AX+
BX
1KB=
1024B
1MB=
1024KB
1GB=
1024MB
1TB=
1024GB
MOV 传送指令
PUSH 入栈指令
POP 出栈指令
XCHG 交换指令
XLAT 换码指令
LEA 有效地址送寄存器指令
LDS( 指针送寄存器和DS指令
LES 指针送寄存器和ES指令
LAHF 标志位送AH指令
SAHF AH送标志寄存器指令
PUSHF 标志进栈指令
POPF 标志出栈指令
ADD 加法指令
ADC 带进位加法指令
INC 加1指令
SUB 不带借位的减法指令
SBB 带借位的减法指令
DEC 减1指领
NEG 求补指令
CMP 比较指令
MUL 无符号数乘法指令
IMUL 有符号数乘法指令
DIV 无符号数除法指令
IDIV 有符号数除法指令
CBW 字节转换为字指令
CWD 字转换为双字指令
DAA 压缩的BCD码加法十进制调整指令
DAS 压缩的BCD码减法十进制调整指令
AAA 非压缩的BCD码加法十进制调整指令
AAS 非压缩的BCD码加法十进制调整指令
AND 逻辑与指令
OR 逻辑或指令
XOR 逻辑异或指令
NOT 逻辑非指令
TEST 测试指令
SHL 逻辑左移指令
SHR 逻辑右移指令
ROL 循环左移指令P58
ROR 循环右移指令P58
RCL 带进位循环左移
RCR带进位循环左移
MOVS串传送指令
STOS 存入串指令
LODS从串取指令
REP 重复操作前
CLD清除方向标志指令
STD设置方向标志指令
CMPS 串比较指令
SCAS 串扫描指令
REPE/REPZ相等/为零时重复操作前缀
REPNE/REPNZ不相等/不为零进重复前缀
IN 输入指令
OUT输出指令
JMP无条件转移指令
JZ,JNZ,JS,JNS,JO,JNO,JP,JNP,JB,JNB,JBE,JNBE,JL,JNL,JLE,JNLE,JCXZ 条件转移指令
LOOP 循环指令P70
LOOPZ/LOOPE 为零/相等时循环指令
LOOPNZ/LOOPNE 不为零/不相等时循环指令
CALL 子程序调用指令
RET程序返回指令
CLC 进位位置0指令
CMC进位位求反指令
SRC进位位置1指令
NOP 无操作指令
HLT 停机指令
OFFSET 返回偏移地址
SEG 返回段地址
EQU(=
) 等值语句
PURGE 解除语句
DUP 操作数字段用复制操作符
SEGMENT,ENDS 段定义指令
ASSUME 段地址分配指令
ORG 起始偏移地址设置指令
$ 地址计数器的当前值
PROC,ENDP 过程定义语句
NAME,TITLE,END 程序开始结束语句
MACRO,ENDM 宏定义指令
JZ OPR //结果为零转移
JNZ OPR
//结果不为零转移
JS OPR
//结果为负转移
JNS OPR
//结果为正转移
JO OPR
//溢出转移
JNO OPR
//不溢出转移
JP OPR
//结果为偶转移
JNP OPR
//结果为奇转移
JC OPR
//有进位转移
JNC OPR
//无进位转移
F2:设置断点,只要在光标定位的位置(上图中灰色条)按F2键即可,再按一次F2键则会删除断点。(相当于 SoftICE 中的 F9)
F8:单步步过。每按一次这个键执行一条反汇编窗口中的一条指令,遇到 CALL 等子程序不进入其代码。(相当于 SoftICE 中的 F10)
F7:单步步入。功能同单步步过(F8)类似,区别是遇到 CALL 等子程序时会进入其中,进入后首先会停留在子程序的第一条指令上。(相当于 SoftICE 中的 F8)
F4:运行到选定位置。作用就是直接运行到光标所在位置处暂停。(相当于 SoftICE 中的 F7)
F9:运行。按下这个键如果没有设置相应断点的话,被调试的程序将直接开始运行。(相当于 SoftICE 中的 F5)
转载于:https://www.cnblogs.com/IMyLife/p/4826255.html
转载请注明原文地址: https://mac.8miu.com/read-6335.html