내 MASM 코드와 관련하여 도움이 필요합니다. 배열에 동적 할당을 사용하면 배열에 몇 가지 요소를 추가 한 후에 다른 변수가 값을 변경합니다.배열 동적 할당과 같은 MASM 벡터
.686
.387
.model flat, stdcall
.xmm
include include\kernel32.inc
includelib lib\kernel32.lib
.data
szyfr DB 9, 15, 19, 2
;tab DD 4 dup (?) - it works fine
;wynik DD 4 dup (?) - it works fine
tmp DD 0
j DD 0
t DD 0
x DD 2
tmpa DD 0
tmpb DD 0
dlText DD 0
tab DD ?
wynik DD ?
.code
invoke GetProcessHeap
mov ebx, eax
INVOKE HeapAlloc, ebx, 0, 4 - it doesn't work
mov tab, eax
INVOKE HeapAlloc, ebx, 0, 4 - it doesn't work
mov wynik, eax
배열에 쓰기 :
이xor edx, edx
mov eax, esi ; esi = iterator = i
mul x ; x = 2
mov edx, eax
add edx, j
add edx, offset tab
mov eax, t ; t = number <0, 26>
mov dword ptr [edx], eax ; tab[i][j] = number <0, 26>
당신은 당신이 실제로 당신이 할당 된 메모리에 아무것도를 작성하는 방법 우리를 표시하지 않았습니다. – Michael
그건 그렇고,'DD 4 dup (?)'은 4 DWORD의 공간을 예약합니다. HeapAlloc, ebx, 0,4는 4 바이트, 즉 _one DWORD를 할당합니다. – Michael
@ 마이클 내 질문 업데이트, HeapAlloc, ebx, 0, 100 또는 심지어 더 큰 시도했지만 아무것도 변경됩니다. – Asker