本帖最后由 CrLf 于 2012-12-30 19:51 编辑
com 部分通过 encode 算法生成:- @echo off&chcp 437|GRAFTABL>nul 936
- @(echo RQPUWP]UZV_BBBB5``PY(E1(E5^)E7^)E^<(E@^)EI-
- echo SX3CP^< ~v^<P}k%%ooQRY2AY0@ uP0EPGEB?_]XYZ
- echo KN8000JL463L047L28N8260080ON60742052JL
- echo 3L0M741J3L3J7OO73L307M02NKO14NN80M0080ON
- echo 6074075K88MNK402LM10L331L0K90300KJ0060KK
- echo 0J00JL3L3J7ONO2L307LNK5089M0O6N389L25800
- echo L2N2NKL3)>"XY.COM"
- ::这个 bat 是生成 "XY.COM" 的模板,使用时可以直接复制
-
- xy.com 10 10&echo xy.com
- ::用 xy.com 跳到 10 行 10 列
-
- xy.com.com 7 30&echo xy.com.com
- ::用 xy.com.com 跳到 7 行 30 列
-
- pause>nul
复制代码 附上用 debug 编译 xy.com 汇编原型的代码,可以自行修改,在 cmd 中黏贴即可:- debug XY.com
- a
- ;main
- mov si,80
- lodsb
- inc si
- cmp al,4
- jl 131 ;exit
- ;---------------
- call 132 ;call sub
- cmp dh,60
- jz 131 ;exit
- push dx
- ;解析用户指定的所在行
- ;---------------
- ;loop
- lodsb
- cmp al,0d
- jz 131 ;exit
- cmp al,3a
- jg 112 ;loop
- cmp al,30
- jnl 121 ;next
- jmp 112
- ;排除参数之间的空格
- ;---------------
- ;next
- dec si
- call 132 ;call sub
- cmp dh,60
- jz 131 ;exit
- pop bx
- ;解析用户指定的所在列
- ;---------------
- mov dh,bl
- mov ah,2
- int 10
- ;调用中断
- ret
- ;
- ;
- ;sub 读取命令行参数中的数字,解析为对应的 16 进制数
- xor ax,ax
- mov cx,3
- mov dx,6000
- mov bx,a
- ;初始化,不进入循环
- ;---------------
- lodsb
- ;---------------
- cmp al,3a
- jg 131 ;exit
- sub al,30
- jl 131 ;exit
- ;判断是否为有效数字
- ;---------------
- push ax
- mov ax,dx
- mul bl
- mov dx,ax
- pop ax
- ;dl 十进制进位
- ;----------------
- add dl,al
- loop 13d ;goto lodsb
- ;直到或超过为止
- ret
-
- rcx
- 53
- w
- q
复制代码
|