MASM32 - 致命错误A1010:不匹配的块嵌套:CDSEG

时间:2017-11-23 04:43:15

标签: assembly masm32

DTSEG SEGMENT
DATAW DW 97F4H
COUNT DB 0
CNT_ASC DB 2 DUP(0), '$'
DTSEG ENDS

CDSEG SEGMENT
START:
ASSUME  CS:CDSEG, DS:DTSEG
MOV AX, DTSEG
MOV DS, AX
SUB AL, AL
MOV DL, 16
MOV BX, DATAW
AGAIN:  ROL BX, 1
JNC NEXT
ADD AL, 1
DAA
NEXT:   DEC DL
JNZ AGAIN
MOV COUNT, AL
CALL BCD2ASC
CALL DISPLAY
MOV AH, 4CH
INT 21H
END START

BCD2ASC PROC
MOV AL, COUNT
MOV AH, AL
AND AX, 0F00FH
MOV CL, 4
SHR AH, CL
OR AX, 3030H
XCHG AH, AL
MOV CNT_ASC, AX
RET
BCD2ASC ENDP

DISPLAY PROC
MOV AH, 09
MOV DX, OFFSET CNT_ASC
INT 21H
RET
DISPLAY ENDP

此代码'计算整数字中包含的1的数量'。 我认为'97F4H'是整数字,COUNT是1的数字。 最后一行有一个错误。我不知道如何修复此代码。 我不知道在哪里放'CDSEG ENDP'。 我是第一次使用这个程序。 请帮忙〜

1 个答案:

答案 0 :(得分:0)

CDSEG ENDP放在文件的最后一行之后,因为CDSEG SEGMENT之后的所有内容都是说明。您希望它们成为代码段的一部分。