| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 947 人关注过本帖
标题:why divide overflow
只看楼主 加入收藏
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:10 
why divide overflow
程序代码:
data segment

 num dw 543
data ends
code segment

 assume cs:code,ds:data 
start:

 mov ax,data

 mov ds,ax

 

 mov cx,10

 mov ax,num

 mov bh,0
again:

 div cx

 mov bl,al

 push bx

 mov al,0

 cmp al,0

 jz exit

 jmp again
exit:

 pop bx 

 mov dx,bx

 mov ah,02h

 int 21h

 mov ah,4ch

 int 21h
code ends

 end start
问题如上希望高手解答下,呵呵
搜索更多相关主题的帖子: why 
2011-11-28 17:50
zaixuexi
Rank: 12Rank: 12Rank: 12
来 自:上海
等 级:火箭侠
威 望:8
帖 子:858
专家分:3233
注 册:2010-12-1
收藏
得分:10 
div cx -> div cl
你另外那个帖子还没结呢:https://bbs.bccn.net/thread-353281-1-1.html
一起结了吧

技术问题,请不要以短消息方式提问
2011-11-28 18:02
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
收藏
得分:0 
程序代码:
data segment

 num dw 543
data ends
code segment

 assume cs:code,ds:data 
start:

 mov ax,data

 mov ds,ax

 

 mov si,0

 mov cx,10

 mov ax,num

 mov bh,0
again:

 div cl

 mov bl,al

 push bx

 inc si

 mov al,0

 cmp al,0

 jz exit

 jmp again
exit:

 pop bx

 mov dl,bl

 mov ah,02h

 int 21h

 dec si

 cmp si,0

 jnz exit

 mov ah,4ch

 int 21h
code ends

 end start
版主啊改了虽然无错误,但是输出结果有错,在帮忙看看撒,哦对了,上面那个贴子是没分的,我想结结不了啊 呵呵
2011-11-28 22:06
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
收藏
得分:0 
程序代码:
data segment

 num dw  125
data ends
code segment

 assume cs:code,ds:data 
start:

 mov ax,data

 mov ds,ax

 

 mov si,0

 mov cx,10

 mov ax,num

 mov bh,0
again:

 div cl

 mov bl,al

 push bx

 inc si

 cmp al,0

 jz exit

 mov al,0

 jmp again
exit:

 pop bx

 add bl,30h

 mov dl,bl

 mov ah,02h

 int 21h

 dec si

 cmp si,0

 jnz exit

 mov ah,4ch

 int 21h
code ends

 end start
修改后的 但是还是有问题 丫丫的
2011-11-28 22:29
zaixuexi
Rank: 12Rank: 12Rank: 12
来 自:上海
等 级:火箭侠
威 望:8
帖 子:858
专家分:3233
注 册:2010-12-1
收藏
得分:0 
题目先描述一下吧

技术问题,请不要以短消息方式提问
2011-11-29 11:23
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
收藏
得分:0 
哦 其实我只是想实现从键盘输入的ASKII数能在屏幕上以十进制显示出来(使用push,pop堆栈)
2011-11-29 12:59
zaixuexi
Rank: 12Rank: 12Rank: 12
来 自:上海
等 级:火箭侠
威 望:8
帖 子:858
专家分:3233
注 册:2010-12-1
收藏
得分:10 
程序代码:
data segment
    num dw  1066
data ends
code segment
    assume cs:code,ds:data
start:
    mov ax,data
    mov ds,ax
    mov si,0           ;short int count = 0;       
    mov cl,10          ;unsigned char k = 10;
    mov ax,num         ;short int num = 125;
    mov bh,0           ;short int tmp = 0;
again:
    div cl
    mov bl,ah          ;*(unsigned char*)&tmp = HIBYTE(num / k);
    push bx            ;*--sys_stack = tmp;
    inc si             ;count++;
    mov ah,0
    cmp al,0
    jnz again          ;if (num / k != 0) goto again;
exit:
    pop bx             ;tmp = *sys_stack++;
    add bl,30h       
    mov dl,bl
    mov ah,02h         ;putchar(tmp + '0');
    int 21h
    dec si             ;count--;
    cmp si,0
    jnz exit           ;if (count != 0) goto exit
    mov ah,4ch
    int 21h            ;exit(0);
code ends
end start

技术问题,请不要以短消息方式提问
2011-11-29 14:42
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
收藏
得分:0 
呵呵 还是版主行啊不过 如果是5477在大一点就不行了 就又是上面的提示

[ 本帖最后由 烟雾中的迷茫 于 2011-11-29 20:43 编辑 ]
2011-11-29 20:42
zaixuexi
Rank: 12Rank: 12Rank: 12
来 自:上海
等 级:火箭侠
威 望:8
帖 子:858
专家分:3233
注 册:2010-12-1
收藏
得分:0 
程序代码:
data segment
    num dw  1
data ends
code segment
    assume cs:code,ds:data
start:
    mov ax,data
    mov ds,ax
    mov cx,0ffffh      ;short int times = 65535;
next:
    push cx
    mov si,0           ;short int count = 0;      
    mov cx,10          ;short int k = 10;
    mov ax,num         ;short int num = 1;
    xor bx,bx          ;short int tmp = {0};
again:
    xor dx,dx
    div cx
    mov bx,dx          ;tmp = num % k;
    push bx            ;*--sys_stack = tmp;
    inc si             ;count++;
    cmp ax,0
    jnz again          ;if (num / k != 0) goto again;
exit:
    pop bx             ;tmp = *sys_stack++;
    add bl,30h      
    mov dl,bl
    mov ah,02h         ;putchar(tmp + '0');
    int 21h
    dec si             ;count--;
    cmp si,0
    jnz exit           ;if (count != 0) goto exit
    mov dl,20h
    int 21h            ;putchar(' ');
    inc word ptr ds:[num]    ;num++;
    pop cx
    loop next          ;while (times--);
    mov ah,4ch
    int 21h            ;exit(0);
code ends
end start
有时候也要自己学着调试(走),慢慢的学会编(跑),再学会设计(飞),不管学什么语言如果连调试都不会,将来出去是要被人笑话的.

技术问题,请不要以短消息方式提问
2011-11-29 21:15
zaixuexi
Rank: 12Rank: 12Rank: 12
来 自:上海
等 级:火箭侠
威 望:8
帖 子:858
专家分:3233
注 册:2010-12-1
收藏
得分:0 
版主不行,还叫版主么,哈哈哈

技术问题,请不要以短消息方式提问
2011-11-29 21:18
快速回复:why divide overflow
数据加载中...
 
   



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

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