分类: 信息化
2015-01-07 23:50:12
[No.000001]2015-01-07汇编复习
最近比较了好多写博客的网站,感觉还是博客园比较人性化,自由度比较大,所以打算定居下来。
接下来打算要破解一个软件,所以今天复习了一下汇编,现在分享一下学习过程,同时把其他地方的博客都整理清空
感觉还可以的几个写博客的网址:
其他的要么不适合IT,要么使用不方便,权限和自由度(如网页的设计,背景模块的添加等)不大:
下面这个赶集有点小清新:
轻博客:http://qing.blog.sina.com.cn/CharyGao
言归正传:
汇编指令速查
指令 |
功能 |
指令 |
功能 |
指令 |
功能 |
指令 |
功能 |
指令 |
功能 |
||||
AAA |
调整加 |
FDIV |
浮点除 |
INC |
加一 |
PAND |
媒体与 |
SETNG |
不大于置位 |
||||
AAD |
调整除 |
FDIVP |
浮点除出栈 |
INSB |
端口输入字节串 |
PANDN |
媒体与非 |
SETNL |
不小于置位 |
||||
AAM |
调整乘 |
FDIVR |
浮点反除 |
INSD |
端口输入双字串 |
PAVEB |
|
SETNO |
不溢出置位 |
||||
AAS |
调整减 |
FDIVRP |
浮点反除出栈 |
INSW |
端口输入字串 |
PCMPEQB |
媒体字节比等 |
SETNP |
非奇偶置位 |
||||
ADC |
进位加 |
FENI |
浮点检查禁止中断二 |
JA |
高于跳转 |
PCMPEQD |
媒体双字比等 |
SETNS |
非负置位 |
||||
ADD |
加 |
FFREE |
浮点释放 |
JB |
低于跳转 |
PCMPEQW |
媒体字比等 |
SETO |
溢出置位 |
||||
AND |
与 |
FFREEP |
浮点释放出栈 |
JBE |
不高于跳转 |
PCMPGTB |
媒体字节比大 |
SETP |
奇偶置位 |
||||
ARPL |
调整优先级 |
FIADD |
浮点加整数 |
JCXZ |
计数一六零跳转 |
PCMPGTD |
媒体双字比大 |
SETS |
负号置位 |
||||
BOUND |
检查数组 |
FICOM |
浮点比较整数 |
JE |
相等跳转 |
PCMPGTW |
媒体字比大 |
SGDT |
保存全局描述符 |
||||
BSF |
位右扫描 |
FICOMP |
浮点比较整数出栈 |
JECXZ |
计数三二零跳转 |
PDISTIB |
|
SHL |
逻辑左移 |
||||
BSR |
位左扫描 |
FIDIV |
浮点除整数 |
JG |
大于跳转 |
PMACHRIW |
|
SHLD |
双精度左移 |
||||
BSWAP |
交换字节 |
FIDIVR |
浮点反除 |
JL |
小于跳转 |
PMADDWD |
|
SHR |
逻辑右移 |
||||
BT |
位测试 |
FILD |
浮点加载整数 |
JMP |
跳转 |
PMAGW |
|
SHRD |
双精度右移 |
||||
BTC |
位测试求反 |
FIMUL |
浮点乘整数 |
JMPE |
跳转扩展 |
PMULHRIW |
|
SIDT |
保存中断描述符 |
||||
BTR |
位测试清零 |
FINCSTP |
浮点栈针加一 |
JNB |
不低于跳转 |
PMULHRWC |
|
SLDT |
保存局部描述符 |
||||
BTS |
位测试置一 |
FINIT |
浮点检查初始化 |
JNE |
不等跳转 |
PMULHW |
|
SMI |
|||||
CALL |
过程调用 |
FIST |
浮点保存整数 |
JNG |
不大于跳转 |
PMVGEZB |
|
SMINT |
|||||
CBW |
转换字节 |
FISTP |
浮点保存整数出栈 |
JNL |
不小于跳转 |
PMVLZB |
|
SMINTOLD |
|||||
CDQ |
转换双字 |
FISTTP |
|
JNO |
不溢出跳转 |
PMVNZB |
|
SMSW |
保存状态字 |
||||
CLC |
进位清零 |
FISUB |
浮点减整数 |
JNP |
非奇偶跳转 |
PMVZB |
|
STC |
进位设置 |
||||
CLD |
方向清零 |
FISUBR |
浮点反减整数 |
JNS |
非负跳转 |
POP |
出栈 |
STD |
方向设置 |
||||
CLI |
中断清零 |
FLD |
浮点加载数 |
JO |
溢出跳转 |
POPA |
全部出栈 |
STI |
中断设置 |
||||
CLTS |
任务清除 |
FLD1 |
浮点加载一 |
JP |
奇偶跳转 |
POPF |
标志出栈 |
STOSB |
保存字节串 |
||||
CMC |
进位求反 |
FLDCW |
浮点加载控制器 |
JS |
负号跳转 |
POR |
媒体或 |
STOSD |
保存双字串 |
||||
CMOVA |
高于传送 |
FLDENV |
浮点加载环境 |
LAHF |
加载标志低八 |
PSLLD |
媒体双字左移 |
STOSW |
保存字串 |
||||
CMOVB |
低于传送 |
FLDL2E |
浮点加载L2E |
LAR |
加载访问权限 |
PSLLQ |
媒体四字左移 |
STR |
保存任务 |
||||
CMOVE |
相等传送 |
FLDL2T |
浮点加载L2T |
LDS |
加载数据段 |
PSLLW |
媒体字左移 |
SUB |
减 |
||||
CMOVG |
大于传送 |
FLDLG2 |
浮点加载LG2 |
LEA |
加载有效地址 |
PSRAD |
媒体双字算术右移 |
SYSCALL |
系统调用 |
||||
CMOVL |
小于传送 |
FLDLN2 |
浮点加载LN2 |
LEAVE |
清除过程堆栈 |
PSRAW |
媒体字算术右移 |
SYSENTER |
系统进入 |
||||
CMOVNA |
不高于传送 |
FLDPI |
浮点加载PI |
LES |
加载附加段 |
PSRLD |
媒体双字右移 |
SYSEXIT |
系统退出 |
||||
CMOVNB |
不低于传送 |
FLDZ |
浮点加载零 |
LFS |
加载标志段 |
PSRLQ |
媒体四字右移 |
SYSRET |
系统返回 |
||||
CMOVNE |
不等传送 |
FMUL |
浮点乘 |
LGDT |
加载全局描述符 |
PSRLW |
媒体字右移 |
TEST |
数测试 |
||||
CMOVNG |
不大于传送 |
FMULP |
浮点乘出栈 |
LGS |
加载全局段 |
PSUBB |
媒体截断字节减 |
UD0 |
未定义指令0 |
||||
CMOVNL |
不小于传送 |
FNCLEX |
浮点不检查错误清除 |
LIDT |
加载中断描述符 |
PSUBSB |
媒体符号饱和字节减 |
UD1 |
未定义指令1 |
||||
CMOVNO |
不溢出传送 |
FNDISI |
浮点不检查禁止中断 |
LMSW |
加载状态字 |
PSUBSIW |
|
UD2 |
未定义指令2 |
||||
CMOVNP |
非奇偶传送 |
FNENI |
浮点不检查禁止中断二 |
LOADALL |
加载所有 |
PSUBSW |
媒体符号饱和字减 |
UMOV |
|||||
CMOVNS |
非负传送 |
FNINIT |
浮点不检查初始化 |
LOADALL286 |
加载所有286 |
PSUBUSB |
媒体无符号饱和字节减 |
VERW |
校验写 |
||||
CMOVO |
溢出传送 |
FNOP |
浮点空 |
LOCK |
锁 |
PSUBUSW |
媒体无符号饱和字减 |
WAIT |
等 |
||||
CMOVP |
奇偶传送 |
FNSAVE |
浮点不检查保存状态 |
LODSB |
加载源变址字节串 |
PSUBW |
媒体截断字减 |
WBINVD |
回写无效高速缓存 |
||||
CMOVS |
负号传送 |
FNSTCW |
浮点不检查保存控制器 |
LODSD |
加载源变址双字串 |
PUNPCKHBW |
媒体字节高位解压 |
WRMSR |
写专用模式 |
||||
CMP |
比较 |
FNSTENV |
浮点不检查保存环境 |
LODSW |
加载源变址字串 |
PUNPCKHDQ |
媒体双字高位解压 |
WRSHR |
|||||
CMPSB |
比较字节串 |
FNSTSW |
浮点不检查保存状态器 |
LOOP |
计数循环 |
PUNPCKHWD |
媒体字高位解压 |
XADD |
交换加 |
||||
CMPSD |
比较双字串 |
FPATAN |
浮点部分反正切 |
LOOPE |
相等循环 |
PUNPCKLBW |
媒体字节低位解压 |
XBTS |
|||||
CMPSW |
比较字串 |
FPREM |
浮点部分余数 |
LOOPNE |
不等循环 |
PUNPCKLDQ |
媒体双字低位解压 |
XCHG |
交换 |
||||
CMPXCHG |
比较交换 |
FPREM1 |
浮点部分余数二 |
LOOPNZ |
非零循环 |
PUNPCKLWD |
媒体字低位解压 |
XLAT |
换码 |
||||
CMPXCHG486 |
比较交换486 |
FPTAN |
浮点部分正切 |
LOOPZ |
为零循环 |
PUSH |
压栈 |
XOR |
异或 |
||||
CMPXCHG8B |
比较交换8字节 |
FRNDINT |
浮点舍入求整 |
LSL |
加载段界限 |
PUSHA |
全部压栈 |
XSTORE |
|||||
CPUID |
CPU标识 |
FRSTOR |
浮点恢复状态 |
LSS |
加载堆栈段 |
PUSHF |
标志压栈 |
||||||
CWD |
转换字 |
FSAVE |
浮点检查保存状态 |
LTR |
加载任务 |
RCL |
进位循环左移 |
||||||
CWDE |
扩展字 |
FSCALE |
浮点比例运算 |
MONITOR |
监视 |
RCR |
进位循环右移 |
||||||
DAA |
调整加十 |
FSETPM |
浮点设置保护 |
MOV |
传送 |
RDMSR |
读专用模式 |
||||||
DAS |
调整减十 |
FSIN |
浮点正弦 |
MOVED |
媒体双字传送 |
RDPMC |
读执行监视计数 |
||||||
DEC |
减一 |
FSINCOS |
浮点正余弦 |
MOVEQ |
媒体四字传送 |
RDSHR |
|||||||
DIV |
除 |
FSQRT |
浮点平方根 |
MOVSB |
传送字节串 |
RDTSC |
读时间戳计数 |
||||||
EMMS |
媒体空MMX状态 |
FST |
浮点保存 |
MOVSD |
传送双字串 |
REP |
重复 |
||||||
ENTER |
建立堆栈帧 |
FSTCW |
浮点检查保存控制器 |
MOVSW |
传送字串 |
REPE |
相等重复 |
||||||
F2XM1 |
浮点栈顶绝对值 |
FSTENV |
浮点检查保存环境 |
MOVSX |
符号传送 |
REPNE |
不等重复 |
||||||
FADD |
浮点加 |
FSTP |
浮点保存出栈 |
MOVZX |
零传送 |
RET |
过程返回 |
||||||
FADDP |
浮点加出栈 |
FSTSW |
浮点检查保存状态器 |
MUL |
乘 |
RETF |
远过程返回 |
||||||
FBLD |
浮点加载十数 |
FSUB |
浮点减 |
MWAIT |
RETN |
近过程返回 |
|||||||
FBSTP |
浮点保存十数出栈 |
FSUBP |
浮点减出栈 |
NEG |
求补 |
ROL |
循环左移 |
||||||
FCHS |
浮点正负求反 |
FSUBR |
浮点反减 |
NOP |
空 |
ROR |
循环右移 |
||||||
FCLEX |
浮点检查错误清除 |
FSUBRP |
浮点反减出栈 |
NOT |
非 |
RSM |
恢复系统管理 |
||||||
FCMOVB |
浮点低于传送 |
FTST |
浮点比零 |
OR |
或 |
SAHF |
恢复标志低八 |
||||||
FCMOVBE |
浮点不高于传送 |
FUCOM |
浮点无序比较 |
OUT |
端口输出 |
SAL |
算术左移 |
||||||
FCMOVE |
浮点相等传送 |
FUCOMI |
浮点反比加载标志 |
OUTSB |
端口输出字节串 |
SALC |
|||||||
FCMOVNB |
浮点不低于传送 |
FUCOMIP |
浮点反比加载标志出栈 |
OUTSD |
端口输出双字串 |
SAR |
算术右移 |
||||||
FCMOVNBE |
浮点高于传送 |
FUCOMP |
浮点无序比较出栈 |
OUTSW |
端口输出字串 |
SBB |
借位减 |
||||||
FCMOVNE |
浮点不等传送 |
FUCOMPP |
浮点无序比较出栈二 |
PACKSSDW |
媒体符号双字压缩 |
SCASB |
扫描字节串 |
||||||
FCMOVNU |
浮点有序传送 |
FWAIT |
浮点等 |
PACKSSWB |
媒体符号字压缩 |
SCASD |
扫描双字串 |
||||||
FCMOVU |
浮点无序传送 |
FXAM |
浮点检查 |
PACKUSWB |
媒体无符号字压缩 |
SCASW |
扫描字串 |
||||||
FCOM |
浮点比较 |
FXCH |
浮点交换 |
PADDB |
媒体截断字节加 |
SETA |
高于置位 |
||||||
FCOMI |
浮点比较加载标志 |
FXTRACT |
浮点分解 |
PADDD |
媒体截断双字加 |
SETB |
低于置位 |
||||||
FCOMIP |
浮点比较加载标志出栈 |
FYL2X |
浮点求L2X |
PADDSB |
媒体符号饱和字节加 |
SETE |
相等置位 |
||||||
FCOMP |
浮点比较出栈 |
FYL2XP1 |
浮点求L2XP1 |
PADDSIW |
|
SETG |
大于置位 |
||||||
FCOMPP |
浮点比较出栈二 |
HLT |
停 |
PADDSW |
媒体符号饱和字加 |
SETL |
小于置位 |
||||||
FCOS |
浮点余弦 |
IDIV |
符号整除 |
PADDUSB |
媒体无符号饱和字节加 |
SETNA |
不高于置位 |
||||||
FDECSTP |
浮点栈针减一 |
IMUL |
符号乘法 |
PADDUSW |
媒体无符号饱和字加 |
SETNB |
不低于置位 |
||||||
FDISI |
浮点检查禁止中断 |
IN |
端口输入 |
PADDW |
媒体截断字加 |
SETNE |
不等置位 |
最后,摘抄我从其他博客上整理的一篇我很喜欢的文章:
《一切都是最好的安排》
从前有一个国家,地不大,人不多,但是人民过着悠闲快乐的生活,因为他们有一位不喜欢做事的国王和一位不喜欢做官的宰相。
国王没有什么不良嗜好,除了打猎以外,最喜欢与宰相微服私访民隐。
宰相除了处理国务以外,就是陪着国王下乡巡视,如果是他一个人的话,他最喜欢研究宇宙人生的真理,他最常挂在嘴边的一句话就是「一切都是最好的安排」。
有一次,国王兴高采烈又到大草原打猎,随从们带着数十条猎犬,声势浩荡。
国王的身体保养得非常好,筋骨结实,而且肌肤泛光,看起来就有一国之君的气派。随从看见国王骑在马上,威风凛凛地追逐一头花豹,都不禁赞叹国王勇武过人!
花豹奋力逃命,国王紧追不舍,一直追到花豹的速度减慢时,国王才从容不迫弯弓搭箭,瞄准花豹,嗖的一声,利箭像闪电似的,一眨眼就飞过草原,不偏不倚钻入花豹的颈子,花豹惨嘶一声,仆倒在地。
国王很开心,他眼看花豹躺在地上许久都毫无动静,一时失去戒心,居然在随从尚未赶上时,就下马检视花豹。
谁想到,花豹就是在等待这一瞬间,使出最后的力气突然跳起来向国王扑过来。
国王一愣,看见花豹张开血盆大口咬来,他下意识地闪了一下,心想:「完了!」
还好,随从及时赶上,立刻发箭射入花豹的咽喉,国王觉得小指一凉,花豹就不吭声地跌在地上,这次真的死了。
随从忐忑不安走上来询问国王是否无恙,国王看看手,小指头被花豹咬掉小半截,血流不止,随行的御医立刻上前包扎。虽然伤势不算严重,但国王的兴致破坏光了,本来国王还想找人来责骂一番,可是想想这次只怪自己冒失,还能怪谁?所以闷不吭声,大伙儿就黯然回宫去了。
回宫以后,国王越想越不痛快,就找了宰相来饮酒解愁。
宰相知道了这事后,一边举酒敬国王,一边微笑说:「大王啊!少了一小块肉总比少了一条命来得好吧!想开一点,一切都是最好的安排!」
国王一听,闷了半天的不快终于找到宣泄的机会。他凝视宰相说:「嘿!你真是大胆!你真的认为一切都是最好的安排吗?」
宰相发觉国王十分愤怒,却也毫不在意说:「大王,真的,如果我们能够超越『我执』,确确实实,一切都是最好的安排!」
国王说:「如果寡人把你关进监狱,这也是最好的安排?」
宰相微笑说:「如果是这样,我也深信这是最好的安排。」
国王说:「如果寡人吩咐侍卫把你拖出去砍了,这也是最好的安排?」
宰相依然微笑,彷佛国王在说一件与他毫不相干的事。
「如果是这样,我也深信这是最好的安排。」
国王勃然大怒,大手用力一拍,两名侍卫立刻近前,他们听见国王说:「你们马上把宰相抓出去斩了!」
侍卫愣住,一时不知如何反应。
国王说:「还不快点,等什么?」
侍卫如梦初醒,上前架起宰相,就往门外走去。
国王忽然有点后悔,他大叫一声说:「慢着,先抓去关起来!」
宰相回头对他一笑,说:「这也是最好的安排!」
国王大手一挥,两名侍卫就架着宰相走出去了。
过了一个月,国王养好伤,打算像以前一样找宰相一块儿微服私巡,可是想到是自己亲口把他关入监狱里,一时也放不下身段释放宰相,叹了口气,就自己独自出游了。
走着走着,来到一处偏远的山林,忽然从山上冲下一队脸上涂着红黄油彩的蛮人,三两下就把他五花大绑,带回高山上。
国王这时联想到今天正是满月,这一带有一支原始部落每逢月圆之日就会下山寻找祭祀满月女神的牺牲。
他哀叹一声,这下子真的是没救了。心里很想跟蛮人说:我乃这里的国王,放了我,我就赏赐你们金山银海!可是嘴巴被破布塞住,连话都说不出口。
当他看见自己被带到一口比人还高的大锅炉,柴火正熊熊燃烧,更是脸色惨白。
大祭司现身,当众脱光国王的衣服,露出他细皮嫩肉的龙体,大祭司啧啧称奇,想不到现在还能找到这么完美无暇的牺牲!
原来,今天要祭祀的满月女神,正是「完美」的象征,所以,祭祀的牲品丑一点、黑一点、矮一点都没有关系,就是不能残缺。
就在这时,大祭司终于发现国王的左手小指头少了小半截,他忍不住咬牙切齿咒骂了半天,忍痛下令说:「把这个废物赶走,另外再找一个!」
脱困的国王大喜若狂,飞奔回宫,立刻叫人释放宰相,在御花园设宴,为自己保住一命、也为宰相重获自由而庆祝。
国王一边向宰相敬酒说:「爱卿啊!你说的真是一点也不错,果然,一切都是最好的安排!如果不是被花豹咬一口,今天连命都没了。」
宰相回敬国王,微笑说:「贺喜大王对人生的体验又更上一层楼了。」
过了一会儿,国王心念一动,问宰相说:「寡人救回一命,固然是『一切都是最好的安排』,可是你无缘无故在监狱里蹲了一个月,这又怎么说呢?」
宰相慢条斯理喝下一口酒,才说:「大王!您将我关在监狱里,确实也是最好的安排啊!」
他饶富深意看了国王一眼,举杯说:「您想想看,如果我不是在监狱里,那么陪伴您微服私巡的人,不是我,还会有谁呢?等到蛮人发现国王不适合拿来祭祀满月女神时,那么,谁会被丢进大锅炉中烹煮呢?不是我,还会有谁呢?所以,我要为大王将我关进监狱而向您敬酒,您也救了我一命啊!」
国王忍不住哈哈大笑,朗声说:「干杯吧!果然没错,一切都是最好的安排!」
如果我的博客对您有用,麻烦请点赞,谢谢!