刚接触,30H-5FH已有数据
汇编语言
求单片机简单编程:将内部RAM中30H-5FH中的奇数传送到90H开始的内部RAM中去?
答案:2 悬赏:0 手机版
解决时间 2021-12-28 15:28
- 提问者网友:愿为果
- 2021-12-28 09:17
最佳答案
- 五星知识达人网友:山有枢
- 2021-12-28 09:54
MOV R0,#30H ;将内部待处理数据RAM地址送入R0中
MOV R1,#90H ;将存放处理后数据RAM地址送入R1中
LOOP:
MOV A,#01H ;将数据01H送入A中
ANL A ,@R0 ;将R0所指向的数据和A中数据相与,结果存入A中
JNZ LP1 ;如果A中不为1说明此数为偶数,不做处理。
MOV A,@R0 ;将R0所指向的数据送入A中
MOV @R1, A;将A中数据送入R1所指向的地址
INC R1
LP1:
INC R0
CJNE R0,#60H,LOOP; 如果R0中数据不等于60H则转移继续比较
以上只是实现此功能的一种方法,还有更多的方法,只需对汇编语言加以灵活运用即可,关键在于算法,此方法算法是:二进制中偶数的最后一位(最低位)必然为0,而奇数的最后一位必然为1。因此通过筛选出最后-位,再判定最后一位进行是1是0即可选出奇数。
MOV R1,#90H ;将存放处理后数据RAM地址送入R1中
LOOP:
MOV A,#01H ;将数据01H送入A中
ANL A ,@R0 ;将R0所指向的数据和A中数据相与,结果存入A中
JNZ LP1 ;如果A中不为1说明此数为偶数,不做处理。
MOV A,@R0 ;将R0所指向的数据送入A中
MOV @R1, A;将A中数据送入R1所指向的地址
INC R1
LP1:
INC R0
CJNE R0,#60H,LOOP; 如果R0中数据不等于60H则转移继续比较
以上只是实现此功能的一种方法,还有更多的方法,只需对汇编语言加以灵活运用即可,关键在于算法,此方法算法是:二进制中偶数的最后一位(最低位)必然为0,而奇数的最后一位必然为1。因此通过筛选出最后-位,再判定最后一位进行是1是0即可选出奇数。
全部回答
- 1楼网友:举杯邀酒敬孤独
- 2021-12-28 10:35
虽然我很聪明,但这么说真的难到我了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯