汇编基础

(本文更新ing...)

0. 一些命令

汇编命令等价伪代码
mov eax, ecxeax=ecx
add eax, ecxeax+=ecx
sub eax, ecxeax-=ecx
inc eaxeax++
dec eaxeax--
lea eax, [ecx+4]eax=ecx+4
leavemov esp ebp,pop ebp
retneip=esp,esp=esp+4
retn Neip=esp,esp=esp+4+N

1. jxx家族

测试标志位的jxx:

指令描述条件别名相反指令
jc如果进位位被置位则跳转进位标志=1jb,jnaejnc
jnc如果进位位没有置位则跳转进位标志=0jnb,jaejc
jz如果0标志被置位则跳转0标志=1jejnz
jnz如果0标志没有置位则跳转0标志=0jnejz
js如果符号位被置位则跳转符号标志=1jns
jns如果符号位没有被置位则跳转符号标志=0js
jo如果溢出标志置位则跳转溢出标志=1jno
jno如果溢出标志没有置位则跳转溢出标志=0jo
jp如果奇偶校验位被置位则跳转奇偶校验标志=1jpejnp
jpe如果奇偶校验位为偶校验则跳转奇偶校验标志=1jpjpo
jnp如果奇偶校验位没有被置位则跳转奇偶校验标志=0jpojp
jpo如果奇偶校验位为奇校验则跳转奇偶校验标志=0jnpjpe

使用无符号数比较的jxx:

指令描述条件别名相反指令
ja如果超过(>)则跳转进位标志=0,0标志=0jnbejna
jnbe如果不低于或等于(不 <=)则跳转进位标志=0,0标志=0jajbe
jae如果超过或等于(>=)则跳转进位标志=0jnc,jnbjnae
jnb如果不低于则跳转(不 <)进位标志=0jnc,jaejb
jb如果低于(<)则跳转进位标志=1jc,jnaejnb
jnae如果不超过或等于(不>=)则跳转进位标志=1jc,jbjae
jbe如果低于或等于(<=)则跳转进位标志=1或0标志=1jnajnbe
jna如果不超过(不>)则跳转进位标志=1或0标志=1jbeja
je如果相等(=)则跳转0标志=1jzjne
jne如果不相等(<>)则跳转0标志=0jnzje

使用有符号数比较的jxx:

指令描述条件别名相反指令
jg如果大于(>)则跳转符号标志=溢出标志或0标志=0jnlejng
jnle如果小于或等于(<=)则跳转符号标志=溢出标志或0标志=0jgjle
jge如果大于或等于(>=)则跳转符号标志=溢出标志jnljge
jnl如果不小于(不<)则跳转符号标志=溢出标志jgejl
jl如果小于(<)则跳转符号标志<>溢出标志jngejnl
jnge如果大于或等于(>=)跳转符号标志<>溢出标志jljge
jle如果小于或等于(<=)跳转符号标志<>溢出标志或0标志=1jngjnle
jng如果不大于(不>)则跳转符号标志<>溢出标志或0标志=1jlejg
je如果等于(=)则跳转0标志=1jzjne
jne如果不等于(<>)则跳转0标志=0jnzje

2. 流程控制命令

汇编伪代码等价伪代码
cmp a,b
jle end

end:
if(a>b){①}
cmp a,b
jge end

end:
if(a<b){①}
cmp a,b
jne end

end:
if(a==b){①}
657569-20170916145330907-180212124.pngif(a==1){①}else{②}
657569-20170916151642016-155268958.pngswitch(a){
case 'c':①;break;
case 'x':②;break;
default:③;
}
657569-20170916152729797-206347593.png
注意这里对a--做了
简化处理,实际的汇
编过程中会为a--
请一个临时变量
do{①}while{a--};
657569-20170916154219469-1671614273.pngwhile(a--){①}
657569-20170916155848766-489084758.pngfor(i=0;i<100;i++){①}

转载于:https://www.cnblogs.com/spenghui/p/7531175.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值