跟汇编携手到老!

在学习与实践中进步。
随笔 - 0, 文章 - 4, 评论 - 0, 引用 - 0
数据加载中……

我的第3个win32汇编程序

.386
.model flat, stdcall
option casemap : none
includelib msvcrt.lib

printf    PROTO C :dword, :vararg

.data
showNum    byte    '%d', 0
newLine    byte    0ah, 0
iArray    dword    1, 2, 3, 4
COUNT    EQU     ($ - iArray) / 4

.code
start    proc
     push    ebx
     push    esi
     push    eax
     
     mov     esi,    0
     mov     ebx,    esp
L1:     
     push    esi
     cmp     esi,    COUNT
     jz     endShow
     xor     esi,    esi
L2: 
     cmp     [ebx - 4],   esi
     jz     addEsiL1
     push    esi
     xor     esi,    esi
L3:
     cmp     [ebx - 4],   esi
     jz     addEsiL2
     cmp     [ebx - 8],   esi
     jz     addEsiL2
     mov     eax,    [ebx - 4]
     mov     eax,    iArray[eax * 4]
     invoke    printf,    offset showNum, eax 
     mov     eax,    [ebx - 8]
     mov     eax,    iArray[eax * 4]
     invoke    printf,    offset showNum, eax 
     mov     eax,    iArray[esi * 4]
     invoke    printf,    offset showNum, eax
     invoke    printf,    offset newLine      
     inc     esi
     cmp     esi,    COUNT
     jnz     L3
     pop     esi
     inc     esi
     jmp     L2     
addEsiL1:    
     inc     esi
     cmp     esi,    COUNT
     jnz     L2
     jmp     resetL1
addEsiL2:    
     inc     esi
     cmp     esi,    COUNT
     jnz     L3
     jmp     resetL2
resetL1:    
     pop     esi
     inc     esi
     cmp     esi,    COUNT
     jz     endShow
     jmp     L1
resetL2:    
     pop     esi
     inc     esi
     cmp     esi,    COUNT
     jz     resetL1
     jmp     L2
endShow:
     pop     eax
     pop     esi
     pop     ebx
     ret
start    endp
end     start

posted on 2006-12-10 12:10 仰望宁静的星空! 阅读(141) 评论(0)  编辑 收藏 引用 所属分类: ASM

只有注册用户登录后才能发表评论。