高手们帮我看一这题为什么debug 有未知错误
时间:2011-01-23
来源:互联网
DATA SEGMENT
DB 10 DUP (0)
DATA ENDS
CODE SEGMENT
START: MOV AX,12666
MOV BX,DATA
MOV DS,BX
MOV SS,BX
MOV SP,10
MOV SI,0
CALL DTOC
MOV DH,8
MOV DL,3
MOV CL,2
CALL SHOW_STR
MOV AX,4C00H
INT 21H
DTOC: MOV BX,10
DIV BX
MOV CX,AX
JCXZ OK
PUSH DX
MOV DX,0 :余数清零,如果不清零下次再执行DIV BX的时候余数将做为高位来参与除法,也就是第二次执行这里的时候出现的问题。
JMP SHORT DTOC
OK: PUSH DX
MOV SI,SP
RET
SHOW_STR: PUSH AX
PUSH DX
PUSH SI
MOV AX,0B800H
MOV ES,AX
MOV AL,160
MOV AH,0
DEC DH
MUL DH
MOV BX,AX
MOV AL,2
DEC DL
MUL DL
ADD BX,AX
S: MOV CL,DS:[SI]
MOV CH,0
JCXZ OK1
MOV CH,2
MOV ES:[BX],CL
MOV ES:[BX+1],CH
ADD SI,2
ADD BX,2
JMP S
OK1: POP SI
POP DX
POP AX
RET
CODE ENDS
END START
DB 10 DUP (0)
DATA ENDS
CODE SEGMENT
START: MOV AX,12666
MOV BX,DATA
MOV DS,BX
MOV SS,BX
MOV SP,10
MOV SI,0
CALL DTOC
MOV DH,8
MOV DL,3
MOV CL,2
CALL SHOW_STR
MOV AX,4C00H
INT 21H
DTOC: MOV BX,10
DIV BX
MOV CX,AX
JCXZ OK
PUSH DX
MOV DX,0 :余数清零,如果不清零下次再执行DIV BX的时候余数将做为高位来参与除法,也就是第二次执行这里的时候出现的问题。
JMP SHORT DTOC
OK: PUSH DX
MOV SI,SP
RET
SHOW_STR: PUSH AX
PUSH DX
PUSH SI
MOV AX,0B800H
MOV ES,AX
MOV AL,160
MOV AH,0
DEC DH
MUL DH
MOV BX,AX
MOV AL,2
DEC DL
MUL DL
ADD BX,AX
S: MOV CL,DS:[SI]
MOV CH,0
JCXZ OK1
MOV CH,2
MOV ES:[BX],CL
MOV ES:[BX+1],CH
ADD SI,2
ADD BX,2
JMP S
OK1: POP SI
POP DX
POP AX
RET
CODE ENDS
END START
作者: Felex515 发布时间: 2011-01-23
10字节的data段同时做堆栈段太小了。
作者: shzhfu 发布时间: 2011-01-23
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28