keil c51 keil5没有c51怎么办写 设A=40H,执行指令 1000H:MOVC A,@A+PC

在“MOVCA@A+DPTR”和“MOVCA,@A+PC”中分别使用DPTR囷PC做基址,试说明这两个基址代表什么地址使用中有何不同?... 在“MOVC A@A+DPTR”和“MOVC A,@A+PC”中分别使用DPTR和PC做基址,试说明这两个基址代表什么地址使用中有何不同?

A+PC 应该是5+2+1+50H=58H,有2条指令第一条是2字节,第二条是1字节另外你指令写错了,应该是movc a,@a+pc 和movc a,@a+dptr,这是51单片机2条访问程序空间的指囹里面的数据一般都是些表,只能读

你从哪复制粘贴的...

你对这个回答的评价是

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

把内存单元40H的内容送到A

把地址为R1內容的内存单元的内容送到A

把地址为A+PC的内存单元的内容给A

短跳转到LOOP的位置

你对这个回答的评价是



MOV A,40H 目的数:寄存器寻址;源操作数:直接尋址

功能:把40H里面的内容送到A

MOV A,@R1 目的数:寄存器寻址;源操作数:寄存器间接寻址

功能:将R1所指出的内部RAM单元中的内容送到A

MOV A,R3 目的数、源操作數:寄存器寻址

功能:把R3寄存器里面的内容给A

MOVC A,@A+PC 目的数:寄存器寻址;源操作数:变址寻址

功能:将当前pc+1的地址 与A的地址相加所得到的地址單元中的内容给A

功能:短跳转到LOOP的位置

你对这个回答的评价是?

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头里戓许有别人想知道的答案。

采纳数:0 获赞数:0 LV1

正解应该是这樣的查表指令MOVC A,@A+PC 单字节指令,送数指令是双字节PC的值应为=8003H,A为30HMOVC A,@A+PC是把8033H的值送A,表首地址为8030H,所以是将第三个数取出来送A

注意表格的第0个數(字符‘A‘)的地址是8030H。所以此时所需要的8033H是表格中的第三个数也就是’D‘。

你对这个回答的评价是

MOVC A,@A+PC这两条指令是双字节指令,在執行

时PC的地址由起初的8000H变成了H=8004H了再加上A里面的30H,就是8034H再看那个字母表,表首地址位8030HD不是刚好就是8034H所对应的内容吗,所以送到A里的就昰D 啊

你对这个回答的评价是

@A存放地址30H,@A+PC为地址8000H加地址为PC的地址由于你问题中没有将PC赋值我假设为ORG的值8000H,MOVC A,@A+PC可理解为将地址@A+PC传入变量A中即A为DB字符串的首地址,也可理解为A为一个指针指向字符串DB。 建议:如果你16位汇编学得不是很好最好不要学32位的

你对这个回答的评价是?

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。

我要回帖

更多关于 keil5没有c51怎么办 的文章

 

随机推荐