| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5314 人关注过本帖
标题:这是一个Fibonacci系列的程序,汇编报错,为什么呢?
只看楼主 加入收藏
sophiawu100
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2016-2-4
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:5 
这是一个Fibonacci系列的程序,汇编报错,为什么呢?
TITLE B0705fibonacci
.MODEL SMALL
.STACK 64
.DATA
  DATA_TBL 1,1,0,0,0,0,0,0,0,0,0,0
.CODE
B07MAIN PROC FAR
 MOV AX,@data
 MOV DS,AX
 MOV ES,AX
 MOV CX,12
 MOV IP,2
L1:
   MOV AX,DATA_TBL[IP-2]
   MOV BX,DATA_TBL[IP-1]
   MOV DATA_TBL[IP],AX+BX
   INC IP
   LOOP L1
   
   MOV AX,4c00h
   INT 21h
 B07MAIN ENDP
   END B07MAIN
图片附件: 游客没有浏览图片的权限,请 登录注册


这是一个Fibonacci系列的程序,汇编报错,为什么呢?
2016-03-26 12:55
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:0 
没有定义ip。
在x86里,ip作为指令指针寄存器是不能直接赋值的,只在jmp、call、ret等指令执行后接受改变。我猜想你是要使用di寄存器作为指针访问数据块(好像数组),你试着改成di看看(不过目测你算法好像错误,我没有masm试验)

能编个毛线衣吗?
2016-03-26 13:26
sophiawu100
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2016-2-4
收藏
得分:0 
TITLE B0705fibonacci
.MODEL SMALL
.STACK 64
.DATA
  DATA_TBL DB 1,1,0,0,0,0,0,0,0,0,0,0
.CODE
B07MAIN PROC FAR
 MOV AX,@data
 MOV DS,AX
 MOV ES,AX
 MOV CX,12
 MOV SI,2
L1:
   MOV AL,DATA_TBL[SI-2]
   MOV BL,DATA_TBL[SI-1]
   ADD AL,BL
   MOV DATA_TBL[SI],AL
   INC SI
   LOOP L1
   
   MOV AX,4c00h
   INT 21h
 B07MAIN ENDP
   END B07MAIN

改好了,可以运行

[此贴子已经被作者于2016-3-26 13:32编辑过]

2016-03-26 13:29
sophiawu100
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2016-2-4
收藏
得分:0 
三个错误:
1、DATA_TBL没类型DB
2、ip不能用在MOV指令中
3、AX+BX这种写法不存在
2016-03-26 13:32
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:20 
嗯,应该是si寄存器,si寄存器默认段寄存器是数据段ds,而di默认段寄存器是es。
收到的鲜花
  • sophiawu1002016-03-26 14:27 送鲜花  3朵  

能编个毛线衣吗?
2016-03-26 13:34
zhulei1978
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:53
帖 子:1351
专家分:1200
注 册:2006-12-17
收藏
得分:0 
最近研究汇编的mm好像有点少

其实我就是改变社会风气,提高少女素质,刺激电影市道,提高年轻人内涵,玉树临风,风度翩翩的整蛊专家,我名叫古晶,英文名叫JingKoo!
2016-03-30 05:58
快速回复:这是一个Fibonacci系列的程序,汇编报错,为什么呢?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018483 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved