第011课 汇编-xchg,add,sub

来源:互联网 发布:雪梨cherie的淘宝店铺 编辑:程序博客网 时间:2024/04/28 05:42
xchg,add,sub


内容纲要
1.xchg指令
2.add,sub
3.cf,pf


详细内容
1.xchg
xchg后面的两个操作数必须为两个容器即寄存器和内存,但需要注意宽度
当xchg reg,ds:[], 不加长度默认是一个字节,则以reg的长度进行交换
当xchg ds:[],reg,依然以reg的长度进行交换
如果[]前面加长度,则两个操作数的长度需要匹配.


2.1add
加法指令。两个操作数相加,结果放在第一个操作数,会影响cf,pf标志位
add reg/m,reg/m/Im


2.2sub
减法指令。两个操作数相减,结果放在第一个操作数,会影响cf,pf标志位
sub reg/m,reg/m/Im


3.cf,pf
cf(Carry Flag):进位标志位,当两数相加或者相减时需要向最高位进一位或者借一位,cf=1,不然pf=0.注意是长度
pf(parity Flag):奇偶验证标志位,看运算结果最后1个字节转换成二进制后1的个数是否为偶数,为偶数pf=1,否则pf=0.不管长度是一个字节还是两个字节或者四个字节。


课堂练习


1.xchg
xchg ecx,DWORD ptr ds:[eax]
xchg DWORD ptr ds:[eax],ecx


lea eax,ds:[0x0012ff40]
mov cx,0x1234
xchg cx,ds:[eax]
xchg ds:[eax],cx
xchg ecx, ds:[eax]
xchg ds:[eax],ecx


2.add,sub
验算两个操作数的内容


3.验证cf和pf位
原创粉丝点击