第1个回答 2009-04-06
首先,要明白程序是由一条条指令组成的,那么单片机到底要执行那一条,总得有人指引吧?所以程序计数器(PC)就是这个人了,它指明了下一条要执行的指令存放的位置(地址).
ROM:(不能随时修改,掉电数据不丢失)
是专门用来存放程序和一些固定数据的存贮器,它写好之后就不能改变的了,只能读取.
RAM:(可以随时修改,但是掉电后数据会丢失)
是单片机运算单元ALU经常光顾的地方,ALU算出的结果随时变化,需要临时存放,RAM是最佳的地方.
(IR):
单片机里面有一个指令译码器,只要你提供指令,它就能作出相应的功能.所以设了一个专门的寄存器来存放从ROM中读取的指令,供译码器译码.
在时钟的驱动下,CPU内的时序控制器会花若干个时钟信号,根据PC所指地址从ROM中读取指令到IR,指令译码器会根椐IR中的指令做出相应的操作,
令PC指向下一个指令存放地址.
第2个回答 2009-04-06
1.以8051来说明一下,RAM在 00H--FFH , MOV A,40H 就是说将RAM 中排在40H这个位置里面存放的数据转存入特殊功能寄存器A中,MOV RO,A 这条指令也是将存放在A中的数据存进RO中!
2.其实A和R0的位置也是在RAM中00H---255H之间,A只是E0H这个位置的另一个名字而已,R0要根据RS1和RS0来确定它的位置!
3,ROM就存放程序的,就好像一排房间,从0排到65536个房间,一上电程序就是根据PC指针数值而指向以这个数值排列值置的房间,一般PC指针都是加一,即指向下一个房间,直到遇到转移指令,就会跳到转移指令给出的标志位置(可以这样理解,一直顺序执行,检到很10个房间时,里面的人叫PC直接去检第20个房间)!就是这样理解的,
第3个回答 2009-04-06
40H在这里是指存储单元的地址,将第40H号地址中存储的数传送到寄存器A当中。如果直接想赋值的话前面加'#'
即MOV A,#40H
MOV R0,A指令就简单多了,直接是将A中的数传给R0就是了
这是跟计算机汇编不同的地方,计算机汇编个人感觉还要烦一点,还是单片机汇编方便