. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->CALL和RET指令
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  这是不是书中的错误啊?  [待解决] 回复[ 1次 ]   点击[ 354次 ]  
wsay666
[帖 主]   [ 发表时间:2009-07-21 10:38 ]   [引用]   [回复]   [ top ] 
荣誉值:1
信誉值:8
注册日期:2009-06-27 18:30
10.10 计算N的3次方 
mov ax,bx   ;把bx的传给ax做乘数 
mul bx      ;bx与ax相乘 
mul bx      ;这个不懂   乘数不是ax吗?此时的ax已经变了,还有高位放在了DX中,AX中存储的应该是上次的结果的低位吧,这样bx跟低位乘,结果成什么了? 
 思考了很长时间,总以为这是一个错误.有没有知道的,解答一下啊?
mess
[第1楼]   [ 回复时间:2009-07-23 10:29 ]   [引用]   [回复]   [ top ] 
荣誉值:337
信誉值:0
注册日期:2008-01-01 17:48
这个子程序没问题,是正确的。

这个“ 计算N的3次方 ”的子程序是个简易子程序,是需要限定N的大小的,如果N超过一定范围,就会发生楼主说的问题,结果将会错误。
也就是说N要限定一个范围,保证执行第一次MUL BX后,dx的值为0。

这个和后面要实现的第二个子程序,除法子程序一样,要使这个计算 计算N的M次方 的子程序通用,需要扩展。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved