|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 shenyuan 于 2015-3-16 22:26 编辑
- DATAS SEGMENT
- dw 123,12666,1,8,3,38
- db 30 dup(0)
- DATAS ENDS
- STACKS SEGMENT
- dw 10 dup(0)
- STACKS ENDS
- CODES SEGMENT
- ASSUME CS:CODES,DS:DATAS,SS:STACKS
- START:
- MOV AX,DATAS
- MOV DS,AX
- mov ax,STACKS
- mov ss,ax
- mov sp,20
- ; 初始化数据段和栈段
- mov di,0
- mov ax,[di]
- mov si,12 ;参数赋值
- ;参数=(ax) 存放地址=ds:[si]
- call dtoc
- MOV AH,4CH
- INT 21H
- dtoc:
- mov bx,10
- sr: mov dx,0
- div bx
- push dx ; 把余数压栈
- mov cx,ax
- jcxz okd ;判断商是否为0
- jmp sr
- okd: mov ax,20
- sub ax,sp
- mov bl,2
- div bl
- mov cl,al
- mov ch,0 ; 以上为计算栈中元素的数目, (20-sp)/2
- s1:pop ax
- add al,30H
- mov [si],al
- inc si
- loop s1
- mov byte ptr [si],0
- ret
- CODES ENDS
- END START
复制代码
以上为汇编代码,我在进行单步调试的时候,总是在 第二次循环到 mov cx,ax的时候弹出如下
并且点击忽略继续弹出,一下为debug的截图,我的环境是xp虚拟机,已经重启过几次,所以确定不是偶然出现的。
Anyone has any idea about what causes the problem, answer me.Thank you, 希望有人可以到自己那边的环境测试一下,看看有没有出现同样的问题
|
|