违反NASM汇编代码的段

问题描述

我正在用Linux x86_64学习Assembly,并用nasm和ld编译我的代码。这次,我想秘密地打印一组数字,将其设置为名为“ Llista”的数组。使用./printLlista编译,链接并执行后,终端将向我显示以下内容:

The list is: 1�Violació de segment (s'ha bolcat la memòria)

Mi的意图是在C中做这样的事情:

程序printLlista.asm是这样的:

; printLlista.asm 
; Print a list of values from an array.
; Compiled : nasm -f elf printLlista.asm
; Linked : ld -m elf_i386 printLlista.o -o printLlista
; Execute : ./printLlista

section      .data 
    Llista db 1,2,-3,4
    len_Llista equ $ - Llista
    res_Llista db 0
    Missatge db "The list is: ",0h
    len_Missatge equ $ - Missatge

section      .text 
global  _start

    _start:
    print_Missatge: 
 mov     edx,len_Missatge
 mov     ecx,Missatge
 mov     ebx,1
 mov     eax,4
 int     80h

   get_first_item: 
 mov     esi,0
 mov     ebx,0
 mov     ecx,Llista

    search_Llista:
 mov     ebx,[ecx]
 add     ebx,'0'
 mov     [res_Llista],ebx

    print_items:
 mov     edx,len_Llista
 mov     ecx,res_Llista
 mov     ebx,4
 int     80h

   test_if_loop: 
 mov     ecx,1
 inc     esi
 cmp     esi,len_Llista
 jl      search_Llista

    exit:
 mov     ebx,0
 mov     eax,1
 int     80h 

我不知道问题出在哪里,希望您能。预先感谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...