汇编:细分falut

时间:2017-03-29 14:02:11

标签: assembly att

我在汇编处的代码中添加了两个数字:

.code32
.data

liczba1: .long 0x00000001,0x00000001,0x00000001,0x00000001
liczba2: .long 0x00000001,0x00000001,0x00000001,0x00000001

.text

.global main

main:

    movl $3, %ecx
    clc

petla:
    cmpl $0, %ecx
    je ostatnia
    movl liczba1(,%ecx,4), %eax 
    movl liczba2(,%ecx,4), %ebx 
    adcl %eax,%ebx
    pushl %ebx
    decl %ecx
    jmp petla

ostatnia:
    movl liczba1(,%edi,4), %eax
    movl liczba2(,%edi,4), %ebx 
    adcl %eax,%ebx
    pushl %ebx
    movl $0, %eax
    movl $0, %ebx
    adcl %eax,%ebx
    pushl %ebx
    jmp koniec

koniec:
    movl $0, %eax
    movl $1, %ebx
    int $0x80

当我在gdb中运行它时,我得到: 程序接收信号SIGSEGV,分段故障。 petla()

中的0x00000000004000cc

有人知道,为什么?

0 个答案:

没有答案