中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS学习入门 & 精彩文章 (教学室) » 用debug做的小玩意-屏幕显示命令行参数
« [1] [2] »
作者:
标题: 用debug做的小玩意-屏幕显示命令行参数 上一主题 | 下一主题
enjoyer
中级用户

部落守望者


积分 351
发帖 140
注册 2006-6-19
状态 离线
『楼 主』:  用debug做的小玩意-屏幕显示命令行参数

这些日子在学命令行参数传递方法的时候,自己编写了一个在屏幕中间显示输入参数的的小程序(30个字节,见附件中P.com,将P.txt改成*.com即可).

使用方法:在DOS命令行键入P,空格后输入参数,例如:P 1a2a3a然后回车.屏幕中间则出现三个带颜色的数字123.怎么样,是不是很有意思呢?呵呵.参数1a2a3a中,123是要显示的数字,字母a代表一个颜色值.大家可以试试,用不同的参数可以发现很多有趣的字符显示.注意如果是XP的命令行一定要把命令行全屏显示(alt+enter).

mkcom.txt是源文件,用命令"debug < mkcom.txt"可以生成 p.com

[ Last edited by enjoyer on 2007-11-2 at 12:42 AM ]

附件 1: mkcom.txt (2007-11-2 00:37, 239 bytes,下载次数: 184)
附件 2: P.txt (2007-11-2 00:40, 64 bytes,下载次数: 161)


一切从底层开始
2007-11-2 00:37
查看资料  发送邮件  发短消息 网志  OICQ (363852426)  编辑帖子  回复  引用回复
xdyf1314
初级用户





积分 43
发帖 17
注册 2007-10-24
状态 离线
『第 2 楼』:  

搞不懂是怎么一回事,按照你说的我远行不了,可以再说清楚点么??我是菜鸟啊~~多谢啦!!

2007-11-2 08:53
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
enjoyer
中级用户

部落守望者


积分 351
发帖 140
注册 2006-6-19
状态 离线
『第 3 楼』:  

抱歉没有说清楚.
  首先把文件P.txt下载到电脑上以后将后缀txt改为com(原来就是com文件,只是论坛不支持com文件上传而我又没装压缩工具的原因才改成了txt).
  在XP命令行(开始->运行->输入cmd,然后回车 ->Alt+Enter全屏 ->用cd命令进入P.com 所在目录)输入  p  1a2a3a 然后回车,在屏幕中间就会显示你所键入的数字123.当然你可以把任意字符当参数放在p后面然后回车,试试看吧.如果想知道原理再看mkcom.txt的内容,有不明白的地方直接找我联系就好,大家一起学习!QQ:363852426



最好是在全屏后用附件(同样后缀改为com)中的小程序清屏,进入经典DOS显示方式(在命令行输入clp,回车,如果遇到windows的"CPU 遇到非法指令"一类的错误提示,选择"关闭",然后恢复最小化的窗口即可),然后再运行P.com,字符的显示效果最好.

[ Last edited by enjoyer on 2007-11-2 at 11:21 PM ]

附件 1: CLP.txt (2007-11-2 23:17, 5 bytes,下载次数: 41)


一切从底层开始
2007-11-2 22:45
查看资料  发送邮件  发短消息 网志  OICQ (363852426)  编辑帖子  回复  引用回复
dthao
中级用户

LarkSpur


积分 378
发帖 183
注册 2007-9-19
状态 离线
『第 4 楼』:  

我不能运行这个啊



海洋遼,佛殿晨鐘敲鳴,喚醒迷津問覺路; 山嶺橫,僧院暮鼓擂振,促修慧業悟空門。         
2007-11-3 00:31
查看资料  发送邮件  发短消息 网志  OICQ (854869705)  编辑帖子  回复  引用回复
enjoyer
中级用户

部落守望者


积分 351
发帖 140
注册 2006-6-19
状态 离线
『第 5 楼』:  

比如说我让屏幕上显示彩色的"enjoyer"字样,可以这么做: p e9n7j4o5y1e0r7 回车.屏幕上就会出现带背景色的彩色字符串enjoyer.我在几台电脑上都没有问题.

注: 有的XP系统不用全屏也可以正常显示.

[ Last edited by enjoyer on 2007-11-3 at 12:53 PM ]



一切从底层开始
2007-11-3 12:44
查看资料  发送邮件  发短消息 网志  OICQ (363852426)  编辑帖子  回复  引用回复
本是
银牌会员





积分 2201
发帖 789
注册 2005-1-27
状态 离线
『第 6 楼』:  

DEBUG真好玩!
其实,P.COM只要17字节就可以了,DEBUG脚本见:
a
mov si,80
lodsb
mov cl,al
push b800
pop es
mov di,668
inc si
rep movsb
ret

n p.com
rcx
11
w
q

CLP.com缺少结束命令,如ret,DEBUG脚本:
e 100 b8 00 03 cd 10 c3
n clp.com
rcx
6
w
q



my major is english----my love is dos----my teacher is the buddha----my friends--how about U
2007-11-3 16:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
enjoyer
中级用户

部落守望者


积分 351
发帖 140
注册 2006-6-19
状态 离线
『第 7 楼』:  

本是兄提醒的是,如果有退出命令就不会弹出错误信息了.我通常是用int 21的4c功能来结束程序,没想到还能直接用ret.呵呵,长见识了.不过有退出命令的好象都不能返回80*25 mode. 而没有退出命令的反倒可以通过出错来进入80*25mode.

另外,在XP的命令行发现push b800在debug中是非法指令.不知本是兄有没有注意到呢

[ Last edited by enjoyer on 2007-11-3 at 10:30 PM ]



一切从底层开始
2007-11-3 21:45
查看资料  发送邮件  发短消息 网志  OICQ (363852426)  编辑帖子  回复  引用回复
dy2003310
初级用户





积分 180
发帖 68
注册 2006-12-21
来自 China
状态 离线
『第 8 楼』:  

push b800  提示错误
push应是对16位寄存器进行操作的吧

2008-1-12 16:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sunkistwu
初级用户





积分 37
发帖 19
注册 2008-1-11
状态 离线
『第 9 楼』:  

搞不懂是怎么一回事,按照你说的我远行不了,可以再说清楚点么??我是菜鸟啊~~多谢啦!!

2008-1-12 20:38
查看资料  发短消息 网志   编辑帖子  回复  引用回复
sevensecond
初级用户





积分 41
发帖 14
注册 2007-12-22
状态 离线
『第 10 楼』:  不行~

这个运行不出~

2008-1-12 22:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lzm2002158
新手上路





积分 4
发帖 2
注册 2008-1-14
状态 离线
『第 11 楼』:  

可以运行 哦
我试过得行

2008-1-14 16:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
enjoyer
中级用户

部落守望者


积分 351
发帖 140
注册 2006-6-19
状态 离线
『第 12 楼』:  

这个程序其实就是将命令参数提取并显示在屏幕上.可以说是一个很简单的汇编小程序了,而且不用任何工具,仅用windows自带的debug就可以将源码转换成可执行档.
      我们的论坛高手云集,希望众高手能把自己平时使用的一些小技巧公布出来让大家学习.这样不但培养了新人,活跃了论坛的技术氛围,而且通过大家讨论对自己的水平也有很大的提高.我这个小东东也算起到了抛砖引玉的作用吧



一切从底层开始
2008-1-16 22:35
查看资料  发送邮件  发短消息 网志  OICQ (363852426)  编辑帖子  回复  引用回复
yutuv
新手上路





积分 19
发帖 10
注册 2006-8-19
状态 离线
『第 13 楼』:  

可以的。。。真的好玩。。。


不过支持楼主的想法。

2008-1-22 11:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zhaofafu
新手上路





积分 8
发帖 5
注册 2008-2-15
状态 离线
『第 14 楼』:  

真的好玩

2008-2-15 10:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lixiaodaoaaa
新手上路





积分 9
发帖 5
注册 2008-2-15
状态 离线
『第 15 楼』:  我来看看

—#9825;

2008-2-15 14:24
查看资料  发送邮件  发短消息 网志  OICQ (346825741)  编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: