【问题标题】:error of floating point exception(core dumped)浮点异常错误(核心转储)
【发布时间】:2016-01-17 20:58:03
【问题描述】:
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

【问题讨论】:

  • 您能否提供更多关于这发生在何处以及如何发生的背景信息?
  • 您是否尝试过使用调试器?请注意,如果 exit 是下一条指令上的标签,则不需要 jmp exit。你不需要mov edx, [len] 而不是mov edx, len 吗?您希望edx 是存储在len 的值还是len 本身的值(标签的地址)?

标签: linux assembly x86 nasm


【解决方案1】:

Nasm 不使用“ptr”——它甚至不会组装。

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

len 很好 - 它是一个等式,而不是一个变量。

您可能希望在打印之前将字符 '0' 添加到 novar

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

【讨论】:

    猜你喜欢
    • 2021-11-17
    • 2011-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多