汇编语言的高级语言特性

作者:凯旋网络来源:凯旋网络
     现在写汇编语言,就象写结构化的高级语言一样,非常的方便。不信?你看看下面写的小程序就知道啦,没有程序跳转,完全的结构化设计。最后还附有 Glow Glove 总结的小篇文章,供大家学习参考。

;-------------------------------------------------------
;例:计算一个数据的阶乘
;若结果较小,可放在 EAX 寄存器
;若结果较小,可放在 EDX:EAX 寄存器
;文件名:7.asm

        .386
        .model flat,stdcall
        option casemap:none


include windows.inc

include masm32.inc
include kernel32.inc
include user32.inc

includelib masm32.lib
includelib kernel32.lib
includelib user32.lib


        .data?
CharOut db 100 dup(?)

        .code

OutEdxEax PROTO :DWord      ;将EDX:EAX中的数据转换成十进制输出字符串形式!

OutEdxEax proc lpString     ;比如:EDX=0,EAX=01234567H,则转换后的字符串为:
                                    -> ''19088743'',0
        mov edi,lpString    ;指向存放结果的地址
        mov esi,lpString

        mov ecx,10          ;转换成十进制
        .while eax!=0 || edx!=0
            push eax    
            mov eax,edx
            xor edx,edx
            div ecx
            mov ebx,eax
            pop eax
            div ecx
            add dl,''0''      
            mov [edi],dl    ;存放结果
            inc edi
            mov edx,ebx
        .endw

        mov BYTE ptr [edi],0;字符串以0为结尾
        dec edi

        .while edi>esi      ;结果前变后,后变前!

&
  • 广告推荐