最新帖子 精华区 社区服务 会员列表 统计排行
主题 : 自制的简单的火星文转换器
sweet230 离线
级别: 新手上路
显示用户信息 
0  发表于: 2009-11-10 22:03

自制的简单的火星文转换器

购买流程:注册论坛账号------->在线充值购买论坛交易币------->下载毕业设计将直接扣除交易币
     按照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

本文来自超越技术(http://www.it3456.com/)原文链接:http://www.it3456.com/online/program/164.html


快速回复 顶端
内容
HTML 代码不可用
使用签名
Wind Code自动转换

验证问题:本站域名是什么?答案:cccbbs.net  正确答案:cccbbs.net
按"Ctrl+Enter"直接提交