这是gdb中的错误消息吗?

时间:2014-02-15 07:33:37

标签: assembly

我使用nasm和ld编译了一个名为mymath.asm的.asm文件。使用以下编译命令:

nasm -f elf -o mymath.o mymath.asm ld -melf_i386 -o mymath mymath.o

我的代码如下:

描述:将实现以下数学公式:
; [((x-y)+ z)* p] / [(q)],变量为:x,y,p,q和s。(变量类型为int)
;注意:q不能等于零(除以零) ;变量将被硬编码 ;代码以多个步骤实现。

BITS 32

全球_start     section .text     _开始:         mov eax,1;变量x被设置为给定值。         mov ebx,1;变量y被设置为给定值         mov ecx,1;变量z被设置为给定值。         mov edx,1;变量p被设置为给定值。         mov esi,1;变量q被设置为给定值。

        call implementation

_out:
    mov  ebx, eax          ; storing the contents of eax in ebx
    mov  eax, 0x1          ; indicator 0x1 (sys_exit) is being moved to eax
    int 0x80               ; kernel interuppter is called using 128bit, code 


;Input
; eax, ebx, ecx, edx, esi = values for "(eax-ebx+ecx)*edx/esi"
;
;Output
; eax = result of "(eax-ebx+ecx)*edx/esi"

implementation:
        sub eax,ebx            ; eax = eax-ebx, (x-y).
        add eax,ecx        ; eax = eax + ecx (x-y)+z.
        imul edx,eax       ; edx = edx * eax [(x-y)+z]*p.
        mov eax,edx        ; copy content of edx into eax.
        mov edx,0          ; preparing edx for division instruction.
        cmp esi,0          ; comparing esi to 0 (division by zero handling.)
    je _out                ; jump to _out lable.   
        idiv esi           ; (tutorial slide) edx:eax/esi [((x-y)+z)*p]/[(q)].
        ret            ; return.

当我尝试使用gdb命令运行它时: gdb mymath (gdb)r 启动程序:/ home / arsaidim / Desktop / CPSC355 / hw3-submission / mymath [Inferior 1(流程4625)退出,代码为01]

是[Inferior 1(进程4625)退出代码01]指示问题或一般错误?

0 个答案:

没有答案