批处理全屏运行代码
dos吧
全部回复
仅看楼主
level 0
linxianhe 楼主

@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
linxianhe 楼主
非我原创,但我觉得解释的很好。大家可以看看,多了解点汇编知识
2009年12月08日 11点12分 2
level 0
linxianhe 楼主
回复:6楼
补充的很好啊    
2009年12月10日 11点12分 7
level 0
linxianhe 楼主
回复: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
linxianhe 楼主
回复:13楼
那个我们说的是代码,Alt+Enter在很多方面不能自动化,还要自己按
2010年03月02日 06点03分 14
1