32汇编语言(masm32环境)编写程序 两个字符串连接
我写了一个程序,是连接两个字符串。首先程序提示用户输入两个字符串,然后连接两个字符串,要求显示原始字符串和连接后的字符串。.386.MODELFLAT,stdcallIN...
我写了一个程序,是连接两个字符串。首先程序提示用户输入两个字符串,然后连接两个字符串,要求显示原始字符串和连接后的字符串。
.386
.MODEL FLAT,stdcall
INCLUDE \masm32\include\io32.inc
.STACK 4096
.DATA
prompt1 BYTE "Please input the first string: ", 0
prompt2 BYTE "Please input the second string: ", 0
string1 DWORD 10 DUP (0)
string2 DWORD 10 DUP (0)
string3 BYTE ".",0
string DWORD 20 DUP (0)
origin BYTE "The original two strings are: ",0dh,0ah, 0
result BYTE "The result of connection is: ",0dh,0ah,0
.CODE
start: WriteString prompt1 ; 提示输入信息
Writecrlf
ReadString string1 ; 输入第一个原始字符串
WriteString prompt2 ; 提示输入信息
Writecrlf
ReadString string2 ; 输入第二个原始字符串
lea esi,string1 ;取第一个字符串的偏移地址给esi
lea edi,string2 ;取第二个字符串的偏移地址给edi
lea ebx,string ;取合并后新串的偏移地址给ebx
next1:mov eax,[esi]
mov [ebx],eax ;把第一个字符串的字符逐个传送到新串string中
inc esi
inc ebx ;指针增加1
loop next1
next2:mov eax,[edi]
mov [ebx],eax ;再把第二个字符串的字符逐个传送到新串string中
inc edi
inc ebx ;指针增加1
loop next2
WriteString origin
WriteString string1 ;输出原来的第一个字符串
Writecrlf
WriteString string2 ;输出原来的第二个字符串
Writecrlf
WriteString result
WriteString string ;输出用合并后的新的字符串
ret
end start
可是当输入了2个字符串以后不能正常运行了。请高手帮忙看看,程序应该怎么改?(一定是在masm32编程环境下) 展开
.386
.MODEL FLAT,stdcall
INCLUDE \masm32\include\io32.inc
.STACK 4096
.DATA
prompt1 BYTE "Please input the first string: ", 0
prompt2 BYTE "Please input the second string: ", 0
string1 DWORD 10 DUP (0)
string2 DWORD 10 DUP (0)
string3 BYTE ".",0
string DWORD 20 DUP (0)
origin BYTE "The original two strings are: ",0dh,0ah, 0
result BYTE "The result of connection is: ",0dh,0ah,0
.CODE
start: WriteString prompt1 ; 提示输入信息
Writecrlf
ReadString string1 ; 输入第一个原始字符串
WriteString prompt2 ; 提示输入信息
Writecrlf
ReadString string2 ; 输入第二个原始字符串
lea esi,string1 ;取第一个字符串的偏移地址给esi
lea edi,string2 ;取第二个字符串的偏移地址给edi
lea ebx,string ;取合并后新串的偏移地址给ebx
next1:mov eax,[esi]
mov [ebx],eax ;把第一个字符串的字符逐个传送到新串string中
inc esi
inc ebx ;指针增加1
loop next1
next2:mov eax,[edi]
mov [ebx],eax ;再把第二个字符串的字符逐个传送到新串string中
inc edi
inc ebx ;指针增加1
loop next2
WriteString origin
WriteString string1 ;输出原来的第一个字符串
Writecrlf
WriteString string2 ;输出原来的第二个字符串
Writecrlf
WriteString result
WriteString string ;输出用合并后的新的字符串
ret
end start
可是当输入了2个字符串以后不能正常运行了。请高手帮忙看看,程序应该怎么改?(一定是在masm32编程环境下) 展开
3个回答
展开全部
那章我看过,就是有些难得理解 ,理解了在操作就不难,那些东西了解就行, 现在一般不直接用API绘图, 知道个原理就差不多
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那章我看过,就是有些难得理解 ,理解了在操作就不难,那些东西了解就行, 现在一般不直接用API绘图, 知道个原理就差不多
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询