首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

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

2012-03-07 
困我很久的问题, 问了不少人,没有结局Assembly code.386.model flat,stdcalloption casemap:noneincludema

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

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.……

热点排行