我爱占星网 我爱占星网
首页
编程
java
php
前端
首页 编程 java php 前端

汇编语言计算阶乘,超过40就输出错误了,请教原因。

CALCULATE:
MOV AL,[SI]
MOV BL,N

MUL BL

ADD AL,DL
MOV BL,0AH
 
DIV BL
 
MOV [SI],AH
 
MOV DL,AL
INC SI
LOOP CALCULATE
DEC N
CMP N,1
JA NEXT

这是因为 40! 的计算结果已经超出了 64 位整数的最大值范围,所以不能用一个 8 位的寄存器 AL 来存储结果,因为 AL 只能存储一个字节大小的数据,最大只能存储 255 的值。因此,对于大于 40 的阶乘,该程序会输出错误结果。

近期文章

  • 如何实现将一个问答页面中后台返回的文字转化为按钮
  • 海康威视录像机添加摄像头
  • 用java开2.2次方根
  • 安装完成后的virtual box 启动不了
  • java.lang.NullPointerException
  • py2neo下载出现的问题
  • 使用pytorch resnet50,每个epoch的loss都一样
  • ==========这个问题太奇怪了,已经抓狂了============
  • 虚幻4.26导出报错
  • ROS仿真,akermann转向小车仿真问题,在运行launch文件后出现了问题:为什么运行不出来
  • Unity安装插件后看不到
  • 连接两个字符,请问最后的while使用是否正确
  • 怎么使用FPGA的TDP(True Dual Port)?
  • 怎样使用python登录win10操作系统
  • 代码总是报错,错误提示在下面
  • shell中遍历文件中的每行数据(含空格)
  • java开发web项目中网页不能跳转
  • simulink仿真问题
  • 权限功能表设计???
  • python字典+列表问题

Copyright ©2022 我爱占星 All Rights Reserved.

浙ICP备2022030071号-1

部分图文来自网络,如有侵犯您的版权,请告诉我们删除

友情链接:代码精华