Board logo

标题: [其他] ascode 应用之 将光标移动到指定位置 xy.com [打印本页]

作者: CrLf    时间: 2012-12-30 19:05     标题: ascode 应用之 将光标移动到指定位置 xy.com

本帖最后由 CrLf 于 2012-12-30 19:51 编辑

com 部分通过 encode 算法生成:
  1. @echo off&chcp 437|GRAFTABL>nul 936
  2. @(echo RQPUWP]UZV_BBBB5``PY(E1(E5^)E7^)E^<(E@^)EI-
  3. echo SX3CP^< ~v^<P}k%%ooQRY2AY0@ uP0EPGEB?_]XYZ
  4. echo KN8000JL463L047L28N8260080ON60742052JL
  5. echo 3L0M741J3L3J7OO73L307M02NKO14NN80M0080ON
  6. echo 6074075K88MNK402LM10L331L0K90300KJ0060KK
  7. echo 0J00JL3L3J7ONO2L307LNK5089M0O6N389L25800
  8. echo L2N2NKL3)>"XY.COM"
  9. ::这个 bat 是生成 "XY.COM" 的模板,使用时可以直接复制
  10. xy.com 10 10&echo xy.com
  11. ::用 xy.com 跳到 10 行 10 列
  12. xy.com.com 7 30&echo xy.com.com
  13. ::用 xy.com.com 跳到 7 行 30 列
  14. pause>nul
复制代码
附上用 debug 编译 xy.com 汇编原型的代码,可以自行修改,在 cmd 中黏贴即可:
  1. debug XY.com
  2. a
  3. ;main
  4. mov si,80
  5. lodsb
  6. inc si
  7. cmp al,4
  8. jl 131 ;exit
  9. ;---------------
  10. call 132 ;call sub
  11. cmp dh,60
  12. jz 131 ;exit
  13. push dx
  14. ;解析用户指定的所在行
  15. ;---------------
  16. ;loop
  17. lodsb
  18. cmp al,0d
  19. jz 131 ;exit
  20. cmp al,3a
  21. jg 112 ;loop
  22. cmp al,30
  23. jnl 121 ;next
  24. jmp 112
  25. ;排除参数之间的空格
  26. ;---------------
  27. ;next
  28. dec si
  29. call 132 ;call sub
  30. cmp dh,60
  31. jz 131 ;exit
  32. pop bx
  33. ;解析用户指定的所在列
  34. ;---------------
  35. mov dh,bl
  36. mov ah,2
  37. int 10
  38. ;调用中断
  39. ret
  40. ;
  41. ;
  42. ;sub 读取命令行参数中的数字,解析为对应的 16 进制数
  43. xor ax,ax
  44. mov cx,3
  45. mov dx,6000
  46. mov bx,a
  47. ;初始化,不进入循环
  48. ;---------------
  49. lodsb
  50. ;---------------
  51. cmp al,3a
  52. jg 131 ;exit
  53. sub al,30
  54. jl 131 ;exit
  55. ;判断是否为有效数字
  56. ;---------------
  57. push ax
  58. mov ax,dx
  59. mul bl
  60. mov dx,ax
  61. pop ax
  62. ;dl 十进制进位
  63. ;----------------
  64. add dl,al
  65. loop 13d ;goto lodsb
  66. ;直到或超过为止
  67. ret
  68. rcx
  69. 53
  70. w
  71. q
复制代码

作者: BAT-VBS    时间: 2012-12-30 19:43

感谢分享。牛叉。
作者: CrLf    时间: 2012-12-30 19:50

一段画圆小特效,算法改写自批处理勾股画圆
  1. @echo off&chcp 437|GRAFTABL>nul 936
  2. @(echo RQPUWP]UZV_BBBB5``PY(E1(E5^)E7^)E^<(E@^)EI-
  3. echo SX3CP^< ~v^<P}k%%ooQRY2AY0@ uP0EPGEB?_]XYZ
  4. echo KN8000JL463L047L28N8260080ON60742052JL
  5. echo 3L0M741J3L3J7OO73L307M02NKO14NN80M0080ON
  6. echo 6074075K88MNK402LM10L331L0K90300KJ0060KK
  7. echo 0J00JL3L3J7ONO2L307LNK5089M0O6N389L25800
  8. echo L2N2NKL3)>"J:\ascode\xy.com"
  9. setlocal enabledelayedexpansion
  10. set /a max=10*10
  11. for /l %%a in (0 1 20) do (
  12. for /l %%b in (0 1 69) do (
  13. set /a y=%%a*2-10,x=%%b-40,r=y*y+x*x
  14. if !r! leq !max! xy.com %%a %%b&echo @
  15. )
  16. )
  17. xy.com 4 32& echo;                 
  18. xy.com 5 32& echo; bbs.bathome.net
  19. xy.com 6 32& echo;     by CrLf     
  20. pause>nul
复制代码

作者: 魔幻使者    时间: 2016-8-1 13:47

回复 1# CrLf


    强大!




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2