标题:[求助]将AX中的数以十进制输出到显示器上,运行时出现Divide overflow错误
只看楼主
story
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-11-25
 问题点数:0 回复次数:7 
[求助]将AX中的数以十进制输出到显示器上,运行时出现Divide overflow错误

data segment
x db 10 dup(?)
data ends

code segment
main proc far
assume cs:code, ds:data
push ds
mov ax, 0
push ax
mov ax, data
mov ds, ax
mov ax, 12
mov si, 0
mov bx, 10
lp: div bx
mov offset[x][si], ah
inc si
cmp al, 0
jz output
cbw
jmp lp
output: mov dl, [x][si]
mov ah, 2
int 21h
dec si
cmp si, 0
jae output
ret
code ends
end main
*************************************************
编译和连接都通过了,但是运行时出现Divide overflow错误,请予以指正

搜索更多相关主题的帖子: overflow Divide 十进制 显示器 输出 
2006-11-25 02:11
story
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-11-25
得分:0 
都一天了,怎么就没人管啊

等价交换
2006-11-25 15:21
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
得分:0 

这里的除数bx是字操作数,除出来的商超过16位就会益处。
一般10,12这种比较小的数一般除数是字节操作数就够了。
这里改成bl应该就可以了


2006-11-25 15:46
story
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-11-25
得分:0 

多谢楼上的建议,我已经改了.但是现在的运行结果是无数行的乱码,仿佛是死循环似的,都快晕了~~


等价交换
2006-11-25 20:25
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
得分:0 
LZ给的程序好象不能运行啊

2006-11-25 23:01
story
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-11-25
得分:0 
我是用命令行运行的,能运行

等价交换
2006-11-26 01:13
wchx215
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2006-9-4
得分:0 

x db 10 dup(?)
data ends

code segment
main proc far
assume cs:code, ds:data
push ds
mov ax, 0
push ax
mov ax, data
mov ds, ax
mov ax, 12
mov si, 0
mov bl, 10
lp: idiv bl
mov [x][si], ah
inc si
cmp al, 0
jz output
cbw
jmp lp
output: dec si
output1: mov dl,[x][si]
add dl,30h
mov ah, 2
int 21h
dec si
cmp si,0
jge output1
ret
main endp
code ends
end main

2006-11-26 05:27
story
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-11-25
得分:0 
多谢楼上的,已经可以了

等价交换
2006-11-26 17:55



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-105205-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.174183 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved