Создание макроса FillArray в asm

Я создаю макросы Fillarray, которые я хочу вызывать с основного. Я не получаю никаких ошибок при компиляции, но программы перестают выполняться после того, как я получу первый ввод от пользователя. Вот мой код Пожалуйста помоги

INCLUDE c:\Irvine\Irvine32.inc

;// .386
;// .model flat,stdcall
;// .stack 4096
ExitProcess proto,dwExitCode:dword

;-----------------------------------------------------
mFillArrray MACRO a, b, d
;
;-----------------------------------------------------

;   mov ecx, LENGTHOF array         ;place the length in ecx
;   mov esi, OFFSET array           ;place the offset in esi
;   mov ebx, TYPE array             ;place the type in ebx

LOCAL L1

pushad
mov ecx, a
mov esi, b
mov ebx, d

L1: 
    call ReadInt                    ; read integer into EAX
    mov [esi],eax                   ; store in array
    add esi,ebx                     ; next integer
    loop L1
    popad
ENDM

.data                               ;// write your data in this section
array DWORD 10 DUP(?)
a DWORD ?
b DWORD ?
d DWORD ?
str1 BYTE "Please enter into the array:",0dh,0ah,0
endl BYTE 0dh,0ah,0 

.code       ;// write your program here
main proc

    mov edx,offset str1             ;moves into edx registry intro string
    call WriteString                ;writes the message

    mFillArrray a, b, d

    mov edx,offset endl             ;moves into edx registry intro string
    call WriteString                ;writes the message

    invoke ExitProcess,0
main endp

end main

0 ответов

Другие вопросы по тегам