首页
社区
课程
招聘
[旧帖] [求助]汇编字符串相加处理的问题 0.00雪花
发表于: 2010-12-9 00:11 1126

[旧帖] [求助]汇编字符串相加处理的问题 0.00雪花

2010-12-9 00:11
1126
	 include 'win32ax.inc'


	 .data

	      msg1         db     'ilove', 0
	      msg2         db     'you520', 0


	 .code

	      start:

	               我想把msg1和msg2合并起来,就像高级语言中的+号一样。
                             有哪些方法可以实现啊??不准用函数
                             具体有哪些方法,请高手指点。本人刚接触不久,希望直接上明码,最好带点注释。

	 .end start


下面是我用movsb指令实现的,感觉这种方式不好,想要更精简的。
	 include 'win32ax.inc'


	 .data

	      msg1         db     'ilove', 0
	      msg2         db     'you520', 0
	      string       db     ?


	 .code

	      start:

		    mov    esi, msg1
		    mov    edi, string
		    mov    ecx, 5
		    rep    movsb

		    mov    esi, msg2
		    mov    ecx, 6
		    rep    movsb

	            invoke MessageBox, 0, string, '', 0

		    invoke ExitProcess, 0

	 .end start

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 38
活跃值: (48)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
   
     mov    esi, msg1
        mov    edi, string
        mov    ecx, sizeof msg1 - 1   ;sizeof
        rep    movsb

        mov    esi, msg2
        mov    ecx, sizeof msg2        ;sizeof
        rep    movsb
如果你是想将两个串合并到一个新的缓冲区,这种做法已经很好了 我感觉
2010-12-9 01:00
0
雪    币: 3076
活跃值: (3634)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
汇编真是门高深的课程
2010-12-9 08:18
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
这样是不是更精简些呢
	 include 'win32ax.inc'


	 .data

	      msg1         db     'ilove', 0
	      msg2         db     'you520', 0


	 .code

	      start:

	            mov    esi, msg1
		    mov    edi, msg2

		    mov    eax, [edi]          ; 但是eax只能容下4字节,有没有办法啊
		    mov    [esi+5], eax

	            invoke MessageBox, 0, esi, '', 0

		    invoke ExitProcess, 0

	 .end start
2010-12-9 11:50
0
雪    币: 349
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
这个虽然不是在string里,但是想法不错!
2010-12-9 19:19
0
游客
登录 | 注册 方可回帖
返回
//