我在masm32中写了一个复制字符串程序
jQuery('#bottom-play-button-container').click(function (e) {
e.preventDefault();
jQuery(this).find('i').toggleClass('ion-ios-play').toggleClass('ion-pause');
jQuery('#play-pause-toggle').find('i').toggleClass('ion-ios-play').toggleClass('ion-pause');
jQuery('.media-circle').find('i').toggleClass('ion-ios-play');
jQuery('.feed-pause').toggle();
});
此代码给出了错误
AOF98 OFFSET的无效操作数
OFFSET运算符后面的表达式必须是内存表达式或立即表达式。 但我仍然不知道如何修复我的proc
答案 0 :(得分:1)
您收到这些错误是因为source
和dest
的内存地址在编译时是未知的。您需要将地址传递给proc。另外,如评论所示,您不能使用SIZEOF
并且应该检查空终止符或以另一种方式获取长度。
invoke coppystring,offset str1,offset str2 ; Push the offsets here
coppystring proc uses esi edi source:dword,dest:dword
; Generally only need to preserve esi, edi and ebx
mov esi, source
mov edi, dest
Lx:
mov al,[esi]
mov [edi],al
inc esi
inc edi
cmp byte ptr [esi],0 ; Check for null terminator
jne Lx ; loop if not null
ret
coppystring endp