常用的汇编指令

本文详细介绍了汇编语言中的一些基本指令,如MOV、ADD、SUB等,并探讨了NOT运算的限制。此外,还讲解了MOVS、STOS及REP指令的特殊用法,特别是它们在内存数据复制和字符串操作中的应用。同时,提到了标志寄存器EFL中的D位在内存复制过程中的作用。
摘要由CSDN通过智能技术生成

一、一般指令

MOV(内存存内容)、ADD(加运算)、SUB(减运算)、and(与运算)、OR(或运算)、XOR(异或运算)、NOT(非运算)

NOT运算要说明一下,后面只能跟内存或寄存器,不能跟立即数。

以上指令有一个要注意的点,就是不能内存到内存的运算。

二、特殊的指令

1.MOVS指令:移动数据 内存-内存

使用MOVS一般情况下就结合ESI和EDI一起使用,EDI、ESI可以有特别的用途,一般EDI、ESI内部存的是内存地址。主要用于内存中的值的复制。  

标志寄存器:EFL 00000246 每一个二进制位代表含义不同

例如:00000246 即 0000 0000 0000 0000 0000 0010 0100 0110 其中从右往左第十位为0,代表者EDI和ESI每复制完数值内存要正向进位,为1代表内存地址要逆向进位。

 也就是这个D。

2.STOS指令

 就是讲Al/AX/EAX的值存储到EDI指定内存中,复制过去后,内存地址也会跟着前进。

3.REP指令

根据计数寄存器(ECX)中指定的次数重复执行字符串指令(次数为16进制)

例如:MOV ECX, 10          REP MOVSD     就是执行MOVSD16次。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值