06-23-2014
Masm32 code works but the example in GoAsm doesn't
hMemory dd 0
MemoryFileSize dd 0 ' bytes of a file in memory
PtrMem dd 0
MASM32 CODE
invoke GlobalAlloc, GPTR,MemoryFileSize
mov hMemory,eax
invoke GlobalLock, hMemory
mov PtrMem,eax
mov ecx,[PtrMem]
xor esi,esi ; clear memory block
.While esi < MemoryFileSize
mov dword ptr[ecx+esi], 020202020h ; 4 bytes at time
add esi, 4
.ENDW
GOASM CODE
; MemoryFileSize has been loaded with the number of bytes in a file
invoke GlobalAlloc, GPTR,[MemoryFileSize]
mov D[hMemory],eax
invoke GlobalLock, [hMemory]
mov D[PtrMem],eax
mov ecx,D[PtrMem]
xor esi,esi ; clear memory block
.n22
;changed from 4 bytes to 1 byte in GoAsm
cmp esi,D[MemoryFileSize]
jge >>.n24
mov B[ecx+esi],020h ; I suspect this one is causing the problem
inc esi
jmp <.n22
.n24
Thanks for any help.