DEC( DECrement ) 减1指令
格式:DEC OPR //Byte/Word
执行 *** 作:(OPR)<-(OPR-1) //除CF标志位,其余标志位都受影响。
指令使 *** 作数的内容减1,然后再送回该 *** 作数。该 *** 作数可以是寄存器 *** 作数、存储器 *** 作数。
例如:一、dec自减函数
1.dec(i,n);//i,n:integern为自减量
相当于i:=i-n;
2.dec(i);//i:integer
相当于态汪i:=i-1
例如:二、Dec是递减函数
i:=100
dec(i)
i就变成99了,
如果是dec(i,30)的话,
那么i=100-30=70
扩展资料:
数据传送指令
这部分指令包括通用数据传送指令MOV、条件传送指令CMOVcc、堆栈 *** 作指令
PUSH/PUSHA/PUSHAD/POP/POPA/POPAD、交换指令XCHG/XLAT/BSWAP、地址或段描述符选择子传送指令LEA/LDS/LES/LFS/LGS/LSS等。
注意,CMOVcc不是一条具体的指令,而是一个指令簇,包括大量的指令,用于根据EFLAGS寄存器的某些位状态来决定是否执行指定的传送 *** 作。
整数和逻辑运算指令
这部分指令用于执行算术和逻辑运算,包括加法指令ADD/ADC、减法指令SUB/SBB、加一指令INC、减一指令DEC、比较 *** 作指令CMP、乘法指令MUL/IMUL、
除法指令DIV/IDIV、符号扩展指令CBW/CWDE/CDQE、十进制调整指令DAA/DAS/AAA/AAS、逻辑运算指令NOT/AND/OR/XOR/TEST等。
移位指令
这部分指令用于将寄存器或内存 *** 作数移动指定的次数。包括逻辑左移指令SHL、逻辑右移指令SHR、算术左移指令SAL、算术右移指令SAR、循环左移指令ROL、循环右移指令ROR等。
位 *** 作指令
这部分指令包括位测试指令BT、位测试并置位指令BTS、位测试并复位指令BTR、位测试并取反指令BTC、位向前扫描指令BSF、位向后扫描指令BSR等。
条件设置指令
这不是一条具体的指令,而是一个指令簇,包括大约30条指令,用于根据EFLAGS寄存器的某些位状态来设置一个8位的寄存器或者内存 *** 作数。比如SETE/SETNE/SETGE等等。
控制转移指令
这部分包括无条件转移指令JMP、条件转移指令Jcc/JCXZ、循环指令LOOP/LOOPE/LOOPNE、过程调用指令CALL、子过程返回指令RET、中断指令INTn、INT3、INTO、IRET等。
注意,Jcc是一个指令簇,包含了很多指令,用于根据EFLAGS寄存器的某些位状态来决定是否转移;INT n是软中断指令,n可以是0到255之间的数,用于指示中断向量号。
串 *** 作指令
这部分指令用于对数据串进行 *** 作,包括串传送指令MOVS、串比较指令CMPS、串扫描指令SCANS、串加载指令LODS、串保存指令STOS,这些指令可以有选择地使用REP/REPE/REPZ/REPNE和REPNZ的前缀以连续 *** 作。
输入输出指令
这部分指令用于同外围设备交换数据,包括端口输入指令IN/INS、端口输出指令OUT/OUTS。
高级和巧语言辅助指令
这部分指令为高级语言的编译器提供方便,包括创建栈帧的指令ENTER和释放栈帧的指令LEAVE。
控制和特权指令
这部分包括无 *** 作指令NOP、停机指令HLT、等待指令WAIT/MWAIT、换码指令ESC、总线封锁指令LOCK、内存范围检查指令BOUND、全局描唤闭键述符表 *** 作指令LGDT/SGDT、中断描述符表 *** 作指令LIDT/SIDT、局部描述符表 *** 作指令LLDT/SLDT、
描述符段界限值加载指令LSR、描述符访问权读取指令LAR、任务寄存器 *** 作指令LTR/STR、请求特权级调整指令ARPL、任务切换标志清零指令CLTS、控制寄存器和调试寄存器数据传送指令MOV、
高速缓存控制指令INVD/WBINVD/INVLPG、型号相关寄存器读取和写入指令RDMSR/WRMSR、处理器信息获取指令CPUID、时间戳读取指令RDTSC等。
浮点和多媒体指令
这部分指令用于加速浮点数据的运算,以及用于加速多媒体数据处理的单指令多数据(SIMD及其扩展SSEx)指令。这部分指令数据非常庞大,无法一一列举,请自行参考INTEL手册。
虚拟机扩展指令
这部分指令包括INVEPT/INVVPID/VMCALL/VMCLEAR/VMLAUNCH/VMRESUME/VMPTRLD/VMPTRST/VMREAD/VMWRITE/VMXOFF/VMON等。
参考资料:
百度百科——汇编
百度百科——汇编语言(面向机器的程序设计语言)
DEC( DECrement ) 减1指令
格式:DEC OPR //Byte/Word
执行 *** 作:(OPR)<-(OPR-1) //除CF标志位,其余标志位都受影响。
该指令将 *** 作数的内容减1并返回 *** 作数。 *** 作数可以滑茄是寄存器 *** 作数或存储器 *** 作数。
例如:一、dec自减函数
1.dec(i,n);//i,n:integern为自减量
相当于i:=i-n;
2.dec(i);//i:integer
相当于i:=i-1。
扩展资料:
汇编语言的大部分语句直接对应着机器指令,执行速度快,效率高,代码体积小,在那些存储器容量有限,但需要快速和橘让迟实时响应的场合比较圆李有用,比如仪器仪表和工业控制设备中。
在系统程序的核心部分,以及与系统硬件频繁打交道的部分,可以使用汇编语言。比如 *** 作系统的核心程序段、I/O接口电路的初始化程序、外部设备的低层驱动程序,以及频繁调用的子程序、动态连接库、某些高级绘图程序、视频游戏程序等等。
参考资料来源:百度百科-汇编语言
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)