(Assembler)Вывести число в MessageBox

Задан массив из N элементов. Написать процедуру, определяющую длину самой длинной последовательности расположенных подряд нулевых элементов. Вывожу через MessageBox но так не получается.

Мой код:

.686P   
.model flat, stdcall   
.stack 256   
  
.data   
Mb_OK  EQU   0  
TITLE_    DB          "LAB ", 0   
STR_F     DB          "X = %d", 0  
STR_BUF   DB          256 DUP (0)  
HW        DD          ? 

n            DB              10 ;                               
a            DW              0,1,0,0,1,1,0,0,0,1,0,1;            
nsd          DD ?
EXTERN wsprintfA:NEAR
EXTERN MessageBoxA@16:NEAR  

.code  
start:
 
mov ds, ax
m1:
    mov di, a
    mov cx, [n]
    mov bx, 0
    mov ax, 0
m2:
    cmp a[di], '0'
    jne m4
    inc ax
    cmp ax, bx
    jle m3
    mov bx, ax
m3:
    jmp m5
m4:
    mov ax, 0
m5:
    inc di
    loop m2
    int 21h
    mov ah, 4ch

mov WORD PTR [nsd],ax

push [nsd]
push OFFSET STR_F
push OFFSET STR_BUF
call wsprintfA
add esp,12

push MB_OK
push OFFSET TITLE_
push OFFSET STR_BUF
push HW
call MessageBoxA@16
ret

END START

Ответы (0 шт):