浮点异常错误(核心转储)

时间:2016-01-16 19:13:08

标签: linux assembly x86 nasm

global _start
section .data
    var dq 12494F04A6344129h    
    msg db "The number of times 4 present in the given number"
    len equ $-msg 
    novar db 00
section .bss

section .text
    mov dl,0Ah
    mov cl,10

_start  :
    mov rsi,var
    up: mov al,byte ptr [rsi]
        mov ah,00
        div dl
        cmp ah,04
        je dn
        jne dn1
    dn: inc byte[novar]
    dn1:    inc rsi
        dec cl
        jne up
        jmp exit

exit:   mov eax,4
    mov ebx,1
    mov ecx,msg
    mov edx,len
    int 80h

    mov eax,4
    mov ebx,1
    mov ecx,novar
    mov edx,1
    int 80h

    mov eax,1
    mov ebx,0
    int 80h

1 个答案:

答案 0 :(得分:1)

Nasm没有使用" ptr" - 那甚至不会聚集。

前两行 - 在dl标签之上 - 从不执行,因此这些寄存器永远不会被初始化。这可能是引起异常的原因。 len可能为零!

'0'很好 - 它是等同的,而不是变量。

您可能希望在打印之前将字符novar添加到{{1}}。

这些对我来说都没什么用。你确定这是你要回答的问题吗,@Shubham Satpute?