常用的汇编指令(算数和逻辑运算指令)
算数运算指令
功能 | 汇编指令 | 解释 |
---|---|---|
加 | add d,s | add 计算d+s 结果存入d |
减 | sub d,s | subtract 计算d-s,结果存入d |
乘 | Mul; imul d,s | multiply 无符号/有符号d*s 乘积存入d |
除 | Div;div s | divide 无符号/有符号除法 edx:eax/s ,商存入eax,余数存入edx |
取负数 | negative | neg d 取d的负数,结果存入d |
自增++ | increase | inc d 将d++,结果存入d |
自减-- | decrease | dec d 将d--,结果存入d |
王道书中的写法
add<reg> ,<reg>
add<reg>,<mem>
add<reg>,<con>
reg代表寄存器,mem代表内存,con代表常量,其中常量必须在后面,而不能被存入
逻辑运算指令
功能 | 汇编指令 | 英文 | 解释 |
---|---|---|---|
与 | and d,s | and | d,s逐位相与,结果放回d |
或 | Or d,s | or | d,s逐位相或,结果放回d |
非 | not d,s | not | 将d逐位取反,结果放回d |
异或 | Xor d,x | exclusive or | 将d,s逐位异或,结果放回d |
左移 | Shl d,s | shift left | 将d左移s位,结果放回d,s为常量 |
右移 | Shr d,s | shift right | 将d右移s位,结果放回d,s为常量 |
其他指令
用于实现分支结构,循环结构的指令:cmp,test,jum,jxxx
用于实现函数调用的指令:push,pop,call,ret
用于实现数据转移的指令:mov
咸鱼:I like move it move it