Assembly 使用32位汇编打印字母/数字数组

Assembly 使用32位汇编打印字母/数字数组,assembly,x86,printf,ollydbg,Assembly,X86,Printf,Ollydbg,);正在尝试打印数组中的所有字母,但不起作用 litere times 255 db 0 ;letters array dim_sir_litere db 0 ;this will tell me how many letters i have in my array mov [dim_sir_litere],EDI ; the length of letters array );在这个循环中,我想打印litere数组中的所有字符 mov ECX,[dim_sir_litere] ;

);正在尝试打印数组中的所有字母,但不起作用

 litere times 255 db 0 ;letters array
 dim_sir_litere db 0 ;this will tell me how many letters i have in my array

mov [dim_sir_litere],EDI   ; the length of letters array
);在这个循环中,我想打印litere数组中的所有字符

mov ECX,[dim_sir_litere] ;this will have the lenght of my letters array

mov ESI,0  ;this will be the index that i will use 
实际的问题是,在我运行代码之后,它没有打印任何东西,也没有打印任何东西 我使用此代码将字母放入数组:

       afisare_litere:
                   push ECX ;keep ECX value
                   mov EAX,dword [litere+ESI] ;put in EAX the value from ESI index 
                   inc ESI ;mov index to the next position
                   push dword EAX  
                   push dword format_caracter ;the format is %c
                   call [printf]
                   add esp,4*2
                   pop ECX
         loop afisare_litere

一个明显的问题是
literedb0
只保留1字节的空间,但是
[litere+EBX]
可以访问该空间之外的空间。除此之外,这不是一个(不是很小的)问题,“不工作”也不是问题的充分描述,并且您没有确切解释它应该做什么。此外,如果这是NASM,
'\n'
是一个反斜杠和n。C转义仅在backticks`i used and litere times 255 db 0中解释,但使用相同的结果使用调试器,和/或将其简化为实际的几个指令,而这些指令并没有达到预期的效果。(例如,从一个固定字符串中获取输入,这样您就可以删除fread部分)好的,我会尝试一下,谢谢,一个明显的问题是
literedb0
只保留1字节的空间,但是
[litere+EBX]
可以访问该空间之外的空间。除此之外,这不是一个(不是很小的)问题,“不工作”也不是问题的充分描述,并且您没有确切解释它应该做什么。此外,如果这是NASM,
'\n'
是一个反斜杠和n。C转义仅在backticks`i used and litere times 255 db 0中解释,但使用相同的结果使用调试器,和/或将其简化为实际的几个指令,而这些指令并没有达到预期的效果。(例如,从固定字符串中获取输入,以便您可以删除fread部分)好的,我会尝试一下,谢谢
mov [litere+EBX],AL