| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2058 人关注过本帖
标题:麻烦请教一下这段代码里的各个寄存器是干什么用的啊
取消只看楼主 加入收藏
oped02
Rank: 2
等 级:论坛游民
帖 子:38
专家分:20
注 册:2022-10-16
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
麻烦请教一下这段代码里的各个寄存器是干什么用的啊

;参数列表:bx:操作系统中的文件描述符fd,可以用来进行对文件的操作、cx:读取的字节数、dx:数据缓冲区地址
read_block    proc    near
    push    bx
    push    cx
    push    dx
    cmp    cur,200            ;缓冲区里有200个字符吗?
    jnz    back            ;结果不为0则转移
    ;if no more chars in buf can be displayed then read another 200 chars ;
    mov    cx,200   
    mov    bx , handle        ;将fd传给bx好操作
    mov    dx , offset buf
    mov    ah , 3fh        ;读文件或设备
    int    21h            
    mov    cur,0
    mov    ax,1            ;
    jnc    back
    mov    cur,200
    mov    ax ,0
back:
    pop    dx
    pop    cx
    pop    bx
    ret
read_block    endp
;****************************************************************
搜索更多相关主题的帖子: 代码 mov back push 寄存器 
2022-11-20 00:00
oped02
Rank: 2
等 级:论坛游民
帖 子:38
专家分:20
注 册:2022-10-16
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

这个貌似就是以上代码的流程图,
但我不理解的几点有
1、为什么要mov    ax,1后 jnc    back
2. cur是干什么的啊
2022-11-20 00:02
oped02
Rank: 2
等 级:论坛游民
帖 子:38
专家分:20
注 册:2022-10-16
收藏
得分:0 
回复 3楼 Valenciax
感谢版主大大
另外,这份代码就是我们所学的《IBM-PC汇编语言程序设计 实验教程》里的源码
很多年前的老事物了
我在网上也看过有关的评论,大部分都是说这本书不适合入门
麻烦再咨询一下大大,有什么适合初学者进阶的汇编资料吗,我感觉学了一两个月的汇编还是不能很好地编写出自己的代码,每次一看到题目就头脑空白
写出一份代码我都是先写出相应的C语言再转化成汇编代码
2022-11-20 10:14
oped02
Rank: 2
等 级:论坛游民
帖 子:38
专家分:20
注 册:2022-10-16
收藏
得分:0 
回复 5楼 Valenciax
好的,感谢大大建议
2022-11-22 12:50
快速回复:麻烦请教一下这段代码里的各个寄存器是干什么用的啊
数据加载中...
 
   



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

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