标题: [其他] ascode 应用之 将光标移动到指定位置 xy.com [打印本页]
作者: CrLf 时间: 2012-12-30 19:05 标题: ascode 应用之 将光标移动到指定位置 xy.com
本帖最后由 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
复制代码
作者: BAT-VBS 时间: 2012-12-30 19:43
感谢分享。牛叉。
作者: CrLf 时间: 2012-12-30 19:50
一段画圆小特效,算法改写自批处理勾股画圆:- @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)>"J:\ascode\xy.com"
-
- setlocal enabledelayedexpansion
- set /a max=10*10
- for /l %%a in (0 1 20) do (
- for /l %%b in (0 1 69) do (
- set /a y=%%a*2-10,x=%%b-40,r=y*y+x*x
- if !r! leq !max! xy.com %%a %%b&echo @
- )
- )
-
- xy.com 4 32& echo;
- xy.com 5 32& echo; bbs.bathome.net
- xy.com 6 32& echo; by CrLf
-
- pause>nul
复制代码
作者: 魔幻使者 时间: 2016-8-1 13:47
回复 1# CrLf
强大!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |