level 0
@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
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的退出命令。
2009年12月08日 11点12分
1
level 0
非我原创,但我觉得解释的很好。大家可以看看,多了解点汇编知识
2009年12月08日 11点12分
2
level 5
这个确实不错,比下面这个控制窗口大小的好看了许多
@echo off
mode con cols=130 lines=90
pause
2009年12月09日 03点12分
5
level 5
兔子吧主,有个问题,就是用你转的代码后面加批处理,显示的时候,如果要是英文倒能正常显示,符号和汉字全为乱码,用下面这个代码汉字和符号就可以正常显示。
@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
:rem 下面放置任何命令……
2009年12月09日 13点12分
6
level 0
回复:8楼
echo on
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
tasklist | find /i "notepad.exe"
if not errorlevel 1 (taskkill /f /im notepad.exe)
PAUSE>nul
2009年12月12日 05点12分
10
level 0
echo exit|%ComSpec% /k prompt e 100 B4 00 B0 12 CD 10 B0 03 CD 10 CD 20 $_g$_q$_|debug>nul
的同义代码:
(echo e 100 B4 00 B0 12 CD 10 B0 03 CD 10 CD 20&echo g&echo q)|debug
2009年12月21日 12点12分
11
level 0
回复:13楼
那个我们说的是代码,Alt+Enter在很多方面不能自动化,还要自己按
2010年03月02日 06点03分
14
level 1
楼主,你的命令太深奥了,小弟看不太懂,能在通俗一点吗?
2010年03月28日 08点03分
15
level 7
chcp 437>nul
graftabl 936>nul
::在win32 console cmd下运行要先初始化中文环境的
::chcp 437>nul & graftabl 936>nul
2010年08月21日 14点08分
16
level 2
问楼上各位大神,我的系统是win7下的64位系统,在运行全屏命令的时候,只是一闪而过,没有任何显示和提示。
请教各位这是为什么呢?
2012年11月29日 13点11分
18
回复 xiaofu_cn :有没有什么方法改进呢?
2012年12月03日 01点12分
回复 xiaofu_cn :这个,我知道可以,我的意思是可不可以直接在win7x64系统中通过什么手段来使用debug命令呢?
2012年12月03日 08点12分
level 9
这个功能的确不知道,虽然暂时还没想出来能有啥的意义不过的确蛮好玩的~
LZ不错。人才
2012年12月17日 08点12分
21