中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]请各位解说一下这段批处理全屏运行的代码
作者:
标题: [已结]请各位解说一下这段批处理全屏运行的代码 上一主题 | 下一主题
yidos2008
新手上路





积分 19
发帖 7
注册 2008-10-10
状态 离线
『楼 主』:  [已结]请各位解说一下这段批处理全屏运行的代码

``这段全屏代码我看不大明白请各位高手指教下``
@echo off
echo exit|%ComSpec% /k prompt e 100 B4 00 B0 12 CD 10 B0 03 CD 10 CD 20 $_g$_q$_|debug>nul
chcp 437>nul
graftabl 936>nul
───────────────── 版务记录 ─────────────────
执行:HAT
操作:[2008-10-19]在帖子标题中增加搜索关键字;代码加code标签
说明:原标题"请各位高手解说一下这段代码``看不大明白"不利于论坛搜索
处罚:因属论坛新人,不予积分处罚
提示:建议阅读以下帖子
{1415}提问的智慧
{7326}论坛新手必读,所有人的基本行为准则
{22703}请不要做浮躁的人
{32667}[愤怒]那些连标题都写不清楚的人们啊,你们醒醒吧
{32825}本版严厉整顿烂帖
───────────────── 版务记录 ─────────────────


[ Last edited by HAT on 2008-11-2 at 12:24 ]

2008-10-19 10:48
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
s11ss
银牌会员





积分 2098
发帖 566
注册 2007-9-11
状态 离线
『第 2 楼』:  


rem 命令提示符下:
echo exit|%ComSpec% /k prompt e 100 B4 00 B0 12 CD 10 B0 03 CD 10 CD 20 $_nt.com$_rcx$_c$_w$_q$_|debug>nul
debug t.com
u100 10b
看到汇编代码如下:
MOV AH,00
MOV AL,12
INT 10
MOV AL,03
INT 10
INT 20

2008-10-19 11:18
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 3 楼』:  

http://www.cn-dos.net/forum/viewthread.php?tid=26591#pid165613
http://www.cn-dos.net/forum/view ... mp;page=3#pid284493



2008-10-19 11:23
查看资料  发短消息 网志   编辑帖子  回复  引用回复
agile
新手上路





积分 12
发帖 11
注册 2008-10-16
状态 离线
『第 4 楼』:  

路过~~

2008-10-22 17:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tlj273842736
新手上路





积分 9
发帖 7
注册 2008-10-7
状态 离线
『第 5 楼』:  

完全看不懂。

2008-10-22 19:05
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yywd
中级用户





积分 358
发帖 130
注册 2005-11-12
状态 离线
『第 6 楼』:  

路过~~ 看不懂。

2008-10-25 16:13
查看资料  发短消息 网志   编辑帖子  回复  引用回复
xzyx
初级用户





积分 50
发帖 19
注册 2008-2-9
状态 离线
『第 7 楼』:  

1、e是debug的修改命令,用于修改内存单元的内容。这里的e 100是编辑ds:0100的内容(这点不详细说了)


2、B4 00 B0 12 CD 10 B0 03 CD 10 CD 20 这些是机器码,这些机器码转化为汇编语言就成了:
MOV AH,00
MOV AL,12
INT 10
MOV AL,03
INT 10
INT 20
这段汇编主要运用了10号中断的00h号功能调用。这里调用了两次,其实一次就可以实现。
MOV AH,00
MOV AL,12
INT 10
INT 20
寄存器AH里的值代表了10号中断的功能调用,这里是00h。如果没记错的话12代表640×400黑白文字。int 20是调用20号中断将控制权交给dos。

(所谓中断就相当于调用固有的子程序。)

3、$_是换行。
4、g是debug的运行命令,q是debug的退出命令。

2008-10-26 23:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yidos2008
新手上路





积分 19
发帖 7
注册 2008-10-10
状态 离线
『第 8 楼』:  哈哈````谢谢哒

谢谢啦!!!!

明白多啦`````又学了一招```

2008-11-2 11:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: