我正在尝试为程序编写代码来计算数组的平均值,但是我得到除以零的错误,我用Google搜索错误,它似乎是一个除数溢出但是我不明白我应该怎么做在我的计划中工作。这是我的代码:
rem #
rem # Specify the JBoss Profiler configuration file to load.
rem #
rem # Default is to not load a JBoss Profiler configuration file.
rem #
rem set "PROFILER=%JBOSS_HOME%\bin\jboss-profiler.properties"
rem #
rem # Specify the location of the Java home directory (it is recommended that
rem # this always be set). If set, then "%JAVA_HOME%\bin\java" will be used as
rem # the Java VM executable; otherwise, "%JAVA%" will be used (see below).
rem #
rem set "JAVA_HOME=C:\opt\jdk1.6.0_23"
set "JAVA_HOME=C:\Program Files\Java\jdk1.8.0_102"
答案 0 :(得分:1)
div bl
将ax
除以bl
,并将商数存储在al
中,余数存储在ah
中。商必须在0x00..0xFF范围内,否则你会得到一个除法溢出。
您在除法之前设置ah
的最后一件事是9.由于ah
是ax
中最重要的部分,这意味着ax
的值为0x9XY(当你进行除法时,其中XY是任何十六进制数字。因此,要得到一个< = 0xFF的商,你必须至少除以10。
解决方法是在分割前ah
或xor ah,ah
清除mov ah,0
。