汇编语言中的DEC是啥意思?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇编语言中的DEC是啥意思?相关的知识,希望对你有一定的参考价值。

参考技术A

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;

例如:二、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等。

L EQU 0AH 和 T EQU 09H 在汇编中是啥意思?

【中文标题】L EQU 0AH 和 T EQU 09H 在汇编中是啥意思?【英文标题】:What does L EQU 0AH and T EQU 09H mean in assembly?L EQU 0AH 和 T EQU 09H 在汇编中是什么意思? 【发布时间】:2018-01-05 10:43:30 【问题描述】:

有人能解释一下每个表达式(L Equ 0AH 和 T equ 09h)在汇编中的含义吗?

【问题讨论】:

L 是 Line Feed (0ah) 的缩写,T 是 Tab 字符 (09h) 的缩写。 还有 EQU , 0AH 和 09H? 这就像在C中说#define L 0x0a#define T 0x09。然后,您可以使用 L 和 T 而不是实际值。您可以查看ASCII chart 以查看十六进制到字符的映射 谷歌搜索“tasm 指令文档”确实返回了一些带有官方文档的 PDF 文件(当你购买它时,它是 turbo 汇编程序包的 BTW 部分)。你可以在那里查看指令描述。 【参考方案1】:

他们将符号名称 LT 设置为等于文字值。实际上,无论L 出现在代码中的何处,它都会被汇编程序替换为0x0a。换句话说,这是定义静态的常量值,而不是为变量分配内存。

【讨论】:

以上是关于汇编语言中的DEC是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

汇编语言中的call是啥意思

c语言中的strcpy是啥意思?

汇编语言addne r4,r4,r1啥意思

汇编指令JMP是啥意思?

汇编指令JMP是啥意思?

汇编中INT 21H是啥意思?