注册 登录
编程论坛 汇编论坛

用汇编写个简单的火星文转换器

zklhp 发布于 2008-12-11 17:26, 13110 次点击
参考一个javascript的思路写的 很简单 只能做简单替换 大家看看吧

核心代码帖一下 呵呵

程序代码:


.code
;在字符表里查找 找到返回在ax里 找不到返回-1
_Lookup proc uses edi esi ebx _dwInput:DWORD
    xor edi,edi
    mov eax,_dwInput
    .while edi <= dwSrclen
        cmp ax,WORD ptr [szSrc+edi*2]
        .if ZERO?
            mov ax,WORD ptr [szDst+edi*2]
            ret
        .endif
        inc edi
        inc edi
    .endw
    xor eax,eax
    dec eax
    ret
_Lookup endp

;替换函数 因为前面判断过字符串长度 这里就不检查了 呵呵
_Change proc uses edi esi ebx _lpSrc:DWORD,_lpDst:DWORD
    invoke lstrlen,_lpSrc
    ;这里用简单的方法判断输入的合法性 要是奇数个一定有问题 要是偶数也有可能有错
    ;应该是转换成一个统一的编码 比如unicode 不过偶就不写了
    test eax,1    
    .if !ZERO?
        xor eax,eax
        dec eax
        ret
    .endif
    mov ecx,eax
    xor edx,edx
    ;int 3h
    mov esi,_lpSrc
    mov edi,_lpDst
    .while edx<ecx
        mov bx,[esi+edx*2]
        invoke _Lookup,ebx
        .if eax==-1
            mov[edi+edx*2],bx
        .else
            mov [edi+edx*2],ax
        .endif
        inc edx
    .endw
    xor eax,eax
    ret
_Change endp





程序和代码以打包

只有本站会员才能查看附件,请 登录
26 回复
#2
maker3162008-12-12 14:11
楼主 能否解释一下 原理
#3
zklhp2008-12-13 10:07
以下是引用maker316在2008-12-12 14:11的发言:

楼主 能否解释一下 原理


原理就是对输入的文字进行替换 比如 昨-葃  龟-龜

就是这样啊 没什么难的~~~
#4
zklhp2008-12-13 10:08
只有本站会员才能查看附件,请 登录


根据这个js写的 呵呵
#5
你们都要疼我哦2008-12-13 23:51
本来想注释一下,结果一看里面如果 否则如果 否则如果的一大堆,就偷懒了, 有想学习的朋友自己看下版主发的源码, 有不明白的地方提出来大家解决
#6
zklhp2008-12-14 09:59
以下是引用你们都要疼我哦在2008-12-13 23:51的发言:

本来想注释一下,结果一看里面如果 否则如果 否则如果的一大堆,就偷懒了, 有想学习的朋友自己看下版主发的源码, 有不明白的地方提出来大家解决


这个程序写的不晦涩呀  还有什么好注释的

要写注释是解释指令了 呵呵
#7
你们都要疼我哦2008-12-14 13:20
稍微注释一下,也省得有朋友要讲原理,又有朋友说不基础哇. 不过愿意去读别人源代码的人太少了.看似没啥必要了
#8
ANDREPU12009-09-25 16:01
想法很好。不过火星文转换不够彻底啊~~~
#9
xinge10232009-09-27 17:14
我汇编非常基础啊   看你那个看不懂   真应该一句一句的而给信任注释了  
#10
zdixin2009-10-13 11:19
来学习了
#11
TeddyHouse2009-11-12 13:07
关注ing
#12
php5802009-11-19 17:05
辛苦了。学习下 谢谢分享。。
#13
wyyliu1492010-02-23 17:20
用汇编写个简单的火星文转换器
#14
wyyliu1492010-02-23 17:21
用汇编写个简单的火星文转换器
#15
JACKJIE2010-03-15 22:58
   哥们   我的 基础 太差 能你能写  个  把 汉语转化成 英语的  编程吗  谢谢啊
#16
韩明海2010-04-03 23:50
惭愧啊,这个汇编确实没什么难懂的,可是两年不用汇编了,看起来有点费劲,呵呵
#17
BMX2010-04-05 11:30


说实话 想法很垃圾~!!


我最鄙视火星文!!!


#18
lixiangyang2010-05-01 08:40
学习了
没用过
#19
dangerboy2010-05-28 19:15
学习一下
#20
burningstyle2010-07-17 22:12
   楼主,越来越崇拜你了啊,呵呵
每周过来都能看到有新的动态~~~~~~~~~~,自己得努力啊,
能到楼主的水平(看似简单的程序,但不是每个能读懂的人可以写出的,这可能也是哲学里德“否定之否定原理吧”),我就心满意足了
努力!努力!~~~~
#21
cjl小磊2010-07-28 00:49
.
#22
chu1022010-08-13 11:16
#23
jerry0080082010-10-17 18:36
不会汇编呢     顶你一下
#24
outsider_scu2010-10-27 16:27
天。win32汇编。。
#25
wd60732010-12-23 13:46
学过汇编,现在连加法都不会了,惭愧啊
#26
a4099136932010-12-23 17:55
来仰慕各位高手是次要,学习才是主要...
#27
as12000022010-12-29 22:09
楼主,你真强大,
不知能否介绍下学习编程的方法
请教了
1