题库 软件开发 题目列表 func:         mov     ecx, eax         lea...
问答题
func:
        mov     ecx, eax
        lea     edx, [ecx+1]
loop:
        mov     al, [ecx]
        inc     ecx
        test    al, al
        jnz     loop
        sub     ecx, edx
        mov     eax, ecx
        ret


reverse:
        mov     ebp, eax ;eax为输入的参数1
        mov     edi, edx ;edx为输入的参数2
        mov     esi, ebx ;ebx为输入的参数3

        mov     eax, ebp
        call    func
        push    eax

        xor     ebx, ebx
        xor     ecx, ecx
        xor     ebp, ebp
        jmp     label4

label1:
        lea     eax, [ebp*4]
        add     eax, edi
        mov     eax, [eax]
        cmp     eax, ecx
        jbe     label2

        mov     ebx, ecx
        mov     ecx, eax
        jmp     label3

label2:
        cmp     eax, ebx
        jbe     label3

        mov     ebx, eax

label3:
        inc     ebp

label4:
        cmp     ebp, esi
        jb      label1
        pop     eax
        add     eax, ebx
        add     eax, ecx
        ret

以上为汇编码的两个函数func和reverse,分析这两个函数并编写等价的C代码函数
题目信息
校招真题
-
正确率
0
评论
18
点击