8051 单片机 设A=40H,执行指令 1000H:MOVC A,@A+PC后,把存储器_______单元内容送入累加
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/06 04:34:14
8051 单片机 设A=40H,执行指令 1000H:MOVC A,@A+PC后,把存储器_______单元内容送入累加器A.
把存储器1041H的单元内容送到A.
解题过程没有什么复杂的,只是有一个陷井而已.
1000H:MOVC A,@A+PC
大家都会认为,执行这条的时候,PC的数值应该是 1000H,其实是错误的,是1001H,因为指令MOVC A,@A+PC本身占有一个字节的地址空间,这条指令的位置才是1000H
再问: 非常感谢你的回答。 不过还有两点疑惑 1.MOVC A,@A+PC 这条指令的意义是什么,我查询资料,是读取ROM中的表单吗? 2.你说PC的数值应该是 1001H,是指这条指令本身“MOVC A,@A+PC”另占一个字节吗?这个和PC寄存器指向下一条指令的地址有关系吗?
再答: 哦,是这样的,我的表达让你产生歧义了。 先回答你第一个问题,那条指令的意义就是查表,如果你接触C语言,你就会知道了,我们在开发程序的过程中,可能会用到很大的常数数组,例如NTC的AD转换或者CRC计算等等,比如: NTC_Table[1024],这个数值非常大,51单片机的RAM通常装不下,所以,我们会这么定义: code unsigned short NTC_Table[1024],这样,那个表格就被放在ROM中,我们调用这个表格的时候,就是用到了那条指令。 第二个问题,是我的表达方式严重有误, 1000H:MOVC A,@A+PC,这个指令占用一个字节,且这个指令地址是 1000H, 但是,你对这条指令进行计算的时候,要把PC当作是1001H,注意,是当作是,其实际PC值在执行这条指令的时候仍然是 1000H,执行完成后才是 1001H,只是这条指令在进行计算的时候,PC值会有一个偏置1,逻辑上看起来好像是 PC=1001H,其实际物理上,PC依旧是1000H 不知道我这样说你明白不,我不知道再怎么表达了。
解题过程没有什么复杂的,只是有一个陷井而已.
1000H:MOVC A,@A+PC
大家都会认为,执行这条的时候,PC的数值应该是 1000H,其实是错误的,是1001H,因为指令MOVC A,@A+PC本身占有一个字节的地址空间,这条指令的位置才是1000H
再问: 非常感谢你的回答。 不过还有两点疑惑 1.MOVC A,@A+PC 这条指令的意义是什么,我查询资料,是读取ROM中的表单吗? 2.你说PC的数值应该是 1001H,是指这条指令本身“MOVC A,@A+PC”另占一个字节吗?这个和PC寄存器指向下一条指令的地址有关系吗?
再答: 哦,是这样的,我的表达让你产生歧义了。 先回答你第一个问题,那条指令的意义就是查表,如果你接触C语言,你就会知道了,我们在开发程序的过程中,可能会用到很大的常数数组,例如NTC的AD转换或者CRC计算等等,比如: NTC_Table[1024],这个数值非常大,51单片机的RAM通常装不下,所以,我们会这么定义: code unsigned short NTC_Table[1024],这样,那个表格就被放在ROM中,我们调用这个表格的时候,就是用到了那条指令。 第二个问题,是我的表达方式严重有误, 1000H:MOVC A,@A+PC,这个指令占用一个字节,且这个指令地址是 1000H, 但是,你对这条指令进行计算的时候,要把PC当作是1001H,注意,是当作是,其实际PC值在执行这条指令的时候仍然是 1000H,执行完成后才是 1001H,只是这条指令在进行计算的时候,PC值会有一个偏置1,逻辑上看起来好像是 PC=1001H,其实际物理上,PC依旧是1000H 不知道我这样说你明白不,我不知道再怎么表达了。
8051 单片机 设A=40H,执行指令 1000H:MOVC A,@A+PC后,把存储器_______单元内容送入累加
单片机乘法指令:假定(A)=50H (B)=0A0H.执行指令 MUL AB 后,累加器A的内容为( ),寄存器B的内容
设(21H)=71H,C=1.指出执行下列指令后内部RAM 21H单元及C标志位的内容为何值.
(A)=50H (B)=0A0H,执行指令 MUL AB 后,累加器A的内容为( ),寄存器B的内容为().
若(R1)=30H,(A)=40H,(30H)=60H,(40H)=08H.试分析执行下列程序段后上述各单元内容的变化.
一些单片机选择题1.单片机上电复位后,PC的内容和SP的内容为 .A.0000H,00H B.0000H,07H C.0
假设片内RAM(20H)=5EH,执行下列指令后,A=?、片内RAM(20H)=?、CY=?
单片机指令中CLR A与MOV A,#00H的区别?
设AX=1000H,经过 NEG AX,NOT AX 执行上述指令后,AX等于什么?
假设SP=62H,(61H)=30H,(62H)=70H,执行下列指令:POP DPH POP DPL后,DPTR的内容
设BX=1234H,DS=2000H,(21234H)=5678H,则指令“LEA SI,[BX]”执行后的结果是SI=
单片机试题解答1.当CPU响应外部中断0后,PC的值是( A )A.0003H B.2000H C.000BH D.30