[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 qzwqzw 于 2011-5-14 10:59 编辑

11楼的代码也犯了本末倒置的错误了
生成0字节是为了避免使用外部命令
结果你却使用外部命令debug生成了0字节

如果允许用debug
那么直接用e命令就可以直接写任何字节了
何必还要用a命令汇编dos中断呢?
  1. @echo off
  2. for %%f in (e100 00 rcx 1 nnull.txt w q) do echo %%f>>debug.scr
  3. debug < debug.scr >nul
复制代码
对于这个问题
我能想到的仍然是ASCODE方案
因为它本身就是为了解决第三方工具依赖而出现的
生成0字节只是一个小小的副产物而已
  1. @echo off
  2. echo Bj@jzh`0X-`/PPPPPPa(DE(DM(DO(Dh(Ls(Lu(LX(LeZRR]EEEUYRX2Dx=>echoo.com
  3. echo 0DxFP,0Xx.t0P,=XtGsB4o@$?PIyU!WvX0GwUY Wv;ovBX2Gv0ExGIuht6>>echoo.com
  4. echo ?@xAyJHmH@=a?}VjuN?_LEkS?`w`s_{OCIvJDGEHtc{OCIKGMgELCI?GGg>>echoo.com
  5. echo EL?s?WL`LRBcx=k_K?AxVD?fCo?Cd?BLDs0>>echoo.com
  6. echoo >nul
  7. echoo.com $00>null.txt
  8. del echoo.com
复制代码
3

评分人数

    • zm900612: 技术技术 + 1
    • plp626: 我也想到这个,就是不懂;惊喜~技术 + 1
    • batman: 牛人!技术 + 1
天的白色影子

TOP

倒是想起另外一个类似的问题
如何生成一个仅含1个eof字符的文件
eof即文件结束符
ASCII码十六进制形式为0x1A
天的白色影子

TOP

有个疑问,你14楼的代码为什么要多一行 echoo >nul?
是为了防止在不同的语言环境下出现“Invalid keyboard code specified”的错误输出干扰echoo.com的正常输出
主要是针对系统内不存在“英语(美国)”语言的情况
第一次运行echoo.com或其它的16位程序后键盘代码会进行切换
第二次运行不会再有这样的提示

echoo.com $# 创建的是"-"
echoo.com $$创建 但是"="
而echoo.com $#$$ 又创建的不是"=-" 而是"4#"
这里是怎么对应的?

程序固定从$后取两个字符进行计算
如果只跟一个字符则会将回车符0x0d取入合并计算
16进制转10进制算法并不严格检验输入数的合法性
所以会有一些莫名其秒的误差
第三句是取了$#$ 再取$

这段代码仍然是ASCII汇编大师Herbert Kleebauer 的作品
其作品通常只会有Motorola样式汇编源码
与通常我们所学习的Intel样式汇编略有不同
有余力的可以查看以下代码
  1.         @=$178
  2.         move.w  #1,r2           ; write 1 char
  3.         move.w  r2,r3           ; to stdout
  4.         move.w  #buf,r1         ; write buffer
  5.         move.w  r1,r6
  6.         move.w  #$80,r5
  7.         movu.bw (r5.w),r4       ; cmdline length
  8. _30:    inc.w   r5
  9.         dec.w   r4
  10.         bmi.b   _100            ; at least 1 byte
  11.         cmp.b   #' ',(r5.w)
  12.         beq.b   _30
  13.         
  14. _10:    move.b  (r5.w),r0       ; next byte from cmdline
  15.         inc.w   r5
  16.         move.b  r0,(r6.w)
  17.         cmp.b   #',r0
  18.         bne.b   _20
  19.         move.b  (r5.w),r0
  20.         inc.w   r5
  21.         bsr.w   hex2bin
  22.         move.b  (r5.w),r0
  23.         inc.w   r5
  24.         bsr.w   hex2bin
  25. _20:    move.b  #$40,m0
  26.         trap    #$21
  27.         dec.w   r4
  28.         bpl.b   _10
  29. _100:   rts.w
  30. hex2bin:
  31.         or.b    #$20,r0
  32.         sub.b   #'a'-10,r0
  33.         bpl.b   _10
  34.         add.b   #'a'-10-'0',r0
  35. _10:    lsl.b   #4,(r6.w)
  36.         add.b   r0,(r6.w)
  37.         dec.w   r4
  38.         rts.w
  39. buf:   
复制代码
1

评分人数

天的白色影子

TOP

返回列表