汇编的字符串操作指令

一般有专门的字符操作指令,如:
lodsb
stosb
movsb
rep/repz/repnz
cmpsb
scasb等等,
这些指令其实速度很慢,好的方法是用寄存器间接寻址,如:
lodsb mov al,byte ptr [esi]
inc esi
stosb mov byte ptr [edi],al
inc edi
等等,千万不要在程序中使用rep movsb,这样做速度很慢的。
例:一个字符串复制函数
lstrcpyn proc uses esi edi ecx,src,des,ilen
mov ecx,ilen ;要复制的长度
mov esi,src
mov edi,des
@@:
mov al,byte ptr [esi]
inc esi
mov byte ptr [edi],al
cmp al,0 ;终止符
jz @F
loopnz @B
@@:
ret
lstrcpyn endp

时间: 2024-10-31 17:57:50

汇编的字符串操作指令的相关文章

机器码-nasm汇编全局字符串变量的声明问题

问题描述 nasm汇编全局字符串变量的声明问题 功能:提示MessageBox消息 1: bits 32 call func0 db 'user32.dll',0 func0: mov eax,7c801d7bH ;LOADLIBRARYA CALL eax push 0 call Func1 db "Infomation",0 Func1: call Func1_1 Func1_1: call Func2 db "This exe was Injected Code.&qu

Java 程序优化:字符串操作、基本运算方法等优化策略

字符串操作优化 字符串对象 字符串对象或者其等价对象 (如 char 数组),在内存中总是占据最大的空间块,因此如何高效地处理字符串,是提高系统整体性能的关键. String 对象可以认为是 char 数组的延伸和进一步封装,它主要由 3 部分组成:char 数组.偏移量和 String 的长度.char 数组表示 String 的内容,它是 String 对象所表示字符串的超集.String 的真实内容还需要由偏移量和长度在这个 char 数组中进行定位和截取. String 有 3 个基本特

shell中字符串操作【转】

转自:http://blog.chinaunix.net/uid-29091195-id-3974751.html 我们所遇到的编程语言中(汇编除外)都少不了字符串处理函数吧,当然shell编程也不例外咯,那么下面我们一起来看下shell中字符串处理的相关操作吧.大概下面的字符串操作可以分为两种类型,一种属于变量替换,另一种属于继承unix expr命令吧!   1.测试字符串长度 ${#string} expr length $string expr "$string" : '.*'

mysql之字符串操作

写在前面 上篇文章学习了mysql常用的日期操作的函数,这篇文章将学习mysql的字符串操作的函数. 系列文章 mysql之创建数据库,创建数据表 mysql之select,insert,delete,update mysql之group by,order by mysql之count,max,min,sum,avg,celing,floor mysql之日期函数 mysql实战 1.ASCII(str) select ascii('a'); select ascii('ab'); select

小胖学PHP总结4-----PHP的字符串操作

1.字符串连接 字符串是通过半角句号"."来连接的,可以把两个或两个以上的字符串连接成一个字符串. 2.去除字符串首尾空格和特殊字符 PHP中提供了trim()函数去除字符串左右两边的空格和特殊字符,ltrim()函数去除字符串左边的空格和特殊字符,rtrim()函数是去除字符串右边的空格和特殊字符. 以上是小编为您精心准备的的内容,在的博客.问答.公众号.人物.课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索字符串 , 函数 , 字符 , 空格 , 特殊 , PHP去除空

&#106avascript中的字符串操作

字符串 一.概述    字符串在javascript中几乎无处不在,在你处理用户的输入数据的时候,在读取或设置DOM对象的属性时,在操作cookie时,当然还有更多....JavaScript的核心部分提供了一组属性和方法用于通用的字符串操作,如分割字符串,改变字符串的大小写,操作子字符串等.    当前的大部分浏览器也能从强大的正则表达式获益,因为它极大地简化了大量的字符串操作任务,不过它也需要你克服一条有些陡峭的学习曲线.在这里,主要是介绍字符串本身的一些操作,正则表达式会在以后的随笔中涉及

JavaScript中的字符串操作

javascript|字符串 一.概述    字符串在JavaScript中几乎无处不在,在你处理用户的输入数据的时候,在读取或设置DOM对象的属性时,在操作cookie时,当然还有更多....JavaScript的核心部分提供了一组属性和方法用于通用的字符串操作,如分割字符串,改变字符串的大小写,操作子字符串等.    当前的大部分浏览器也能从强大的正则表达式获益,因为它极大地简化了大量的字符串操作任务,不过它也需要你克服一条有些陡峭的学习曲线.在这里,主要是介绍字符串本身的一些操作,正则表达

字符串操作函数

函数|字符串 PHP3.0中的字符串操作功能是比较多的,重要的有以下这些: (1)echo,print,printf,sprintf 用于输出字符串.字符串中如果有变量名则被替换成其值. 后两个函数类似于C的同名函数. (2)strchr, strlen, strtok, strrchr, strrev, strstr, strtolower, strtoupper, substr, ucfirst 用的字符串操作函数,有些和C中的同名函数意义完全一致. strrev是把一个字符串翻转. str

PHP开发中常用的字符串操作函数

1,拼接字符串 拼接字符串是最常用到的字符串操作之一,在PHP中支持三种方式对字符串进行拼接操作,分别是圆点.分隔符{}操作,还有圆点等号.=来进行操作,圆点等号可以把一个比较长的字符串分解为几行进行定义,这样做是比较有好处的. 2,替换字符串 在PHP这门语言中,提供了一个名字叫做substr_replace()的函数,该函数的作用可以快速的完成扫描和编辑文本内容较多的字符串替换功能.他的语法格式: mixed substr_replace(mixed $string,string $repl