【汇编BUG】ML Nonfatal Error A2008

        在学习汇编循环程序结构的时候,遇到了这个问题:ML Nonfatal Error A2008,具体代码如下:

DATA SEGMENT
    BUF DB 75H,12H,87H,98H
        DB 81H,56H,73H,51H
    B EQU 8
    C EQU 10010101B
DATA ENDS
CODE SEGMENT
    ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
    MOV DS,AX
    MOV AH,B
    MOV CH,C
    LEA BX,BUF
LP: MOV AL,[BX]
    SHR CH,1
    JNC NEXT
    MOV CL,4
    ROL AL,CL
    JMP RES
NEXT:XOR AL,80H
RES:MOV [BX],AL
    INC BX
    DEC AH
    JNZ LP
    MOV AH,4CH
    INT 21H
CODE ENDS
    END START

        这个错误在直接使用DOS BOX编译链接并运行的时候是不会提示的,程序可以正常运行,但是在vscode中打开DOS BOX是无法正常使用的,会在:C EQU 10010101B 这行报错。
        以下是官方文档的描述(ML Nonfatal Error A2008 | Microsoft Docs):

【汇编BUG】ML Nonfatal Error A2008_第1张图片

         为了大家方便我直接把中文版搬过来了:

【汇编BUG】ML Nonfatal Error A2008_第2张图片

        参考文档可得错误原因是误把保留字C用作标识符了,我们将文中的C改为其它字母即可。

你可能感兴趣的:(汇编与接口,vscode)