帮忙解决简单计算器的两个错误
时间:2011-06-10
来源:互联网
DATA SEGMENT
B1 DB 0DH,0AH,' @@@@@@@@@@@@@@ Simple calculator @@@@@@@@@@@@@@@ $'
B2 DB 0DH,0AH,' @ INPUT THE FIRST NUMBER: $'
B3 DB 0DH,0AH,' @ INPUT THE SECOND NUMBER: $'
B4 DB 0DH,0AH,' @ INPUT THE OPERATOR(+,-,*,/): $'
B5 DB 0DH,0AH,' @ THE RESULT IS: $'
B6 DB 0DH,0AH,' @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ $'
B7 DB 0DH,0AH,' CONTINUE? please INPUT THE KEY (O)! $'
B8 DB 0AH,0DH,' @ THE REMAINDER IS :$'
A DW 0
B DW 0
C11 DW 0
C12 DB 0
B11 DW 10
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
S:MOV BX,0
MOV DI,0
MOV DX,0
LEA DX,B1
MOV AH,9
INT 21H
LEA DX,B2
MOV AH,9
INT 21H ;输出提示信息
DAT_1:MOV AX,0
MOV AH,1
INT 21H ;输入第一个操作数
CMP AL,0DH
JE DAT_2
AND AL,0FH ;把数字字符转化为数字
MOV AH,0
ADD DI,AX
MOV AX,DI
MUL B11
MOV DI,AX
JMP DAT_1
DAT_2:MOV AX,0
MOV AX,DI
DIV B11
MOV A,AX
MOV DI,0
MOV AX,0
LEA DX,B3
MOV AH,9
INT 21H
DAT_3:MOV AH,1
INT 21H ;输入第二个操作数
CMP AL,0DH
JE DAT_4
AND AL,0FH
MOV AH,0
ADD DI,AX
MOV AX,DI
MUL B11
MOV DI,AX
JMP DAT_3 ;将数字字符转化为数字
DAT_4:MOV AX,0
MOV AX,DI
DIV B11
MOV B,AX
MOV DI,0
MOV AX,0
LEA DX,B4
MOV AH,9
INT 21H
MOV AH,1 ;输入操作符
INT 21H
MOV C12,AL
CMP AL,'+'
JE ADD_1
CMP AL,'-'
JE SBB_1
CMP AL,'*'
JE MUL_1
CMP AL,'/'
JE DIV_1
ADD_1:MOV AX,0 ;加法运算
MOV AX,A
ADD AX,B
MOV SI,AX
JMP R
SBB_1:MOV AX,0 ;减法运算
MOV AX,A
SBB AX,B
MOV SI,AX
JMP R
MUL_1:MOV AX,0 ;乘法运算
MOV AX,A
MUL B
MOV SI,AX
JMP R
DIV_1:MOV AX,0 ;除法运算
MOV DX,0
MOV AX,A
DIV B
MOV SI,AX
MOV C11,DX
JMP R
R: LEA DX,B5
MOV AH,9
INT 21H
MOV CX,SP
MOV AX,SI
pp1:MOV DX,0
MOV BX,10
DIV BX
PUSH DX ;将16进制数转化为10进制数
CMP AX,0
JNZ pp1
pp2: CMP SP,CX
JE EXIT1
POP DX
ADD DL,30H
MOV AH,2
INT 21H
JMP pp2 ;输出结果
EXIT1:CMP C12,'/'
JNE LOPAENDS
LEA DX,B8
MOV AH,9
INT 21H
MOV AX,C11
pp3: MOV DX,0
MOV BX,10
DIV BX
PUSH DX ;将16进制数转化为10进制数
CMP AX,0
JNZ pp3
pp4: CMP SP,CX
JE LOPAENDS
POP DX
ADD DL,30H
MOV AH,2
INT 21H
JMP pp4
LOPAENDS: LEA DX,B6
MOV AH,9
INT 21H
LEA DX,B7
MOV AH,9
INT 21H
MOV AH,1
INT 21H
CMP AL,'o'
JNE EXIT
JMP S
EXIT: MOV AH,4CH
INT 21H
CODE ENDS
END START
1)19 symbol type conflict
2)155 with/coff switch,leading underscore requried for start address.START
请问怎么回事?
B1 DB 0DH,0AH,' @@@@@@@@@@@@@@ Simple calculator @@@@@@@@@@@@@@@ $'
B2 DB 0DH,0AH,' @ INPUT THE FIRST NUMBER: $'
B3 DB 0DH,0AH,' @ INPUT THE SECOND NUMBER: $'
B4 DB 0DH,0AH,' @ INPUT THE OPERATOR(+,-,*,/): $'
B5 DB 0DH,0AH,' @ THE RESULT IS: $'
B6 DB 0DH,0AH,' @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ $'
B7 DB 0DH,0AH,' CONTINUE? please INPUT THE KEY (O)! $'
B8 DB 0AH,0DH,' @ THE REMAINDER IS :$'
A DW 0
B DW 0
C11 DW 0
C12 DB 0
B11 DW 10
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
S:MOV BX,0
MOV DI,0
MOV DX,0
LEA DX,B1
MOV AH,9
INT 21H
LEA DX,B2
MOV AH,9
INT 21H ;输出提示信息
DAT_1:MOV AX,0
MOV AH,1
INT 21H ;输入第一个操作数
CMP AL,0DH
JE DAT_2
AND AL,0FH ;把数字字符转化为数字
MOV AH,0
ADD DI,AX
MOV AX,DI
MUL B11
MOV DI,AX
JMP DAT_1
DAT_2:MOV AX,0
MOV AX,DI
DIV B11
MOV A,AX
MOV DI,0
MOV AX,0
LEA DX,B3
MOV AH,9
INT 21H
DAT_3:MOV AH,1
INT 21H ;输入第二个操作数
CMP AL,0DH
JE DAT_4
AND AL,0FH
MOV AH,0
ADD DI,AX
MOV AX,DI
MUL B11
MOV DI,AX
JMP DAT_3 ;将数字字符转化为数字
DAT_4:MOV AX,0
MOV AX,DI
DIV B11
MOV B,AX
MOV DI,0
MOV AX,0
LEA DX,B4
MOV AH,9
INT 21H
MOV AH,1 ;输入操作符
INT 21H
MOV C12,AL
CMP AL,'+'
JE ADD_1
CMP AL,'-'
JE SBB_1
CMP AL,'*'
JE MUL_1
CMP AL,'/'
JE DIV_1
ADD_1:MOV AX,0 ;加法运算
MOV AX,A
ADD AX,B
MOV SI,AX
JMP R
SBB_1:MOV AX,0 ;减法运算
MOV AX,A
SBB AX,B
MOV SI,AX
JMP R
MUL_1:MOV AX,0 ;乘法运算
MOV AX,A
MUL B
MOV SI,AX
JMP R
DIV_1:MOV AX,0 ;除法运算
MOV DX,0
MOV AX,A
DIV B
MOV SI,AX
MOV C11,DX
JMP R
R: LEA DX,B5
MOV AH,9
INT 21H
MOV CX,SP
MOV AX,SI
pp1:MOV DX,0
MOV BX,10
DIV BX
PUSH DX ;将16进制数转化为10进制数
CMP AX,0
JNZ pp1
pp2: CMP SP,CX
JE EXIT1
POP DX
ADD DL,30H
MOV AH,2
INT 21H
JMP pp2 ;输出结果
EXIT1:CMP C12,'/'
JNE LOPAENDS
LEA DX,B8
MOV AH,9
INT 21H
MOV AX,C11
pp3: MOV DX,0
MOV BX,10
DIV BX
PUSH DX ;将16进制数转化为10进制数
CMP AX,0
JNZ pp3
pp4: CMP SP,CX
JE LOPAENDS
POP DX
ADD DL,30H
MOV AH,2
INT 21H
JMP pp4
LOPAENDS: LEA DX,B6
MOV AH,9
INT 21H
LEA DX,B7
MOV AH,9
INT 21H
MOV AH,1
INT 21H
CMP AL,'o'
JNE EXIT
JMP S
EXIT: MOV AH,4CH
INT 21H
CODE ENDS
END START
1)19 symbol type conflict
2)155 with/coff switch,leading underscore requried for start address.START
请问怎么回事?
作者: zj995541086 发布时间: 2011-06-10
masm 6.15编译运行通过。你的这个程序是16位dos程序,汇编的时候只需这样:
ml /c ur-file.asm
ml /c ur-file.asm
作者: masmaster 发布时间: 2011-06-10
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28