汇编 影响标志位的运算

今天翘了毛概课,在宿舍里盖着小毛毯做汇编作业,遇到一个题目是给出一组指令,问每一步指令完成后,标志位是什么

什么运算会改变标志位呢?在网上查了查

(1)加法指令:ADD、ADC、INC、XADD除了INC不影响CF标志位外,都影响条件标志位。

CF、ZF、SF、OF

CF最高位是否有进位

DF若两个操作数符号相同而结果符号与之相反OF=1,否则OF=0.

(2)减法指令:SUB、SBB、DEC、NEG、CMP、CMPXCHG、CMPXCHG8B

前六种除了DEC不影响CF标志外都影响标志位。CMPXHG8B只影响ZF。

CF说明无符号数相减的溢出,同时又确实是被减数最高有效位向高位的借位。

OF位则说明带符号数的溢出

无符号运算时,若减数>被减数,有借位CF=1,否则CF=0.

OF若两个数符号相反,而结果的符号与减数相同则OF=1.否则OF=0.

(3)乘法指令:MUL、IMUL

MUL:如果乘积高一半为0,则CF和OF位均为0,否则CF和OF均为1.

IMUL:如果高一半是低一半符号的扩展,则CF位和OF位均为0,否则就均为1.

(4)除法指令:DIV、IDIV
对所有条件位均无定义。

(5)逻辑指令:AND、OR、NOT、XOR、TEST

NOT不允许使用立即数,其它4条指令除非源操作数是立即数,至少要有一个操作数必须存放在寄存器中。另一个操作数则可以使用任意寻址方式。

NOT不影响标志位,其余4种CF、OF、置0,AF无定义,SF、ZF、PF位看情况而定。

定位扫描指令:BSF正向位扫描、BSR反向位扫描

源操作数可以是除立即数以外的任一种寻址方式,目的操作数必须是寄存器,影响ZF位。
 天气越来越冷了,穿的暖暖的会更开心哦~冬天快乐~

时间: 2024-10-15 08:18:09

汇编 影响标志位的运算的相关文章

常用汇编指令及其影响的标志位

加法指令 ADD (addition) 指令对标志位的影响: CF=1   最高有效位向高位有进位 CF=0   最高有效位向高位无进位 OF=1   两个同符号数相加(正数+正数 或 负数+负数),结果符号与其相反. OF=0   两个不同符号数相加,或同符号数相加,结果符号与其相同. 带进位加法指令 ADC (add with carry) 指令对标志位的影响: CF=1   最高有效位向高位有进位 CF=0   最低有效位相高位无进位 OF=1   两个同符号数相加,结果符号与其相反, O

汇编--常用汇编指令与标志位关系

加法指令 ADD (addition) 指令对标志位的影响: CF=1   最高有效位向高位有进位 CF=0   最高有效位向高位无进位 OF=1   两个同符号数相加(正数+正数 或 负数+负数),结果符号与其相反. OF=0   两个不同符号数相加,或同符号数相加,结果符号与其相同. 带进位加法指令 ADC (add with carry) 指令对标志位的影响: CF=1   最高有效位向高位有进位 CF=0   最低有效位相高位无进位 OF=1   两个同符号数相加,结果符号与其相反, O

汇编-寄存器数据的存储与变化-算术运算对标志位的影响

实验3:寄存器数据的存储与变化-算术运算对标志位的影响 1.项目设计 将操作数放在2000H和2001H两个单元中,编程进行以下的算术运算 ,并记录标志位的状态. (1)41H+3BH,结果放在2002H单元中; (2)41H+5AH,结果放在2003H单元中; (3)AFH+7EH,结果放在2004H单元中; (4)E3H+1DH,结果放在2005H单元中; (5)41H-3BH,结果放在2006H单元中: (6)3BH-41H,结果放在2007H单元中: 2.项目实施 (1)写出指令代码段,

汇编标志位简介

标志(Flag)用于反映指令执行结果或控制指令执行形式,是汇编语言程序设计中必须特别注意的一个方面.许多指令执行之后将影响有关的标志位,同时不少指令的执行要利用某些标志.因此我们在学习使用汇编语言的过程中必须了解标志位. 一.状态标志 1.进位标志CF(Carry Flag) 进位标志CF主要用来反映运算是否产生进位或借位.如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0. 使用该标志位的情况有:多字(字节)数的加减运算,无符号数的大小比较运算,移位操作,字(字节)之间移位

3.汇编中的标志位

这周主要学习的是转移指令的相关知识和原理. offset在和汇编语言中是由编译器处理的符号,它的功能是取得标号的偏移地址. jmp是无条件转移指令,可以只修改IP,也可以同时修改CS和IP. CPU在执行jmp指令的时候不需要转移的目的地址,机器码中包含的的是转移的位移. Ret指令用栈中的数据,修改IP的内容,从而实现近转移. Ret=POP  IP Retf指令用栈中的数据,修改CS和IP的内容,从而实现远转移. Retf=POP IP     POP CS   CPU执行call指令时,进

汇编常用跳转指令及检测的标志位

  助记符 条件( 执行 CMP A,B 之后的标志位) 表达式 无符号数 JB/JNAE CF=1 A < B JAE/JNB CF=0 A ≥ B JA/JNBE CF=0 and ZF=0 A > B JBE/JNA CF=1 or ZF=1 A ≤ B 有符号数 JL/JNGE SF ≠ OF A < B JGE/JNL SF=OF A ≥ B JG/JNLE SF=OF and ZF=0 A > B JLE/JNG SF ≠ OF or ZF=1 A ≤ B 无符号数或有

标志位介绍

一.运算结果标志位 1.进位标志CF(Carry Flag) 进位标志CF主要用来反映运算是否产生进位或借位.如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0. 使用该标志位的情况有:多字(字节)数的加减运算,无符号数的大小比较运算,移位操作,字(字节)之间移位,专门改变CF值的指令等. 2.奇偶标志PF(Parity Flag) 奇偶标志PF用于反映运算结果中“1”的个数的奇偶性.如果“1”的个数为偶数,则PF的值为1,否则其值为0. 利用PF可进行奇偶校验检查,或产生奇

各种标志位的含义

一.运算结果标志位 1.进位标志CF(Carry Flag) 进位标志CF主要用来反映运算是否产生进位或借位.如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0. 使用该标志位的情况有:多字(字节)数的加减运算,无符号数的大小比较运算,移位操作,字(字节)之间移位,专门改变CF值的指令等. 2.奇偶标志PF(Parity Flag) 奇偶标志PF用于反映运算结果中"1"的个数的奇偶性.如果"1"的个数为偶数,则PF的值为1,否则其值为0. 利用P

内核参数优化之2-1 tcp/ip 标志位报文解析

以下内容纯属虚构,切勿轻易相信! 众所周知,tcp/ip三次握手和四次挥手,均由syn/ack/fin三个标志位报文决定,但是这三个标志位报文,并不是说在构建连接的时候只发送一次的,因为协议不知道网络状况. 故而就存在了以下参数,可以调节发送次数 net.ipv4.tcp_syn_retries 这个参数从字面上来看就是syn标志位报文的重试次数,什么时候发送syn标志位呢?三次握手中,请求端第一次构建连接的时候,默认是5次,但是对于一个处于网络状况好的请 求端,5次显然是多了,因此,我们来个2