
include irvine32.inc这是我看的书的作者的头文件,用到了他的函数:writedec(其要显示的数保存在EAX在中)和str_length(在EAX中返回字符串的长度)
str_contact proto,
source: ptr byte,
target: ptr byte
.data
t byte "ABCDE",10 DUP(?)
s byte "fgh",0
.code
main proc
invoke str_contact,addr s,addr t
mov edx,offset t
call writestring
ret
main endp
str_contact proc ,
source: ptr byte,
target: ptr byte
invoke str_length,target ;返回target的长度,并在eax中将其返回
mov esi,0
mov edi,eax
;invoke str_copy,source,addr [target+eax];这是我开始的想法,但没成功,不知行得通不?
invoke str_length,source
mov ecx,eax
L:
mov al,byte ptr source[esi]
mov byte ptr target[edi],al ;调试时发现这条语句不起作用啊,al写不进去啊
inc esi
inc edi
LOOP L
ret
str_contact endp
end main
str_contact proto,
source: ptr byte,
target: ptr byte
.data
t byte "ABCDE",10 DUP(?)
s byte "fgh",0
.code
main proc
invoke str_contact,addr s,addr t
mov edx,offset t
call writestring
ret
main endp
str_contact proc ,
source: ptr byte,
target: ptr byte
invoke str_length,target ;返回target的长度,并在eax中将其返回
mov esi,0
mov edi,eax
;invoke str_copy,source,addr [target+eax];这是我开始的想法,但没成功,不知行得通不?
invoke str_length,source
mov ecx,eax
L:
mov al,byte ptr source[esi]
mov byte ptr target[edi],al ;调试时发现这条语句不起作用啊,al写不进去啊
inc esi
inc edi
LOOP L
ret
str_contact endp
end main