当前位置: 代码迷 >> 汇编语言 >> 困小弟我很久的有关问题, 问了不少人,没有结局
  详细解决方案

困小弟我很久的有关问题, 问了不少人,没有结局

热度:2423   发布时间:2013-02-26 00:00:00.0
困我很久的问题, 问了不少人,没有结局
Assembly code
        .386        .model flat,stdcall        option casemap:noneinclude        masm32.incincludelib      masm32.libinclude        kernel32.incincludelib    kernel32.libinclude msvcrt.incincludelib msvcrt.lib.datadArray dword 12,23,34; 定义整形数组countArray=($-dArray)/4 ;结果为3szPrint byte'数组元素为:%d',0    .codemain proc        ;打印数组    mov edi,offset dArray; 地址    mov ecx,countArray; 保存循环次数    L1:        mov eax,[edi]    invoke crt_printf, addr szPrint,eax;    inc edi; 下一个元素    loop L1            invoke ExitProcess,0main endpend main



死循环,,,,,,,,

为什么是死循环




------解决方案--------------------------------------------------------
应该是 ctr_printf() 函数破坏了 ecx 的内容吧。edx/eax/ecx 在调用函数时,需要接着使用的话,都需要自己进行保护的。
------解决方案--------------------------------------------------------
探讨
Assembly code


.386
.model flat,stdcall
option casemap:none

include masm32.inc
includelib masm32.lib
include kernel32.inc
includelib kernel32.……
  相关解决方案