Nasm 简单汇编程序算术错误

Nasm 简单汇编程序算术错误,nasm,Nasm,我试图编写一个程序,将16位数字“broj”的数字相加,并将结果存储在一个名为“rez”的位置 这是我的密码: SECTION .data broj DW 25326 SECTION .bss rez RESW 1 SECTION .text global _start _start: MOV CX, 10 MOV AX,[broj] skok: DIV CX --> result in AX, remainder in DX ADD [rez],DX MOV BX,AX --

我试图编写一个程序,将16位数字“broj”的数字相加,并将结果存储在一个名为“rez”的位置

这是我的密码:

SECTION .data

broj DW 25326

SECTION .bss

rez RESW 1

SECTION .text
global _start
_start:

MOV CX, 10
MOV AX,[broj]
skok: 
DIV CX --> result in AX, remainder in DX
ADD [rez],DX
MOV BX,AX -->move the result of the last division
JNZ skok

MOV EAX,1
MOV EBX,0
int 80h
这产生了一个“算术错误”,然而,我的汇编调试技能是有限的。
我在Mint下使用了kdbg。

DIV-CX
DX:AX
中的32位值除以
CX
。因此,您需要在
DIV
之前清除
DX
(例如
XOR-DX,DX
),以避免得到大于16位的商。

我应该更仔细地阅读指令集!:)非常感谢。