智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 6277|回复: 16
打印 上一主题 下一主题

汇编问题,请教高手

[复制链接]

0

主题

50

帖子

0

精华

高级会员

Rank: 4

积分
674
威望
370
贡献
238
兑换币
22
注册时间
2009-2-15
在线时间
33 小时
跳转到指定楼层
1#
发表于 2009-5-16 10:39:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
C语言下定义一数组byte  b_start[ROW];
                   一变量 byte   i;   
然后用汇编给每个单元赋值255 汇编程序如下
loop1:      LDX b_start  或者是  LDX #b_start  
               LDAA #255
               STAA i,X
               INC i
               LDAA i
               CMPA #ROW
               BLO loop1       //init over
上述程序达不到我要的效果,我又找不出有什么问题
有没有董汇编的高手指点一下

0

主题

1

帖子

0

精华

注册会员

Rank: 2

积分
123
威望
171
贡献
22
兑换币
0
注册时间
2009-9-24
在线时间
0 小时
17#
发表于 2009-9-24 11:26:53 | 只看该作者
好东西
回复 支持 反对

使用道具 举报

0

主题

50

帖子

0

精华

高级会员

Rank: 4

积分
674
威望
370
贡献
238
兑换币
22
注册时间
2009-2-15
在线时间
33 小时
16#
 楼主| 发表于 2009-6-8 12:21:19 | 只看该作者
15# etch
啊 这么详细的
真是太感谢了
回复 支持 反对

使用道具 举报

0

主题

24

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
401
威望
252
贡献
71
兑换币
30
注册时间
2008-7-3
在线时间
39 小时
15#
发表于 2009-5-28 07:00:01 | 只看该作者
ldd   #65535
std   b_start
std   b_start
:2
.
.
.
std   b_start:8192
回复 支持 反对

使用道具 举报

0

主题

24

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
401
威望
252
贡献
71
兑换币
30
注册时间
2008-7-3
在线时间
39 小时
14#
发表于 2009-5-28 06:52:10 | 只看该作者
本帖最后由 etch 于 2009-5-28 07:15 编辑

回复 支持 反对

使用道具 举报

0

主题

24

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
401
威望
252
贡献
71
兑换币
30
注册时间
2008-7-3
在线时间
39 小时
13#
发表于 2009-5-28 06:40:18 | 只看该作者
#define default (0xff)
#define ROW    (0x1fff)
unsigned char iterator=0,current=0,b_start[ROW];         
main(){iterator=0;current=0;b_start[0]=default;
                      //clr     #iterator
                      //clr     #current
                      //ldab  #default
                      //stab  #b_start
for(;iterator<(ROW);){b_start[current]=default;
                      //bra   *+31 ;abs = 002d
                      //ldab  #current;//lsld;//tfr     d,x  
                      //ldaa  #default                   
                      //ldy    #b_start,x
                      //ldab  #default
                      //stab  0,y
current++;iterator++;
                      //ldx    #current
                      //inx   
                      //stx    #current
                      //ldx    #iterator
                      //inx   
                      //stx    #iterator
                      //ldab  #iterator;//clra  
                      //cpd   #ROW
                      //blt   *-37 ;abs = 0010
};
}
回复 支持 反对

使用道具 举报

0

主题

24

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
401
威望
252
贡献
71
兑换币
30
注册时间
2008-7-3
在线时间
39 小时
12#
发表于 2009-5-27 14:18:51 | 只看该作者
#define tmp(i) (tmp##i)
#define ROW    (0x1fff)
unsigned char*iterator=0,*current=0,*b_start[ROW];         
void main(void){*iterator=0;*current=0;*b_start[0]=255;
//CLR   [iterator,PCR]
//CLR   [current,PCR]
//LDAB  #255
//STAB  [b_start,PCR]
for(;*iterator<(ROW);){*b_start[*current]=255;
//BRA   *+31 ;abs = 002d
//LDAB  [current,PCR]
//LSLD  
//TFR   D,X
//LDY   b_start,X
//LDAB  #255
//STAB  0,Y
*current++;*iterator++;
//LDX   current
//INX   
//STX   current
//LDX   iterator
//INX   
//STX   iterator
//LDAB  [iterator,PCR]
//CLRA  
//CPD   #8191
//BLT   *-37 ;abs = 0010
};
}
//RTS
回复 支持 反对

使用道具 举报

0

主题

50

帖子

0

精华

高级会员

Rank: 4

积分
674
威望
370
贡献
238
兑换币
22
注册时间
2009-2-15
在线时间
33 小时
11#
 楼主| 发表于 2009-5-18 18:36:37 | 只看该作者
10# azure

我们先用C语言写的处理程序 在整个程序里没有问题可以运行
就是处理的部分换成汇编就不行了  这样看来不是中断口的问题
堆栈溢出倒是有可能
因为一直有SP 警报的
回复 支持 反对

使用道具 举报

0

主题

10

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
228
QQ
威望
180
贡献
22
兑换币
0
注册时间
2008-9-17
在线时间
13 小时
10#
发表于 2009-5-18 12:43:22 | 只看该作者
自动停止的问题开始时我也遇到过,我也不知道为什么,最初我采集图像只用一个外部中断IRQ,配合其它的一些管脚来实现采集,这个方案浪费了我很多时间,我左看右看都没有问题(可能是我没查出来),最让人吐血的就是单片机采了一幅就停止运行了,而且采到的图像还是严重错位的(非一般人所能想像的那种错位),后来我知道图像错位的原因是IRQ中断ISR在无阻循环的执行,自动停止我猜想可能是IRQ ISR无限循环执行导致堆栈溢出,个人猜测,不必深究。后来改用timer的中断才实现正常采集。如果你用的是IRQ中断的话,建议你改用其它管脚的中断试试。(经验之谈,希望有用)
回复 支持 反对

使用道具 举报

0

主题

50

帖子

0

精华

高级会员

Rank: 4

积分
674
威望
370
贡献
238
兑换币
22
注册时间
2009-2-15
在线时间
33 小时
9#
 楼主| 发表于 2009-5-18 08:17:04 | 只看该作者
6# azure
看来哥们你真的是高手啊
这只是我们图像处理程序的一部分
我们把汇编的图像处理嵌入到整个大程序的时候编译不会报错
但是执行的时候会自动停止
这是怎么回事
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-28 06:05 , Processed in 0.415261 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表