关于汇编语言MOV A,23H

2019-07-15 11:35发布

本帖最后由 懒惰的魔方 于 2017-3-25 16:37 编辑

看到别人写的汇编如下,注释是我以自己的理解添加的:
  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该如何写呢?
如果换成您写,您会怎么写呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
人中狼
2019-07-15 17:03
懒惰的魔方 发表于 2017-3-25 16:43
您好,问题刚刚更新一下。您再帮忙看看

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

一周热门 更多>