进借位标志CF怎么算位CF是什么意思


1MOVE数据传送指令 MOV
格式: MOV OPRD1,OPRD2
功能: 本指令将一个源操作数送到目的操作数
中,即OPRD1<--OPRD2.说明:
1. OPRD1 为目的操作数,可以是寄存器、存储器、累加器. OPRD2 为源操作数,可以是寄存器、存储器、累加器和立即数.
2. MOV 指令以分为以下四种情况:
<1> 寄存器与寄存器之间的数据传送指令
<2> 立即数到通用寄存器数据传送指令
<3> 寄存器与存储器之间的数据传送指令
<4> 立即数到存储器的数据传送 3. 本指令不影响状态标志位
2PUSH堆栈操作指令 PUSH和POP
格式: PUSH OPRD
POP OPRD
功能: 实现压入操作的指令是PUSH指令;实现弹出
操作的指令是POP指令.说明:
1. OPRD为16位(字)操作数,可以是寄存器或存储器操作数.
2. PUSH的操作过程是: (SP)<--(SP)-2,((sp))<--OPRD 即先修改堆栈指针SP(压入时为自动减2),然后,将指定的操作数送入新的栈顶位置.
此处的((SP))<--OPRD,也可以理解为: [(SS)*16+(SP)]<--OPRD 或 [SS:SP]<--OPRD
3POP堆栈操作指令 PUSH和POP
格式: PUSH OPRD
POP OPRD
功能: 实现压入操作的指令是PUSH指令;实现弹出
操作的指令是POP指令.说明:
1. OPRD为16位(字)操作数,可以是寄存器或存储器操作数.
2. POP指令的操作过程是: POP OPRD:OPRD<--((SP)),(SP)<--(SP)+2
它与压入操作相反,是先弹出栈顶的数顶,然后再修改指针SP的内容.
3. 示例: POP AX
POP DS
POP DATA1 POP ALFA[BX][DI]
4. PUSH和POP指令对状态标志位没有影响.
4XCHG数据交换指令 XCHG
格式: XCHG OPRD1,OPRD2 其中的OPRD1为目的操作
数,OPRD2为源操作数
功能: 将两个操作数相互交换位置,该指令把源操
作数OPRD2与目的操数OPRD1交换.说明:
1. OPRD1及OPRD2可为通用寄存器或存储器,但是两个存储器之间是不能用XCHG指令实现的.
2. 段寄存器内容不能用XCHG指令来交换.
3. 若要实现两个存储器操作数DATA1及DATA2的交换,可用以下指令实现:
示例: PUSH DATA1
汇编指令大全零、状态寄存器
第1页
PUSH DATA2
POP DATA1
POP DATA2
4. 本指令不影响状态标志位.
5XLAT查表指令 XLAT
格式: XLAT TABLE其中TABLE为一待查表格的首地
址.
功能: 把待查表格的一个字节内容送到AL累加器
中.说明:
1. 在执行该指令前,应将TABLE 先送至BX寄存器中,然后将待查字节与在表格中距表首地址位移量送AL,即 (AL)<--((BX)+ (AL)).
2. 本指令不影响状态标位,表格长度不超过256字节.
6LAHF标志传送指令 LAHF
格式: LAHF
功能: 取FLAG标志寄存器低8位至AH寄存器.(AH)<-
-(FLAG)7~0说明: 该指令不影响FLAG的原来内容,AH只是复制了原FLAG的低8位内容.
7SAHF标志传送指令 SAHF
格式: SAHF
功能: 将AH存至FLAG低8位说明: 本指令将用AH的内容改写FLAG标志寄存器中的SF、ZF、AF、PF、和CF标志,从而改变原来的标志位.
8PUSHF标志传送指令 PUSHF
格式: PUSHF
功能: 本指令可以把标志寄存器的内容保存到堆栈
中去
9POPF标志传送指令 POPF
格式: POPF
功能: 本指令的功能与PUSHF相反,在子程序调用和
中断服务程序中,往往用PUSHF指令保护FLAG的内
容,用POPF指令将保护的FLAG内容恢复.说明: 如果对堆栈中的原FLAG内容进行修改,如对TF等标志位进行修改,然后再弹回标志位寄存器FLAG.这是通过指令修改TF标志的唯一方法.
10LEA有效地址传送指令 LEA
格式: LEA OPRD1,OPRD2
功能: 将源操作数给出的有效地址传送到指定的的
寄存器中.说明:
1. OPRD1 为目的操作数,可为任意一个16位的通用寄存器.
OPRD2 为源操作数,可为变量名、标号或地址表达式.
示例: LEA BX,DATA1
LEA DX,BETA[BX+SI]
LEA BX BX,[BP],[DI]
2. 本指令对标志位无影响。
11LDS从存储器取出32位地址的指令 LDS 格式: LDS OPRD1,OPRD2
功能: 从存储器取出32位地址的指令.说明:
OPRD1 为任意一个16位的寄存器.
OPRD2 为32位的存储器地址. 示例: LDS SI,ABCD
LDS BX,FAST[SI]
LDS DI,[BX]
注意: 上面LDS DI,[BX]指令的功能是把BX所指的32位地址指针的段地址送入DS,偏移地址送入
第2页
DI.
12LES从存储器取出32位地址的指令 LES 格式: LES OPRD1,OPRD2
功能: 从存储器取出32位地址的指令.说明:
OPRD1 为任意一个16位的寄存器.
OPRD2 为32位的存储器地址. 示例: LES SI,ABCD
LES BX,FAST[SI]
LES DI,[BX]
注意: 上面LES DI,[BX]指令的功能是把BX所指的32位地址指针的段地址送入ES,偏移地址送入DI.
13ADD加法指令 ADD(Addition)
格式: ADD OPRD1,OPRD2
功能: 两数相加说明:
1. OPRD1为任一通用寄存器或存储器操作数,可以是任意一个通用寄存器,而且还可以是任意一个存储器操作数.
OPRD2为立即数,也可以是任意一个通用寄存器操作数.立即数只能用于源操作数.
2. OPRD1和OPRD2均为寄存器是允许的,一个为寄存器而另一个为存储器也是允许的, 但不允许两个都是存储器操作数.
3. 加法指令运算的结果对CF、SF、OF、PF、ZF、AF都会有影响.以上标志也称为结果标志.加法指令适用于无符号数或有符号数的加法运算.
14ADC带进位加法指令 ADC(Addition Carry) 格式: ADC OPRD1,OPRD2
功能: OPRD1<--OPRD1 + OPRD2 + CF 说明:
1. OPRD1为任一通用寄存器或存储器操作数,可以是任意一个通用寄存器,而且还可以是任意一个存储器操作数.
OPRD2为立即数,也可以是任意一个通用寄存器操作数.立即数只能用于源操作数.
2. OPRD1和OPRD2均为寄存器是允许的,一个为寄存器而另一个为存储器也是允许的,但不允许两个都是存储器操作数.
3. 加法指令运算的结果对CF、SF、OF、PF、ZF、AF都会有影响.以上标志也称为结果标志.
4. 该指令对标志位的影响同ADD 指令.
15INC加1指令 INC(INCrement by 1) 格式: INC OPRD
功能: OPRD<--OPRD+1说明:
1. OPRD 为寄存器或存储器操作数.
2. 这条指令执行结果影响AF、OF、PF、SF、ZF标志位,但不影响CF标志位.
第3页
3. 示例:
INC SI;(SI)<--(SI)+1 INC WORD PTR[BX] INC BYTE PTR[BX+DI] INC CL;(CL)<--(CL)+1
注意: 上述第二,三两条指令,是对存储字及存储字节的内容加1以替代原来的内容.
16AAA
未组合的十进制加法调整指令 AAA(ASCII Adgust for Addition) 格式: AAA 功能: 对两个组合的十进制数相加运算(存在AL中)的结果进行调整,产生一个未组合的十进制数放在AX中.说明: 1. 组合的十进制数和未组合的十进制数:在计算中,十进制数可用四位二进制数编码,称为BCD 码. 当一个节(8位)中存放一位BCD
码,且放在字节的低4位, 高4位为时称为未组合的BCD码.
2. AAA的调整操作
若(AL) and 0FH>9 或 AF=1,则调整如下:
(AL)<--(AL)+6,(AH)<--(AH)+1,AF=1,CF<--AF,(AL)<--(AL) and 0FH
17DAA
组合的十进制加法调整指令 DAA(Decimal Adjust for Addition) 格式: DAA 功能: 对AL中的两个组合进制数相加的结果进行调整,调整结果仍放在AL中,进位标志放在CF中.说明: 1. 调整操作如下 (1) 若(AL) and 0FH>9 或 AF=1,则(AL)<--(AL)+6,AF<--1,对低四位的调整.
(2) 若(AL) and 0F0H>90H 或 CF=1,则(AL)<--(AL)+60H,CF<--1.
2. 示例: (AL)=18H,(BL)=06H ADD AL,BL ; (AL)<--(AL)+(BL) ; (AL)=1EH DAA ; (AL)
299SUB
减法指令SUB(SUBtract) 格式: SUB OPRD1,OPRD2 功能: 两个操作数的相减,即从OPRD1中减去OPRD2,其结果放在OPDR1中.说明: 示例 SUB DX,CX SUB [BX+25],AX SUB DI,ALFA[SI] SUB CL,20
SUB DATA1[DI][BX],20A5H
300SBB
带借位减去指令 SBB(SuBtraction with Borrow) 格式: SBB OPRD1,OPRD2 功能: 是进行两个操作数的相减再减去CF进位标志位,即从OPRD1<--OPRD1-OPRD2-CF,其结果放在OPDR 1中.说明: 示例 SBB DX,CX SBB AX,DATA1 SBB BX,2000H
SBB ALFA[BX+SI],SI SBB BETAP[DI,030AH 301DEC
减一指令 DEC(Decrement by 1) 格式: DEC OPRD 功能: OPRD<--OPRD-1说明: 1. OPRD 为寄存器或存储器操作数.
2. 这条指令执行结果影响AF、OF、PF、SF、ZF标志位,但不影响CF标志位.
第4页
3. 示例 DEC AX DEC CL
DEC WORD PTR[DI] DEC ALFA[DI+BX]
302NEG取补指令 NEG(NEGate)
格式: NEG OPRD
功能: 对操作数OPRD进行取补操作,然后将结果送
回OPRD.取补操作也叫作求补操作,就是求一个数的
相反数的补码.说明:
1. OPRD为任意通用寄存器或存储器操作数.
2. 示例: (AL)=44H,取补后, (AL)=0BCH(-44H).
3. 本指令影响标志位CF、OF、SF、PF、ZF及AF.
303CMP比效指令 CMP(CoMPare)
格式: CMP OPRD1,OPRD2
功能: 对两数进行相减,进行比较.说明:
1. OPRD1为任意通用寄存器或存储器操作数.
OPRD2为任意通用寄存器或存储器操作数,立即数也可用作源操作数OPRD2.
2. 对标志位的影响同SUB指令,完成的操作与SUB指令类似,唯一的区别是不将OPRD1-OPRD2的结果送回OPRD1,而只是比较.
3. 在8088/8086指令系统中,专门提供了一组根据带符号数比较大小后,实现条件转移的指令.
304AAS未组合十进制减法调整指令 AAS(ASCII Adjust for Subtraction)
格式: AAS
功能: 对两个未组合十进制数相减后存于AL中的结
果进行调整,调整后产生一个未组合的十进制数数
且仍存于AL中.说明:
1. 本指令影响标志位CF及AF.
2. 调整操作
若(AL) and 0FH > 9 或 AF=1
则(AL)<--(AL)-6,(AH)<--(AH)-1,CF<--AF,(AL)<--(AL) and 0 FH,
否则(AL)<--(AL) and 0FH
305DAS组合十进制减法调整指令 DAS(Decimal Adjust for Subtraction)
格式: DAS
功能: 对两个组合十进制数相减后存于AL中的结果
进行调整,调整后产生一个组合的十进制数且仍存
于AL中.说明:
调整操作
若(AL) and 0FH > 9 或 AF=1,则(AL)<--(AL)-6,AF=1
若(AL) and 0F0H > 90H 或 CF= 1,则(AL)<--(AL)-60,CF=1
306MUL无符号数乘法指令 MUL(MULtiply) 格式: MUL OPRD
功能: 乘法操作.说明:
1. OPRD为通用寄存器或存储器操作数.
2. OPRD为源操作数,即作乘数.目的操作数是隐含的,即被乘数总是指定为累加器AX或AL的内容.
3. 16位乘法时,AX中为被乘数.8位乘法时,AL为被乘数.当16位乘法时,32位的乘积存于DX及AX中;
第5页

2022-12-02 19:04 网站建设 59
如何玩响应式标志设计,快
Nice Box的网页模板都是响应式的,LOGO设计可以多看多学。
jquery layer怎么弹出指定的html内元素?
一个基本的弹出层应该满足以下需求:
1、点击按钮/链接触发弹出层,弹出层应该有半透明的遮罩层;
2、点击弹出层的关闭按钮、取消按钮或者遮罩层会关闭隐藏弹出层;
3、使用Esc键也可以关闭弹出层;
4、它是响应式的,并且兼容现代主流浏览器。
HTML
1、首先我们在页面放置一个用来触发弹出层的链接,也可以是个按钮button,注意的是我们给它设置一个data-show-layer属性,这个属性值对应的就是弹出层的id,也就是说通过data-show-layer来关联弹出层。
2、很显然,上面的链接关联的弹出层的id是hw-layer。那好,选择我们来准备弹出层hw-layer的html代码。
3、我们弹出层的最外层,也就是遮罩层.hw-overlay,我们会使用CSS控制它是一个半透明的层,用来隔开弹出层和页面主体内容。r然后在.hw-layer-wrap主体层内,我们可以设置弹出层的内容,当然内容由你来定,我们本文结合实例弹出层的内容是一个确认对话框,类似window的confirm()。内容使用了bootstrap的col-*栅格布局,还用了glyphicon字体图标。其实最关键的就是需要遮罩层和主体层,内容可以根据项目需求自定义,因为它可能是个表单、也可能是个纯文字说明的内容。
CSS
1、CSS也是关键的部分,我们先设置遮罩层,它默认情况下应该是不可见的,位置上fixed固定的,并且是覆盖整个页面的,它还是半透明的,我们这里设置了背景黑色、透明度0.3,如background-color:
rgba(0,0,0,0.3)。然后主体层.hw-layer-wrap,我们设置它的宽度,计算它的位置。宽度我们可以预设一个值,高度由于内容多少不确定,这里我们不用设置一个具体的值,在后面的js部分会对高度处理,然后设置居中以及边框阴影等效果。有关水平和垂直居中的设置可以参阅Helloweba文章:如何让DIV水平和垂直居中。弹出层里面的内容样式可以自由设置,最后就是使用media
query来设置小屏幕下的弹出层居中的问题。
2、我们使用jQuery来处理触发弹出层和关闭弹出层效果,应此需要预先加载jQuery库。showLayer(id)是一个自定义的函数,用来展示弹出层。当点击按钮或链接调用这个showLayer(id)函数,它会渐现的效果展示,并且计算弹出层的高度位移距离,使得弹出主体层水平和垂直方向的居中。而函数hideLayer()就是隐藏弹出层,fadeOut()或者hide()就能实现。最后再加上触发遮罩层的时候关闭弹出层以及使用Esc按钮的时候关闭弹出层的代码。
3、其实到这里,一个基本的弹出层效果已经做好了。我们这里只是做一个基本的弹出层,你也可以进行继续扩展代码。我们看过很多弹出层插件,很多都是动态直接操作DOM的,也就是通过js代码先createElement,然后在将内容append到body里的,这种方式如果是频繁操作DOM的话会消耗一定的性能,所以从性能角度考虑的话,我推荐使用本文提供的弹出层方式。
简述8088/8086标志寄存器中标志的作用,通过示例说明如何设置标志位的值以及设置标?
运算结果标志位
1、进位标志CF(Carry Flag)
进位标志CF主要用来反映运算是否产生进位或借位。如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0。
使用该标志位的情况有:多字(字节)数的加减运算,无符号数的大小比较运算,移位操作,字(字节)之间移位,专门改变CF值的指令等。
2、奇偶标志PF(Parity Flag)
奇偶标志PF用于反映运算结果中“1”的个数的奇偶性。如果“1”的个数为偶数,则PF的值为1,否则其值为0。
利用PF可进行奇偶校验检查,或产生奇偶校验位。在数据传送过程中,为了提供传送的可靠性,如果采用奇偶校验的方法,就可使用该标志位。
3、辅助进位标志AF(Auxiliary Carry Flag)
在发生下列情况时,辅助进位标志AF的值被置为1,否则其值为0:
(1)、在字操作时,发生低字节向高字节进位或借位时;
(2)、在字节操作时,发生低4位向高4位进位或借位时。
对以上6个运算结果标志位,在一般编程情况下,标志位CF、ZF、SF和OF的使用频率较高,而标志位PF和AF的使用频率较低。
4、零标志ZF(Zero Flag)
零标志ZF用来反映运算结果是否为0。如果运算结果为0,则其值为1,否则其值为0。在判断运算结果是否为0时,可使用此标志位。
5、符号标志SF(Sign Flag)
符号标志SF用来反映运算结果的符号位,它与运算结果的最高位相同。在微机系统中,有符号数采用补码表示法,所以,SF也就反映运算结果的正负号。运算结果为正数时,SF的值为0,否则其值为1。
6、溢出标志OF(Overflow Flag)
溢出标志OF用于反映有符号数加减运算所得结果是否溢出。如果运算结果超过当前运算位数所能表示的范围,则称为溢出,OF的值被置为1,否则,OF的值被清为0。
“溢出”和“进位”是两个不同含义的概念,不要混淆。如果不太清楚的话,请查阅《计算机组成原理》课程中的有关章节。
二、状态控制标志位
状态控制标志位是用来控制CPU操作的,它们要通过专门的指令才能使之发生改变。
1、追踪标志TF(Trap Flag)
当追踪标志TF被置为1时,CPU进入单步执行方式,即每执行一条指令,产生一个单步中断请求。这种方式主要用于程序的调试。
指令系统中没有专门的指令来改变标志位TF的值,但程序员可用其它办法来改变其值。
2、中断允许标志IF(Interrupt-enable Flag)
中断允许标志IF是用来决定CPU是否响应CPU外部的可屏蔽中断发出的中断请求。但不管该标志为何值,CPU都必须响应CPU外部的不可屏蔽中断所发出的中断请求,以及CPU内部产生的中断请求。具体规定如下:
(1)、当IF=1时,CPU可以响应CPU外部的可屏蔽中断发出的中断请求;
(2)、当IF=0时,CPU不响应CPU外部的可屏蔽中断发出的中断请求。
CPU的指令系统中也有专门的指令来改变标志位IF的值。
3、方向标志DF(Direction Flag)
方向标志DF用来决定在串操作指令执行时有关指针寄存器发生调整的方向。具体规定在第5.2.11节——字符串操作指令——中给出。在微机的指令系统中,还提供了专门的指令来改变标志位DF的值。
51单片机定时器0的中断响应过程?
8051单片机有5个中断源和两个中断优先级,高优先级的中断源可以中断低优先级的服务程序,反之不行。INT0>T0>INT1>T1>串口中断。 8051没有专门的开中断和关中断的指令,中断的开放和关闭是由特殊功能寄存器IE来实现两级控制的。有个总开关EA,然后又有ES,ET1,EX1,ET0,EX0五个开关。为1表示开,为0表示关。
单片机在复位后,IE各位的状态为0,所以CPU处于关中断的状态。对于串口来说,其中断请求被响应后,CPU不能自动清除中断标志。用指令来实现关中断。其他中断源的中断标志在CPU响应中断后自动清除。 中断优先级由IP来控制,PS,PT1,PX1,PT0,PX0,置为1表示高优先级。
当几个中断源同时向CPU请求中断时,按所发生的实时事件的轻重缓急排队,优先处理最紧急事件的中断请求,于是单片机规定每个中断源的优先级别。 当CPU正在处理一个中断请求,又发生另一个优先级比它高的中断请求,CPU暂时中止对前一中断处理,转而去处理优先级更高的中断请求,待处理完后,再继续执行原来的中断处理程序,这样的过程称为中断嵌套,这样的中断系统称为多级中断系统。
由于外界异步事件中断CPU正在执行的程序时随机的,CPU转向去执行中断服务程序时,除了硬件会自动把断电地址,即16位PC程序计数器的值压入堆栈之外,用户还得注意保护有关工作寄存器,累加器,标志位等信息,这个过程通常称为保护现场
。以便在完成中断服务程序后,恢复原工作寄存器,累加器,标志位等的内容,这个过程称恢复现场;最后执行中断返回指令,自动弹出断电到PC,返回主程序,继续执行被中断的程序。
0

我要回帖

更多关于 进借位标志CF怎么算 的文章

 

随机推荐