汇编指令基础(二)——以IA32学习

来源:互联网 发布:mac对战平台 编辑:程序博客网 时间:2024/06/06 15:45

汇编指令基础(二)——以IA32学习

算术与逻辑操作

指令 效果 描述 leal S, D D<-S 加载有效 INC D D<-D + 1 加1 DEC D D<-D - 1 减1 NEG D D<- -D 取负 NOT D D<-~D 取反 ADD S, D D<-D + S 求和 SUB S, D D<-D - S 求差 IMUL S, D D<-D * S 乘 XOR S, D D<-D ^ S 亦或 AND S, D D<-D & S 与 OR S, D D<-D | S 或 SAL k, D D<-D << k 左移 SHL k, D D<-D << k 左移,等同于SAL SAR k, D D<-D >>A k 算术右移 SHR k, D D<-D >>L k 逻辑右移

一些解释

​ 对于leal的使用,有时候S操作数看起来像一个存储器位置,但它并不代表存储器中的某个地址,仅仅是将S计算出来的值写入D中。举个例子,lead 7(%edx, %edx, 4), %eax,假定%edx的值为x,则该条指令的作用是将7 + x + 4 * x写入%eax中。

​ 除leal外,其余每条指令对操作数类型都有b、w、l之分,即字节、字、双字的长度限制。

算术右移: 有符号整数的右移,左端空出的位用符号位填充,正数符号位为0,负数符号位为1。举个例子,1000 0000右移3位,结果就是1111 0000。

逻辑右移: 不管符号位是0是1,左端空位统统用0来填充。

0 0
原创粉丝点击