Originally posted by s11ss at 2008-12-9 22:48:
无按键是直接回车的情况么?如果只用0号的话,al是0d啊
无按键就是沒动键盘.
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
Originally posted by s11ss at 2008-12-9 22:48:
无按键是直接回车的情况么?如果只用0号的话,al是0d啊
| 评分人 | 分数 | 时间 |
|---|---|---|
| s11ss | +7 | 2008-12-10 14:53 |
Originally posted by 本是 at 2008-12-10 02:31 PM:
上面的程序中mov ax,0长3字节,改mov ah,0或xor ah,ah或sub ah,ah就能少1个字节。
其实,此类程序最短的只要8字节。
DEBUG
a
mov ah,0
int 16h
mov ah,4Ch
...
Originally posted by 本是 at 2008-12-10 14:31:
上面的程序中mov ax,0长3字节,改mov ah,0或xor ah,ah或sub ah,ah就能少1个字节。
其实,此类程序最短的只要8字节。
DEBUG
a
mov ah,0
int 16h
mov ah,4Ch
...
@echo off
call inc 2>nul
if %errorlevel%==1 (
>inc.src echo ecs:100 B8 00 01 CD 16 B8 00 00 74 02 CD 16 B4 4C CD 21
>>inc.src echo rcx
>>inc.src echo 10
>>inc.src echo w
>>inc.src echo q
debug inc.com < inc.src 2>nul 1>nul
del inc.src
)
:loop
inc
echo %errorlevel%
if not %errorlevel%==0 (
if %errorlevel%==81 goto :eof ::q or Q exit
if %errorlevel%==113 goto :eof
)
ping -n 2 127.1>nul
goto loopOriginally posted by s11ss at 2008-12-10 14:55:
我的意思就是不用int 16h的1号功能,看来还是行的~
其实好像可以不写com,直接用debug调用:)
a
MOV AX,0100
INT 16
MOV AX,0000
JZ 010C
INT 16
MOV AH,4C
INT 21
g
q@echo off
:loop
debug <c.txt>nul
echo %errorlevel%
if not %errorlevel%==0 (
if %errorlevel%==81 goto :eof ::q or Q exit
if %errorlevel%==113 goto :eof
)
ping -n 2 127.1>nul
goto loopa
mov ah,0
int 16
mov ah,4C
int 21
g
q@echo off
:loop
debug <a.txt>nul
echo %errorlevel%
if not %errorlevel%==0 (
if %errorlevel%==81 goto :eof ::q or Q exit
if %errorlevel%==113 goto :eof
)
ping -n 2 127.1>nul
goto loop
goto :main
a
;MOV AX,0100
;INT 16
MOV AX,0000
;JZ 010C
INT 16
MOV AH,4C
INT 21
g
q
:main
@echo off
:loop
debug <"%~f0">nul
echo %errorlevel%
if not %errorlevel%==0 (
if %errorlevel%==81 goto :eof ::q or Q exit
if %errorlevel%==113 goto :eof
)
ping -n 2 127.1>nul
goto loop
@echo off
goto main
a
MOV AL,
CMP AL,20
JNZ 0110
MOV AH,01
INT 16
MOV AX,0000
JZ 0112
INT 16
MOV AH,4C
INT 21
g
q
:main
chcp 437|graftabl 936>nul
set/p =input:<nul
::有参数(任意)等待输入一个字符,通过errorlevel返回
debug a.com i<"%~f0">nul 2>nul
echo %errorlevel%
:loop
::无参数检测是否有按键 无:errorlevel=0 有errorlevel=键值 可用干运行中动态检测按键
debug<"%~f0">nul
echo %errorlevel%
if not %errorlevel%==0 (
if %errorlevel%==81 goto :eof ::q or Q exit
if %errorlevel%==113 goto :eof
)
ping -n 2 127.1>nul
goto loop| 评分人 | 分数 | 时间 |
|---|---|---|
| zh159 | +20 | 2008-12-11 09:31 |
@echo off
goto main
a
MOV AL,
CMP AL,20
JNZ 0110
MOV AH,01
INT 16
MOV AX,0000
JZ 0112
INT 16
MOV AH,4C
INT 21
g
q
:main
chcp 437|graftabl 936>nul
set/p =等待...<nul&set/a n=0
:loop
set/a n+=1
set/p =.%n%<nul
debug<"%~f0">nul
if not %errorlevel%==0 (
if %errorlevel%==81 goto :eof ::q or Q exit
if %errorlevel%==113 goto :eof
)
if %n% gtr 5 goto p1
ping -n 2 127.1>nul
goto loop
:p1
echo.
echo 计时到,自动运行!
pause| 评分人 | 分数 | 时间 |
|---|---|---|
| Helloworld | +1 | 2008-12-11 13:19 |