打印

我的汇编错哪了!!tarjet out of range

[复制链接]
980|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
2973537|  楼主 | 2016-7-12 20:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
第一次写点东西,实在太晕了,好心人帮帮忙吧!
org 000h
ljmp start
org 000bh
ljmp zhong
org 30h
start:mov sp,#30h
mov p3,#11111111b
mov tmod,#01h
mov th0,#high(32207)
mov tl0,#low(32207)
setb tr0
setb et0
setb ea
mov 04h,#1
start1:jnb p3.4,jiaw
jnb p3.3,jian
lcall look
jin:mov a,04h
cjne a,#0,start1
mov 00h,#250
mov 01h,#10
lcall fmcx
clr p3.2
ljmp start1
look:mov 03h,04h
mov a,03h
mov b,#100
div ab
mov dptr,#disptab
movc a,@a+dptr
mov p1,a
setb p3.0
lcall d1
clr p3.0
mov p1,#11111111b
lcall d1
mov a,b
mov b,#10
div ab
mov dptr,#disptab
movc a,@a+dptr
mov p1,a
setb p3.5
lcall d1
clr p3.5
mov p1,#11111111b
lcall d1
mov a,b
mov dptr,#disptab
movc a,@a+dptr
mov p1,a
setb p3.7
lcall d1
clr p3.7
mov p1,#11111111b
lcall d1
ret
fmcx:setb p3.1
lcall d1
cpl p3.1
lcall d1
djnz 00h,fmcx
djnz 01h,fmcx
ret
d1:mov 02h,#83
d2:djnz 02h,d2
ret
jiaw:mov 00h,#50
mov 01h,#2
lcall fmcx
jiaw1:lcall look
jnb p3.4,jiaw1
mov a,#5
add a,04h
jc jiaw2
mov 04h,a
ljmp jin
ret
jiaw2:mov a,#255
mov 04h,a
ljmp jin
ret
jian:mov 00h,#50
mov 01h,#2
lcall fmcx
jian1:lcall look
jnb p3.3,jian1
mov a,04h
clr c
subb a,#5
jc jian2
mov 04h,a
ljmp jin
ret
jian2:mov a,#1
mov 04h,a
ljmp jin
ret
zhong:mov tmod,#01h
mov th0,#high(32207)
mov tl0,#low(32207)
setb tr0
push acc
push psw
inc 05h
mov a,05h
cjne a,#10,cuzan
dec 04h
mov a,04h
cjne a,#0,cuzan
clr tr0
cuzan:pop acc
pop psw
reti
disptab:db 11111010b,00100010b,10111001b,10101011b,01100011b,11001011b,11011011b,10100010b,11111011b,11101011b
end

相关帖子

沙发
teddeng| | 2016-7-12 20:57 | 只看该作者
start1:jnb p3.4,jiaw 这个好像限制跳转地址不超过这条指令地址的前后127字节,你编译完看下这句和jiaw那句地址差多少?jnb p3.3,jian这句也有同样的风险。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
2973537 + 1 很给力!
板凳
2973537|  楼主 | 2016-7-12 22:07 | 只看该作者
多谢 teddeng,我把jiaw和jian上移到了look前面,成功了!

使用特权

评论回复
地板
2973537|  楼主 | 2016-7-12 22:17 | 只看该作者
现在正常显示时,数码管每隔一段时间不该亮的地方会闪一次,感觉是中断引起,但没想明白是怎么回事?

使用特权

评论回复
5
icecut| | 2016-7-13 09:46 | 只看该作者
写短程序.慢慢写长.不知道问题就分块测试

使用特权

评论回复
6
2973537|  楼主 | 2016-7-13 13:16 | 只看该作者
我是4兆晶振,0.1秒中断一次,十次后减一,为啥我等很久才减一呢?

使用特权

评论回复
7
teddeng| | 2016-7-13 23:10 | 只看该作者
2973537 发表于 2016-7-13 13:16
我是4兆晶振,0.1秒中断一次,十次后减一,为啥我等很久才减一呢?

主要靠自己慢慢找。论坛要碰,正好人家有过这经历,又看到了,又不费事,才会回一下,毕竟是义务劳动:)

使用特权

评论回复
评分
参与人数 1威望 +6 收起 理由
玄德 + 6 说得实在!
8
2973537|  楼主 | 2016-7-13 23:23 | 只看该作者
刚刚把中断单独试了下,明白了,05h到十后没有置零。

使用特权

评论回复
9
2973537|  楼主 | 2016-7-14 00:13 | 只看该作者
本帖最后由 2973537 于 2016-7-14 00:16 编辑

org 000h
ljmp start
org 000bh
ljmp zhong
org 30h
start:mov sp,#30h
mov 05h,#00h
mov 06h,#00h
mov p3,#11111111b
mov tmod,#01h
mov th0,#high(32207)
mov tl0,#low(32207)
setb tr0
setb et0
setb ea
mov 04h,#1
start1:jnb p3.4,jiaw
jnb p3.3,jian
lcall look
jin:mov a,04h
cjne a,#0,start1
mov 00h,#250
mov 01h,#30
lcall fmcx
clr p3.2
ljmp start1
jiaw:mov 00h,#50
mov 01h,#2
lcall fmcx
jiaw1:lcall look
jnb p3.4,jiaw1
mov a,#5
add a,04h
jc jiaw2
mov 04h,a
ljmp jin
ret
jiaw2:mov a,#255
mov 04h,a
ljmp jin
ret
jian:mov 00h,#50
mov 01h,#2
lcall fmcx
jian1:lcall look
jnb p3.3,jian1
mov a,04h
clr c
subb a,#5
jc jian2
mov 04h,a
ljmp jin
ret
jian2:mov a,#1
mov 04h,a
ljmp jin
ret
look:mov 03h,04h
mov a,03h
mov b,#100
div ab
mov dptr,#disptab
movc a,@a+dptr
mov p1,a
setb p3.0
lcall d1
clr p3.0
mov p1,#11111111b
lcall d1
mov a,b
mov b,#10
div ab
mov dptr,#disptab
movc a,@a+dptr
mov p1,a
setb p3.5
lcall d1
clr p3.5
mov p1,#11111111b
lcall d1
mov a,b
mov dptr,#disptab
movc a,@a+dptr
mov p1,a
setb p3.7
lcall d1
clr p3.7
mov p1,#11111111b
lcall d1
ret
fmcx:setb p3.1
lcall d1
cpl p3.1
lcall d1
djnz 00h,fmcx
djnz 01h,fmcx
ret
d1:mov 02h,#41
d2:djnz 02h,d2
ret
zhong:mov tmod,#01h
mov th0,#high(32207)
mov tl0,#low(32207)
setb tr0
push acc
push psw
inc 05h
mov a,05h
cjne a,#10,cuzan
mov 05h,#00h
inc 06h
mov a,06h
cjne a,#60,cuzan
mov 06h,#00h
dec 04h
mov a,04h
cjne a,#0,cuzan
clr tr0
cuzan:pop acc
pop psw
reti
disptab:db 11111010b,00100010b,10111001b,10101011b,01100011b,11001011b,11011011b,10100010b,11111011b,11101011b
end改成这样了,可以每分钟倒计时了,但是数码管有鬼影,

使用特权

评论回复
10
kk118a| | 2016-7-14 17:23 | 只看该作者
发完数据给个00000000b

使用特权

评论回复
11
2973537|  楼主 | 2016-7-14 23:31 | 只看该作者
我给的11111111b,是想省点电的,给0的话上拉电阻会全电压加上去,

使用特权

评论回复
12
2973537|  楼主 | 2016-7-14 23:35 | 只看该作者
知道鬼影的原因了,我中断时acc和psw顺序搞反了,当中断返回显示时a中内容改变了,所以会乱闪一次。

使用特权

评论回复
13
xxdcq| | 2016-7-15 10:57 | 只看该作者
本帖最后由 xxdcq 于 2016-7-15 10:59 编辑
teddeng 发表于 2016-7-12 20:57
start1:jnb p3.4,jiaw 这个好像限制跳转地址不超过这条指令地址的前后127字节,你编译完看下这句和jiaw那句 ...

这种相对跳转如果改不了地址可以在中间加跳板,咱常这样干,另外汇编里咱一般都是用ljmp lcall等绝对跳转,几乎不用sjmp ajmp acall等,保险些

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

20

帖子

1

粉丝