| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2821 人关注过本帖, 1 人收藏
标题:为什么这段代码在debug中结束后通过t指令可以回到最开始的指令啊
取消只看楼主 加入收藏
oped02
Rank: 2
等 级:论坛游民
帖 子:38
专家分:20
注 册:2022-10-16
结帖率:100%
收藏(1)
已结贴  问题点数:20 回复次数:4 
为什么这段代码在debug中结束后通过t指令可以回到最开始的指令啊
程序代码:
data segment
    num    db    -9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10
    fu    db    20 dup(?)    ;存放负数
    zheng    db    20 dup(?)    ;存放正数
    noff    db    0    ;负数数目
    nofz    db    0    ;正数数目
data ends

code segment
    assume    cs:code,ds:data,es:data
codestart proc far
    push    ds
    xor    ax,ax
    push    ax

    mov    ax,data
    mov    ds,ax
    mov    es,ax

start:
    lea    si,fu
    lea    di,zheng
    lea    bx,num

    mov    cx,20

compare:
    mov    al,[bx]
    inc    bx
    cmp    al,0
    jg    positive
    inc    noff
    mov    [si],al
    inc    si
    jmp    transfer


positive:
    inc    nofz
    mov    [di],al
    inc    di

transfer:
    loop    compare
    
exit:
    ret

code ends
end    start
搜索更多相关主题的帖子: mov db data inc 指令 
2022-10-21 20:45
oped02
Rank: 2
等 级:论坛游民
帖 子:38
专家分:20
注 册:2022-10-16
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册
2022-10-21 20:46
oped02
Rank: 2
等 级:论坛游民
帖 子:38
专家分:20
注 册:2022-10-16
收藏
得分:0 
回复 2楼 oped02
第一张是刚运行,我用t命令单步走了两次,因为里面有循环,所以用p指令直接清空cx,那么到了结尾的ret应该直接退出,为什么再执行一次后就又重新开始了呢
2022-10-21 20:48
oped02
Rank: 2
等 级:论坛游民
帖 子:38
专家分:20
注 册:2022-10-16
收藏
得分:0 
而且如果把代码尾部的ret更改为mov al,4ch    int 21h后就不会这样了,只不过会进入另一段代码,这段奇怪的代码貌似是我写的其它程序
图片附件: 游客没有浏览图片的权限,请 登录注册
2022-10-21 20:51
oped02
Rank: 2
等 级:论坛游民
帖 子:38
专家分:20
注 册:2022-10-16
收藏
得分:0 
回复 7楼 Valenciax
感谢版主大大的详细解答
2022-10-23 23:07
快速回复:为什么这段代码在debug中结束后通过t指令可以回到最开始的指令啊
数据加载中...
 
   



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

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