![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-21 04:14 |
共 47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,270 会员排行 |
| DOS学习入门 & 精彩文章 (教学室) » 用debug做的小玩意-屏幕显示命令行参数 |
| 可打印版本 8,977 / 21 |
| 第1楼 enjoyer | 发表于 2007-11-02 00:37 |
| 中级用户 发帖 140 积分 351 | |
|
用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 ] 附件 mkcom.txt (239 bytes) P.txt (64 bytes) |
|
| 第2楼 xdyf1314 | 发表于 2007-11-02 08:53 |
| 初级用户 发帖 17 积分 43 | |
|
搞不懂是怎么一回事,按照你说的我远行不了,可以再说清楚点么??我是菜鸟啊~~多谢啦!!
|
|
| 第3楼 enjoyer | 发表于 2007-11-02 22:45 |
| 中级用户 发帖 140 积分 351 | |
|
抱歉没有说清楚.
首先把文件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 ] 附件 CLP.txt (5 bytes) |
|
| 第4楼 dthao | 发表于 2007-11-03 00:31 |
| 中级用户 发帖 183 积分 378 | |
|
我不能运行这个啊
|
|
| 第5楼 enjoyer | 发表于 2007-11-03 12:44 |
| 中级用户 发帖 140 积分 351 | |
|
比如说我让屏幕上显示彩色的"enjoyer"字样,可以这么做: p e9n7j4o5y1e0r7 回车.屏幕上就会出现带背景色的彩色字符串enjoyer.我在几台电脑上都没有问题.
注: 有的XP系统不用全屏也可以正常显示. [ Last edited by enjoyer on 2007-11-3 at 12:53 PM ] |
|
| 第6楼 本是 | 发表于 2007-11-03 16:43 |
| 银牌会员 发帖 790 积分 2,227 | |
|
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 |
|
| 第7楼 enjoyer | 发表于 2007-11-03 21:45 |
| 中级用户 发帖 140 积分 351 | |
|
本是兄提醒的是,如果有退出命令就不会弹出错误信息了.我通常是用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 ] |
|
| 第8楼 dy2003310 | 发表于 2008-01-12 16:58 |
| 初级用户 发帖 68 积分 180 来自 China | |
|
push b800 提示错误
push应是对16位寄存器进行操作的吧 |
|
| 第9楼 sunkistwu | 发表于 2008-01-12 20:38 |
| 初级用户 发帖 19 积分 37 | |
|
搞不懂是怎么一回事,按照你说的我远行不了,可以再说清楚点么??我是菜鸟啊~~多谢啦!!
|
|
| 第10楼 sevensecond | 发表于 2008-01-12 22:58 |
| 初级用户 发帖 14 积分 41 | |
|
不行~ 这个运行不出~
|
|
| 第11楼 lzm2002158 | 发表于 2008-01-14 16:32 |
| 新手上路 发帖 2 积分 4 | |
|
可以运行 哦
我试过得行 |
|
| 第12楼 enjoyer | 发表于 2008-01-16 22:35 |
| 中级用户 发帖 140 积分 351 | |
|
这个程序其实就是将命令参数提取并显示在屏幕上.可以说是一个很简单的汇编小程序了,而且不用任何工具,仅用windows自带的debug就可以将源码转换成可执行档.
我们的论坛高手云集,希望众高手能把自己平时使用的一些小技巧公布出来让大家学习.这样不但培养了新人,活跃了论坛的技术氛围,而且通过大家讨论对自己的水平也有很大的提高.我这个小东东也算起到了抛砖引玉的作用吧 |
|
| 第13楼 yutuv | 发表于 2008-01-22 11:30 |
| 新手上路 发帖 10 积分 19 | |
|
可以的。。。真的好玩。。。
不过支持楼主的想法。 |
|
| 第14楼 zhaofafu | 发表于 2008-02-15 10:46 |
| 新手上路 发帖 5 积分 8 | |
|
真的好玩
|
|
| 第15楼 lixiaodaoaaa | 发表于 2008-02-15 14:24 |
| 新手上路 发帖 5 积分 9 | |
|
我来看看 —#9825;
|
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |