汇编语言标志位(CF)及一些常用指令
- 格式:doc
- 大小:32.50 KB
- 文档页数:7
常用汇编指令对标志位的影响1000字汇编语言中,标志位用来表示CPU运算过程中的一些状态。
不同的指令对标志位有不同的影响,下面列举一些常用汇编指令对标志位的影响:1. ADD指令:加法运算指令,将两个操作数相加,结果存储在目的操作数中。
如果结果为0,标志位ZF被设置为1,如果溢出,标志位OF被设置为1,如果结果是负数,标志位SF被设置为1。
2. SUB指令:减法运算指令,将两个操作数相减,结果存储在目的操作数中。
如果结果为0,标志位ZF被设置为1,如果溢出,标志位OF被设置为1,如果结果是负数,标志位SF被设置为1。
3. MOV指令:将源操作数的值赋值给目的操作数。
MOV指令不影响标志位。
4. CMP指令:比较两个操作数的大小关系。
如果源操作数小于目的操作数,则标志位CF被设置为1,如果相等,则标志位ZF被设置为1,如果源操作数大于目的操作数,则标志位SF被设置为1。
5. INC指令:将操作数加1。
如果结果为0,标志位ZF被设置为1,如果溢出,标志位OF被设置为1,如果结果是负数,标志位SF被设置为1。
6. DEC指令:将操作数减1。
如果结果为0,标志位ZF被设置为1,如果溢出,标志位OF被设置为1,如果结果是负数,标志位SF被设置为1。
7. AND指令:按位与操作。
如果结果为0,标志位ZF被设置为1,如果结果为负数,标志位SF被设置为1。
8. OR指令:按位或操作。
如果结果为0,标志位ZF被设置为1,如果结果为负数,标志位SF被设置为1。
9. XOR指令:按位异或操作。
如果结果为0,标志位ZF被设置为1,如果结果为负数,标志位SF被设置为1。
10. SHR指令:逻辑右移指令。
如果结果的最低位是1,标志位CF被设置为1,如果结果为0,标志位ZF被设置为1,如果结果为负数,标志位SF被设置为1。
11. SHL指令:逻辑左移指令。
如果溢出,标志位OF被设置为1,如果结果为0,标志位ZF被设置为1,如果结果为负数,标志位SF 被设置为1。
汇编语言常用指令汇总持续更新汇编语言常用指令汇总汇编语言是一种低级编程语言,用于与计算机硬件进行直接交互。
熟悉汇编语言的常用指令对于理解计算机底层原理和进行底层编程非常重要。
本文将对汇编语言常用指令进行汇总,并持续更新。
1. 数据传输指令:- MOV:用于将数据从一个位置复制到另一个位置。
- LXI:用于将双字节立即数加载到指定的寄存器对中。
- LDA:用于将累加器加载到内存地址中的数据。
- STA:用于将累加器中的数据存储到指定的内存地址中。
2. 算术运算指令:- ADD:用于将累加器的内容与给定的寄存器或内存位置中的数据相加。
- SUB:用于从累加器中减去给定的寄存器或内存位置中的数据。
- INR:用于将给定的寄存器或内存位置中的数据增加1。
- DCR:用于将给定的寄存器或内存位置中的数据减少1。
3. 逻辑运算指令:- AND:用于将累加器的内容与给定的寄存器或内存位置中的数据进行逻辑与操作。
- OR:用于将累加器的内容与给定的寄存器或内存位置中的数据进行逻辑或操作。
- XOR:用于将累加器的内容与给定的寄存器或内存位置中的数据进行逻辑异或操作。
- NOT:用于对累加器的内容进行逻辑非操作。
4. 控制指令:- JMP:用于无条件转移到指定的内存地址。
- JZ:在累加器为零时,转移到指定的内存地址。
- JC:在进位标志为1时,转移到指定的内存地址。
- CALL:用于调用子程序。
5. 栈操作指令:- PUSH:用于将给定的寄存器或数据压入栈中。
- POP:从栈中弹出数据并存储到给定的寄存器中。
6. 输入输出指令:- IN:从外部设备读取数据,并存储到累加器中。
- OUT:将累加器中的数据发送到外部设备。
以上仅是汇编语言中常用指令的一小部分,还有许多其他指令可用于执行更复杂的任务。
在实际的汇编语言程序中,这些指令通常会与标签、变量和宏指令一起使用。
总结:汇编语言常用指令汇总了数据传输、算术运算、逻辑运算、控制、栈操作和输入输出等方面的指令。
16位与32位汇编语言常用指令总结在计算机编程领域,汇编语言被广泛应用于底层程序设计,直接操作计算机硬件。
其中,16位和32位汇编语言是常见的两种类型。
本文将总结这两种汇编语言中常用的指令,帮助读者更好地理解和应用它们。
一、16位汇编语言常用指令1. 数据传送指令- MOV:将数据从一个寄存器或内存位置传送到另一个寄存器或内存位置。
- XCHG:交换两个寄存器或内存位置的数据。
2. 算术运算指令- ADD/SUB:实现加法和减法运算。
- MUL/IMUL:实现无符号与有符号乘法运算。
- DIV/IDIV:实现无符号与有符号除法运算。
3. 逻辑运算指令- AND/OR/XOR:实现与、或、异或逻辑运算。
- NOT:对操作数进行按位取反操作。
4. 条件转移指令- JMP:无条件跳转到指定地址。
- JZ/JNZ:根据零标志位(ZF)的值进行跳转。
- JC/JNC:根据进位标志位(CF)的值进行跳转。
5. 循环指令- LOOP:根据计数器的值进行循环。
- JCXZ/JECXZ:根据CX/ECX寄存器的值进行循环。
二、32位汇编语言常用指令1. 数据传送指令- MOV:同16位汇编语言中的指令,用于数据传送。
- PUSH/POP:将数据推入栈或从栈中弹出。
2. 算术运算指令- ADD/SUB:同16位汇编语言中的指令,用于加法和减法运算。
- MUL/IMUL:同16位汇编语言中的指令,用于乘法运算。
- DIV/IDIV:同16位汇编语言中的指令,用于除法运算。
3. 逻辑运算指令- AND/OR/XOR:同16位汇编语言中的指令,用于逻辑运算。
- NOT:同16位汇编语言中的指令,用于按位取反。
4. 条件转移指令- JMP:同16位汇编语言中的指令,用于无条件跳转。
- JZ/JNZ:同16位汇编语言中的指令,根据零标志位(ZF)进行跳转。
- JB/JNB:根据低位借位标志位(CF)进行跳转。
5. 循环指令- LOOP:同16位汇编语言中的指令,用于循环操作。
汇编语言中的英文缩写在汇编语言中,英文缩写是指将长词或短语用其首字母组合而成的缩写形式。
这些缩写在汇编语言中广泛使用,有助于简化代码编写和阅读的过程。
本文将介绍一些常用的汇编语言中的英文缩写。
1. 寄存器缩写在汇编语言中,寄存器是存储和处理数据的关键之一。
以下是一些常见寄存器的缩写:- 累加器(Accumulator):简写为 ACC- 数据寄存器(Data Register):简写为 DR- 源操作数寄存器(Source Operand Register):简写为 SOR- 目标操作数寄存器(Destination Operand Register):简写为 DOR - 程序计数器(Program Counter):简写为 PC2. 指令缩写汇编语言中的指令用于实现特定的操作,以下是一些常用指令的缩写:- 加法(Addition):简写为 ADD- 减法(Subtraction):简写为 SUB- 逻辑与(Logical AND):简写为 AND- 逻辑或(Logical OR):简写为 OR- 转移(Jump):简写为 JMP- 存储(Store):简写为 ST- 加载(Load):简写为 LD3. 程序标志缩写程序标志用于指示运行过程中的条件和结果,以下是一些常见的程序标志缩写:- 无进位标志(Carry Flag):简写为 CF- 零标志(Zero Flag):简写为 ZF- 溢出标志(Overflow Flag):简写为 OF- 符号标志(Sign Flag):简写为 SF4. 内存缩写在汇编语言中,对于内存地址或单元的引用也可以使用缩写形式,以下是一些例子:- 基地址寄存器(Base Address Register):简写为 BAR- 偏移量(Offset):简写为 OFF- 存储器(Memory):简写为 MEM5. 输入输出缩写在处理输入输出时,也存在一些常用的缩写形式:- 输入(Input):简写为 IN- 输出(Output):简写为 OUT- 打印(Print):简写为 PRNT- 读取(Read):简写为 RD在编写汇编代码或阅读他人的代码时,使用这些缩写能够提高代码的可读性和整洁度。
汇编常用命令总结汇编语言是一种底层的计算机语言,通过使用汇编命令对机器指令进行编写和控制。
在学习和使用汇编语言时,掌握常用的汇编命令非常重要。
以下是汇编常用命令的详细总结:1.MOV:将数据从一个位置复制到另一个位置。
例如,将数据从寄存器复制到内存或者将数据从内存复制到寄存器。
2.ADD:将两个数相加,并将结果保存在目标位置。
可以用于寄存器之间的相加或者将寄存器和内存中的数据相加。
3.SUB:从一个数中减去另一个数,并将结果保存在目标位置。
与ADD命令类似,可以用于寄存器之间或者寄存器和内存之间的相减。
4.CMP:比较两个数,一些条件下,设置标志位用于后续的条件分支。
例如,当两个数相等时,设置零标志位。
6.JE、JNE、JG、JL、JA等:基于条件进行转移。
例如,JE用于当ZF标志位被设置为1时,跳转到指定位置,即上一次比较的结果是相等的。
7.AND、OR、XOR:对两个数位进行逻辑运算,并将结果保存在目标位置。
AND用于逻辑与运算,OR用于逻辑或运算,XOR用于逻辑异或运算。
8.NOT:对一个数位取反。
9.PUSH:将数据压入栈顶。
用于将寄存器、内存中的数据或者立即数压入栈中。
10.POP:从栈顶弹出数据。
用于将栈中的数据弹出到寄存器或者内存中。
11.CALL:调用子程序或函数。
将当前的程序状态保存到栈上,并跳转到子程序的入口地址。
12.RET:从子程序中返回。
将存储在栈上的返回地址弹出,恢复程序的现场,并返回到调用者。
13.LOOP:循环指令。
根据计数寄存器的值,重复执行指定的循环代码。
14.MOVZX:将一个无符号字节或无符号字进行零扩展,转换为更大的数据类型。
15.MOVSX:将一个有符号字节或有符号字进行符号扩展,转换为更大的数据类型。
16.LEA:将一个偏移地址加载到寄存器中。
17.INC、DEC:递增或递减寄存器或内存中的值。
18.NOP:空操作。
用于占位或延时。
19.INT:软中断。
汇编语言标志位(CF)及一些常用指令英文翻译:carry 进位 flag标志NV: no overflow OV: overflowUP: up DN:downDI: disable interrupt EI: enable interruptPL: plus NG: negativeNZ: no zero ZR: zeroNA: no assistant carry AC: assistant carryPO: parity odd PE: parity even 奇偶校验NC: no carry CY: carry汇编标志位:标志名标志 1 标志 0 OF (溢出标志) OV NVDF (方向标志) UP DNIF (中断标志) DI EISF (符号标志位) PL NGZF (零标志) NZ ZRAF (辅助进位标志位) NA ACPF (奇偶标志) PO PECF (进位标志) NC CYOF 溢出(是/否) OV OVerflow NV Not oVerflowDF 方向(减量/增量) DN DowN UP UPIF 中断(允许/关闭) EI Enable Interrupt DI Disable Interrupt SF 符号(负/正) NG NeGative PL PLusZF 零(是/否) ZR ZeRo NZ Not ZeroAF 辅助进位(是/否) AC Auxiliary Carry NA Not AuxiliaryPF 奇偶(是/否) PE Parity Even PO Parity OddCF 进位(是/否) CY CarrY NC Not Carry英文解释:NV: no overflow OV: overflowUP: up DN:downDI: disable interrupt EI: enable interruptPL: plus NG: negativeNZ: no zero ZR: zeroNA: no assistant carry AC: assistant carryPO: parity odd PE: parity evenNC: no carry CY: carry先熟悉一下FLAGS标志位:OV、NV即溢出标志位OF=1或0,表示运算结果有无溢出。
汇编语言指令汇总汇编语言是一种底层编程语言,用于编写计算机程序。
在汇编语言中,指令是执行特定操作的基本单元。
以下是一些常见的汇编语言指令的汇总:1.数据传输指令:-MOV:将源操作数的值复制到目的操作数。
-PUSH:将数据压入栈中。
-POP:从栈中弹出数据。
-LEA:将源操作数的有效地址加载到目的操作数中。
2.算术和逻辑指令:-ADD:将两个操作数相加,结果存储在目的操作数中。
-SUB:将第二个操作数从第一个操作数中减去,结果存储在目的操作数中。
-MUL:将两个操作数相乘,结果存储在目的操作数中。
-DIV:将第一个操作数除以第二个操作数,商存储在目的操作数中。
3.分支和循环指令:-JMP:无条件跳转到指定的地址。
-CMP:比较两个操作数的值。
-JZ/JNZ:当比较结果为零/非零时,跳转到指定的地址。
-JE/JNE:当比较结果为相等/不相等时,跳转到指定的地址。
-JG/JGE/JL/JLE:当比较结果为大于/大于等于/小于/小于等于时,跳转到指定的地址。
-LOOP:循环指令,根据计数寄存器的值重复执行指定的代码块。
4.中断指令:-INT:引发中断,将程序控制权转移到中断服务程序。
-IRET:从中断服务程序返回到调用程序。
5.位操作指令:-AND/OR/XOR:按位与/或/异或操作。
-NOT:按位取反操作。
-SHL/SHR:逻辑左移/逻辑右移操作。
6.I/O指令:-IN:从输入端口读取数据。
-OUT:向输出端口写入数据。
7.标志位操作指令:-CLC:清除进位标志位。
-STC:设置进位标志位。
-CLI:禁用中断。
-STI:启用中断。
8.字符串指令:-MOVS:将一个字符串从源地址移动到目的地址。
-CMPS:比较两个字符串的内容。
-LODS:从源地址加载一个字符或一个字符串。
-STOS:存储一个字符或一个字符串到目的地址。
9.其他指令:-NOP:空操作指令。
-HLT:停止运行指令。
以上只是一些常见的汇编语言指令,汇编语言的指令集因计算机体系结构而异。
汇编语言标志位(CF)及一些常用指令英文翻译:carry 进位 flag标志NV: no overflow OV: overflowUP: up DN:downDI: disable interrupt EI: enable interruptPL: plus NG: negativeNZ: no zero ZR: zeroNA: no assistant carry AC: assistant carryPO: parity odd PE: parity even 奇偶校验NC: no carry CY: carry汇编标志位:标志名标志 1 标志 0 OF (溢出标志) OV NVDF (方向标志) UP DNIF (中断标志) DI EISF (符号标志位) PL NGZF (零标志) NZ ZRAF (辅助进位标志位) NA ACPF (奇偶标志) PO PECF (进位标志) NC CYOF 溢出(是/否) OV OVerflow NV Not oVerflowDF 方向(减量/增量) DN DowN UP UPIF 中断(允许/关闭) EI Enable Interrupt DI Disable InterruptSF 符号(负/正) NG NeGative PL PLusZF 零(是/否) ZR ZeRo NZ Not ZeroAF 辅助进位(是/否) AC Auxiliary Carry NA Not AuxiliaryPF 奇偶(是/否) PE Parity Even PO Parity OddCF 进位(是/否) CY CarrY NC Not Carry英文解释:NV: no overflow OV: overflowUP: up DN:downDI: disable interrupt EI: enable interruptPL: plus NG: negativeNZ: no zero ZR: zeroNA: no assistant carry AC: assistant carryPO: parity odd PE: parity evenNC: no carry CY: carry先熟悉一下FLAGS标志位:OV、NV即溢出标志位OF=1或0,表示运算结果有无溢出。
当算术运算的结果超出了带符号数的范围(8位带符号数的范围是-128——+127,16位的是-32728——+32767)。
DN、UP即方向标志位DF=1或0,表示串操作时按地址减或加的方式进行。
EI、DI即中断标志位IF=1或0,表示CPU可否响应可屏蔽中断请求。
IF的状态对不可屏蔽中断及内部中断没有影响。
NG、PL即符号标志位SF=1或0,表示运算结果是负(最高位为1)或正(最高位为0)。
ZR、NZ即零标志位ZF=1或0,表示运算结果是0或非0。
AC、NA即辅助进位标志位AF=1或0,在8位加减法操作中表示低4位向高4位有无进借位。
PE、PO即奇偶标志位PF=1或0,表示逻辑运算结果中1的个数是否为偶数。
CY、NC即进位标志位CF=1或0,表示加减法操作中最高位有无进借位。
8086寄存器通用寄存器AH&AL=AX(accumulator):累加寄存器,常用于运算;在乘除等指令中指定用来存放操作数,另外,所有的I/O指令都使用这一寄存器与外界传送数据。
BH&BL=BX(base):基址寄存器,常用于地址索引。
CH&CL=CX:计数寄存器,常用于计数;常用于保存计算值,如在移位指令,循环(loop)和串处理指令中用作隐含的计数器。
DH&DL=DX:数据寄存器,常用于数据传递。
段寄存器CS(Code Segment):代码段寄存器DS(Data Segment):数据段寄存器SS(Stack Segment):堆栈段寄存器ES(Extra Segment):附加段寄存器指针寄存器和变址寄存器SP(Stack Pointer):堆栈指针,与SS配合使用,可指向目前的堆栈位置。
BP(Base Pointer):基址指针寄存器,可用作SS的一个相对基址位置。
SI(Source Index):源变址寄存器,可用来存放相对于DS段之源变址指针。
DI(Destination Index):目的变址寄存器,可用来存放相对于ES段之目的变址指针。
IP(Instruction Pointer):指令指针PSW(Program Status Word):程序状态寄存器ZF(Zero Flag):零标志位,用来反映运算结果是否为0。
如果运算结果为0,则其值为1,否则其值为0。
PF(Parity Flag):奇偶标志位,用来反映运算结果中“1”的个数的奇偶性,如果“1”的个数为偶数,则PF的值为1,否则其值为0。
SF(Sign Flag):符号标志位,用来反映运算结果的符号位,它与运算结果的最高位相同。
CF(Carry Flag):进位标志位,用来反映运算结果是否产生进位或借位,如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则为0。
OF(Overflow Flag):溢出标志位,用来反映有符号数加减运算所得结果是否溢出。
如果运算结果超出当前运算位数所能表示的范围,则称为溢出,OF的值被置为1,否则,OF的值被清为0。
DF(Direction Flag):方向标志位,用来决定在串操作指令执行时有关指针寄存器发生调整的方向。
IF(Interrupt Flag):中断标志位,IF=1处理可屏蔽中断,IF=0不出来可屏蔽中断。
TF(Trace Flag):跟踪标志位,该标志可用于程序调试,没有专门的指令来设置或清除。
AF(Auxiliary carry Flag):辅助进位标志位,在字操作时,发生低字节向高字节进位或借位时;在字节操作时,发生低4位向高4位进位或借位时。
相关指令abc(c-carry):带进位加法指令。
它利用了CF位上记录的进位值。
sbb(b-borrow):带借位减法指令。
它利用了CF位上记录的借位值。
cmp(compare):比较指令。
它的功能相当于减法指令,只是不保存结果。
je(e-equal):ZF=1则转移jne(ne-not equal):ZF=0则转移jb(b-below):CF=0则转移jnb(nb-not below):CF=0则转移ja(a-above):CF=0且ZF=0则转移jna(na-not above):CF=1或ZF=1则转移movesb(b-byte):传送一个字节movesw(w-word):传送一个字rep movesb(rep-repeat):循环执行字节串传送指令rep movesw(rep-repeat):循环执行字串传送指令cld(clear DF):将DF置0std(set DF):将DF置1pushf(push flag):将标志寄存器的值压栈popf(pop flag):从栈中弹出数据送入标志寄存器Debug中标志位的表示:标志位值为1 值为0OF(Overflow Flag) OV(overflow) NV(no overflow)SF(Sign Flag) NG(negative) PL(plus)ZF(Zero Flag) ZR(zero) NZ(no zero)PF(Parity Flag) PE(parity even) PO(parity odd)CF(Carry Flag) CY(carry) NC(no carry)DF(Direction Flag) DN(down) UP(up)AF(Auxiliary carry Flag) AC(assistant carry) NA(no assistant carry)IF(Interrupt Flag) EI(enable interrupt) DI(disable interrupt)TF(Trace Flag)AX BX CX DX是CPU内部的通用寄存器中的数据寄存器,数据寄存器一般用于存放参与运算的数据或运算的结果,每一个数据寄存器都是16位的(即16个二进制位),但又可以将高,低8位分别作为两个独立的8位寄存器使用.它们的高8位记作AH,BH,CH,DH,低8位记作AL,BL,CL,DL.这种灵活的使用方法给编程带来极大的方便,既可以处理16位数据,也能处理8位数据.数据寄存器除了作为通用寄存器使用外,它们还有各自的习惯用法AX 称为累加器,常用于存放算术逻辑运算中的操作数,另外所有的I/O指令都使用累加器与外设接口传送信息BX 称为基址寄存器,常用来存放访问内在时的基地址,CX 称为计数寄存器,在循环和串操作指令中用作计数器DX 称为数据寄存器,在寄存器间接寻址中的I/O指令中存放I/O端口的地址另外,在做双字长乘除法运算时,DX 与AX合起来存放一个双字长数(32位),其中DX存放高16位,AX存放低16位.AH&AL=AX(accumulator):累加寄存器BH&BL=BX(base):基址寄存器CH&CL=CX(count):计数寄存器DH&DL=DX(data):数据寄存器SP(Stack Pointer):堆栈指针寄存器BP(Base Pointer):基址指针寄存器SI(Source Index):源变址寄存器DI(Destination Index):目的变址寄存器IP(Instruction Pointer):指令指针寄存器CS(Code Segment)代码段寄存器DS(Data Segment):数据段寄存器SS(Stack Segment):堆栈段寄存器ES(Extra Segment):附加段寄存器OF overflow flag 溢出标志操作数超出机器能表示的范围表示溢出,溢出时为1.SF sign Flag 符号标志记录运算结果的符号,结果负时为1.ZF zero flag 零标志运算结果等于0时为1,否则为0.CF carry flag 进位标志最高有效位产生进位时为1,否则为0.AF auxiliary carry flag 辅助进位标志运算时,第3位向第4位产生进位时为1,否则为0. PF parity flag 奇偶标志运算结果操作数位为1的个数为偶数个时为1,否则为0.DF direcion flag 方向标志用于串处理.DF=1时,每次操作后使SI和DI减小.DF=0时则增大.IF interrupt flag 中断标志 IF=1时,允许CPU响应可屏蔽中断,否则关闭中断.TF trap flag 陷阱标志用于调试单步操作.寻址方式:立即寻址 MOV AX , 常数直接寻址 MOV AX , [常数] ;加上中括号或 MOV AX , 变量名或标号寄存器寻址 MOV AX , 通用寄存器寄存器间接寻址 MOV AX , [(BX,BP,SI,DI)中的一个] ;以下四行均需加上中括号寄存器相对寻址 MOV AX , [(BX,BP,SI,DI)中的一个 + 偏移量]基址变址寻址 MOV AX , [基址寄存器 + 变址寄存器]相对基址变址寻址 MOV AX , [基址寄存器 + 变址寄存器 + 偏移量]XCHG OPRD1, OPRD2 交换指令地址传送指令LEA REG, OPRD 地址传送指令LDS REG, OPRD (load pointer into DS)LES REG, OPRD (Load pointer into ES )堆栈指令进栈指令 SP-2PUSH SRC出栈指令 SP+2POP DST标志操作指令(1)标志传送指令LAHF (Load AH with Flags)把标志位寄存器的低8位传送到寄存器AH的指定位SAHF (Store AH into Flags) 与LAHF相反 (SF ZF AF PF CF)CLC (Clear Carry flag) 清进位标志CLD 清方向标志STD 置方向标志CLI 清中断允许STI 置中断ADC 带进位的加法指令(Add and carry)inc oprd 加一指令(IN Crement)SUB 减法指令(SUBtraction)SBB 带借位的减法 (SuBtract with Borrow)DEC 减一指令(DECrement)Offset 偏移值test 测试移位指令AX:AccumulatorBX:BaseCX:CoutDX:DateSI:Source IndexDI:Destination IndexBP:Base PointerSP:Stack PointerCF:Carry FlagZF:Zero FlagSF:Sign FlagOF:Overflow FlagPF:Parity FlagAF:Auxiliary FlagTF:Trap FlagIF:Interrupt FlagAF:Auxiliary FlagCS:Code SegmentDS:Data SegmentES:Extra SegmentSS:Stack Segment段寄存器:CS DS SS ES(注:可编辑下载,若有不当之处,请指正,谢谢!)。