ASM相关

标志位寄存器PSW

CF		;进位标志位,当进行加(减)法运算后最高位产生进(借)位时则CF置1,否则置0
ZF		;零标志位,当前运算结果为0则ZF置1,否则置0
SF		;符号标志位,与运算结果的最高位相同,运算结果为负则SF置1,否则置0
OF		;溢出标志位,运算结果溢出则OF置1,否则OF置0
PF		;奇偶标志位,运算结果最低16位中1的个数为偶数则PF置1,否则置0
AF		;辅助进位标志

栈操作指令

-- pushfq 压栈指令

pushfq		;将RFLAGS压栈

-- pop 弹栈指令

pop xx		;将栈顶元素弹出到'xx'通用寄存器

跳转指令

-- jmp 跳转指令

jmp xxx		;无条件跳转指令

-- jae 跳转指令

jae xxx		;进行无符号操作数比较后,目标操作数(前)大于原操作数(后)时执行跳转

-- jb 跳转指令

jb xxx		;当CF=1时执行跳转,常用于小于比较

-- jnb 跳转指令

jnb xxx		;当CF=0时执行跳转

-- jne 跳转指令

jne xxx		;当ZF=0时执行跳转

-- js 跳转指令

js xxx		;当SF=1时执行跳转

-- jns 跳转指令

jns xxx		;当SF=0时执行跳转

位操作指令

-- and 二进制与运算指令

and xx,xx		;将两个二进制操作数进行按位与运算

-- or 二进制或运算指令

or xx,xx		;将两个二进制操作数进行按位或运算

-- not 二进制非运算指令

not xx		;将二进制操作数进行按位取反运算

-- shr 二进制右位移指令

shr xx,n		;将通用寄存器操作数向右移动n位,将最后移出的一位写入CF中

-- shl 二进制左位移指令

shl xx,n		;将通用寄存器操作数向左移动n位,将最后移出的一位写入CF中

-- rol 二进制循环左移指令

rol xx,n		;将通用寄存器操作数向左移动n位,流程是每次所有位向左移动都将最高位复制到进位标志和最低位

运算指令

-- dec 减1指令

dec xx		;将通用寄存器的值减1,影响很多标志位除了CF进位标志
posted @ 2023-02-24 23:49  Kaker  阅读(69)  评论(0)    收藏  举报