很是苦恼???、

[复制链接]
2273|4
 楼主| wang1987 发表于 2009-3-29 11:59 | 显示全部楼层 |阅读模式
  最近我在做单片机串口仿真设计,遇到一个怪事,当我的程序从000H开始执行时,是正确的,接受机接受到的数据也正确,当我把ORG 0000H 改为ORG 0100H时,程序就有误,接收机接到的数据出现错误,我也特地的把输入和输出对比了一下,比如我发送0001 000B时,接收到的时1000 1000,
发送0010 0000时,接收到的是1001 0000,
发送0100 0000时,接收到的时1010 0000,
发送1000 0000时,接收到的是1100 0000,
等等,最高位总是1,而低位的1右移了,一位,很时纳闷,难道程序的执行对错还和它存放的位置右关吗?不能理解,我的程序没开中断,一直时顺序执行的,调用的子程序放在主程序的后面,
不明白,希望大家指点一下,谢谢了
computer00 发表于 2009-3-29 12:03 | 显示全部楼层

程序必须要从0开始

mohanwei 发表于 2009-3-29 14:56 | 显示全部楼层

在0000H跳转到0100H就可以了

ORG 0000H
JMP MAIN


ORG 0100H
MAIN:
    ……

当年一开始学单片机的时候,程序开头都跟上面一样。
怀念伟福汇编器……
 楼主| wang1987 发表于 2009-3-30 12:17 | 显示全部楼层

谢谢大家

谢谢大家了,原来如此,我学的还是不扎实啊!
songbangyan 发表于 2009-3-30 12:49 | 显示全部楼层

汇编和C语言的差别

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

本版积分规则

17

主题

87

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部