"无与伦比的块嵌套" MASM

时间:2014-03-21 00:49:46

标签: assembly masm x86-16

我找不到错误。我是汇编语言的新手。我使用“MASM”到“DOSBOX”并已经制作了七个成功的程序,我只需要后者但是找不到我的错误。

MODEL TINY

.LISTALL

.386

.CODE

.STARTUP

MOV EAX, 123455H

CALL DISPE

.EXIT

DISPE  PROC NEAR

       MOV EBX, 10

       PUSH BX

       MOV CL, 0

       .WHILE 1

       MOV EDX, 0

       DIV EBX

       ADD DL, 30H

       PUSH DX

       .BREAK .IF EAX==0

       INC CL

       .IF CL==3

       MOV CL, 0

       .ENDIF

       .ENDW

       .WHILE 1

       POP DX

       .BREAK

       MOV AH, 2

       INT 21H

       .ENDW

       RET

DISPE  ENDP

END

1 个答案:

答案 0 :(得分:1)

好吧,如果你缩进你的代码,你会马上发现问题!用" good"来看看你的过程。压痕...

DISPE PROC NEAR
    MOV EBX, 10 
    PUSH BX 
    MOV CL, 0

    .WHILE 1    
        MOV EDX, 0  
        DIV EBX 
        ADD DL, 30H
        PUSH DX
        .BREAK 

        .IF EAX==0  
            INC CL

        .IF CL==3   
            MOV CL, 0   
        .ENDIF  
    .ENDW

    .WHILE 1    
        POP DX  
        .BREAK

        MOV AH, 2       
        INT 21H 
    .ENDW

    RET
DISPE ENDP

发现缺少什么?您有2 .if个但只有一个.endif。可能是您的拼写错误,也许第二个.if应该是.elseif.else