+ -
当前位置:首页 → 问答吧 → 高手们帮我看一这题为什么debug 有未知错误

高手们帮我看一这题为什么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

作者: Felex515   发布时间: 2011-01-23

10字节的data段同时做堆栈段太小了。

作者: shzhfu   发布时间: 2011-01-23