我在nasm中为了学习目的写了一个小的可分性程序但是每当我尝试运行它时我都会得到“浮点异常”。这是代码:
segment .data
x dw 7
y dw 2
segment .bss
num resb 2
segment .text
global _start
_start:
mov cx, 1
mov bx, 0
label1:
mov ax, cx
xor bx, bx
xor edx, edx
mov bx, word [x]
div bx
cmp edx, 0
jne next
mov ax, cx
xor bx, bx
xor edx, edx
mov bx, word [y]
div dx
cmp edx, 0
jne next
mov [num], cx
mov eax, 4
mov ebx, 1
mov ecx, num
mov edx, 2
int 80h
add bx, 1
next:
add cx, 1
cmp cx, 100
jle label1
exit:
mov eax, 1
xor ebx, ebx
int 80h
如果有人能指出我做错了什么,我将不胜感激!
答案 0 :(得分:0)
您的代码中有这一行:
div dx
显然除以dx
是一个坏主意,因为dx
也是红利的一部分,并且您在分割之前已将dx
正确设置为零。我认为这是一个错字,你真的打算写
div bx