求助:mov指令的一个问题

lzxcstf   2005-5-20 11:33 楼主
MOV #1234H,&TXBUF0
这条命令执行后,TXBUF0里头的数据是12H还是34H啊,,还是根本不能执行?因为TXBUF只能接收8位的
如果是把1234H发给&200H或者&201H,这个我知道是结果是怎么样的
但是上面那个是怎么执行的啊?

回复评论 (4)

根本就不可能运行!
点赞  2005-5-20 12:47
例子上有这样的c程序
char MST_DATA=0×00
……
TXBUF0=MST_DATA
……
是不是不能直接给TXBUF赋值?
还是只能赋8位的,像这样子写:MOV.B #12H,&TXBUF0??
点赞  2005-5-20 13:01
对于一些字节访问的特殊功能寄存器,如TXBUF0、P1OUT等,只能是字节访问,否则,首先,编译就通不过的。而对SRAM而言,尽管是定义的变量是字节,但操作时是按具体的指令来定,如果是字节操作,那定义的变量就是字节,如果是字操作,那定义的变量就高、低字节存放数据。比如,MOV #1234H,200H,执行结果是:200H=34H;201H=12H
MOV #1234H,201H,执行结果是:200H=34H;201H=12H
点赞  2005-5-20 13:32
OK,谢谢斑竹和楼上的XD
程序调通了,MOV.B #12H,&TXBUF0,这个语句没问题
点赞  2005-5-20 14:39
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复