DEC( DECrement ) 减1指令
创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站建设、做网站、平鲁网络推广、小程序定制开发、平鲁网络营销、平鲁企业策划、平鲁品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供平鲁建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com
格式:DEC OPR //Byte/Word
执行操作:(OPR)-(OPR-1) //除CF标志位,其余标志位都受影响。
指令使操作数的内容减1,然后再送回该操作数。该操作数可以是寄存器操作数、存储器操作数。
例如:一、dec自减函数
1.dec(i,n);//i,n:integer;n为自减量
相当于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等。
参考资料:
百度百科——汇编
百度百科——汇编语言(面向机器的程序设计语言)
那个函数好,在不考虑空间复杂度的情况下,必然是时间越短越好。
经过我的测试,你的函数erjinzhi用时7.900000000000002e-06,并且得到了错误的结果。你所谓的官方的函数Dec2bin用时2.4700000000000004e-05,得到了正确的结果。我使用Python内置函数bin(10)用时1.67e-05,得到了正确结果。
你的函数没有正确结果,必然是最差的。相对用时,Python内置函数是更好的。
DEC( DECrement ) 减1指令
格式:DEC OPR //Byte/Word
执行操作:(OPR)-(OPR-1) //除CF标志位,其余标志位都受影响。
该指令将操作数的内容减1并返回操作数。操作数可以是寄存器操作数或存储器操作数。
例如:一、dec自减函数
1.dec(i,n);//i,n:integer;n为自减量
相当于i:=i-n;
2.dec(i);//i:integer;
相当于i:=i-1。
扩展资料:
汇编语言的大部分语句直接对应着机器指令,执行速度快,效率高,代码体积小,在那些存储器容量有限,但需要快速和实时响应的场合比较有用,比如仪器仪表和工业控制设备中。
在系统程序的核心部分,以及与系统硬件频繁打交道的部分,可以使用汇编语言。比如操作系统的核心程序段、I/O接口电路的初始化程序、外部设备的低层驱动程序,以及频繁调用的子程序、动态连接库、某些高级绘图程序、视频游戏程序等等。
参考资料来源:百度百科-汇编语言
#!/usr/bin/python# -*- coding:utf-8 -*-# @Time : 2018/6/19 10:20# @Author : # @File : Dec_To_Bin.py"""十进制转二进制""" # 定义一个十进制转二进制的函数def dec2bin(string_num): num = int(string_num) # 将传入的字符串数字转换成整型 mid = [] # 定义一个空列表 while True: # 循环,条件为真时执行 if num == 0: # 当输入值是0时,直接跳出循环 break num, rem = divmod(num, 2) # 调用函数divmod,得到商num,和余数rem mid.append(rem) # 将余数存入列表 return ''.join([str(x) for x in mid[::-1]]) # 返回结果,列表取反后拼接成字符串 if __name__ == '__main__': anum = raw_input(u'请输入要转换的数字:') print u'该数字转换为二进制后是:{}'.format(dec2bin(anum))