本帖最后由 懒惰的魔方 于 2017-3-25 16:37 编辑
看到别人写的汇编如下,注释是我以自己的理解添加的:
- MOV A,23H ;23H内存单元内的值给A
- MOV R0,A ;A的值给R0
- MOV A,@R0 ;R0值表示地址,它指向的值给A
- MOV 19H,A ;A的值保存到19H内存单元
- MOV A,#0F7H ;0xf7给A
- 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;
好像是这样吧 最佳答案
一周热门 更多>