微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 关于汇编语言MOV A,23H

关于汇编语言MOV A,23H

时间:10-02 整理:3721RD 点击:

看到别人写的汇编如下,注释是我以自己的理解添加的:

  1. MOV A,23H        ;23H内存单元内的值给A
  2. MOV R0,A                ;A的值给R0
  3. MOV A,@R0        ;R0值表示地址,它指向的值给A
  4. MOV 19H,A        ;A的值保存到19H内存单元
  5. MOV A,#0F7H        ;0xf7给A
  6. MOV @R0,A        ;A给R0指向的地址

复制代码


我换成C是这样的:
A = *((unsigned char *)0x23);
*((unsigned char *)0x19) = *A;
*A = 0xf7;

想问问各位大人,我的理解以及伪C 写的是否正确?
用标准C该如何写呢?
如果换成您写,您会怎么写呢?

你这是反汇编过来的代码吧,估计原代码也是C写的,其实这里23H里存的是一个变量的地址,19H本身就是一个变量,你定义两个对应的变量就可以了,假如23H指向的变量是first,19H为地址的变量是second,C应该可以写成second = first;
first = 0xf7;
好像是这样吧

有什么问题,23H里存的是一个单元X的地址,把这个地址转存到R0,然后用R0指向X的地址来读取或写入X的地址,有点绕

您好,问题刚刚更新一下。您再帮忙看看

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top