主题:[讨论]请高手帮忙改下错误
汇编错误报告
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
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