汇编错误报告
error A2035: operand must have size



DATA  SEGMENT
KEY1  DB 'Input a number: $'
KEY2  DB 'The binary: $'
NUM   DB 'ABCDEFG $'
COUNT DB 0
DATA  ENDS
STAC  SEGMENT STACK
     DW 100 DUP(?)
STAC  ENDS
CODE  SEGMENT
     ASSUME  CS:CODE, DS:DATA, SS:STAC
START:MOV  AX,DATA
      MOV  DS,AX
      LEA  DX,KEY1            ;显示KEY1
      MOV  AH,9
      INT  21H
      LEA  DX,NUM             ;作为输入字符的首地址
      MOV  AH,10
      INT  21H     
      LEA  SI,NUM+1           ;取出字符长度
      MOV  BL,[SI]
      MOV  COUNT,BL      
      XOR  AX,AX              ;AX清零,作为累加器
      LEA  DI,NUM+2
LOP4: SUB  [DI],30H           ;将字符转变为数字
      ADD  AL,[DI]            ;LOP4 将字符串转为10进制数于AX中
      DEC  COUNT
      CMP  COUNT,0
      JE   LOP0   
      MOV  BX,10
      MUL  BX                
      INC  DI      
      JMP  LOP4 
LOP0: MOV  BX,2               ;作为二进制基底     
      PUSH BX                 ;作为栽底
LOP1: XOR  DX,DX              ;lop1 将AX中转为二进制,并由低到高压入堆载
      DIV  BX
      PUSH DX
      CMP  AX,0
      JNZ  LOP1       
      MOV  DX,0AH             ;换行
      MOV  AH,2
      INT  21H
      MOV  DX,0DH             ;回车
      MOV  AH,2
      INT  21H
      LEA  DX,KEY2            ;显示KEY2
      MOV  AH,9
      INT  21H          
LOP2: POP DX                  ;LOP2 取出堆载中的二进制数并转为其ASCII码以便显示    
      CMP DX,BX      
      JE  STOP
      ADD DL,30H
      MOV AH,2
      INT 21H
      JMP LOP2      
STOP: MOV AH,4CH
      INT 21H
CODE  ENDS
      END START