关于汇编语言MOV A,23H
时间:10-02
整理:3721RD
点击:
看到别人写的汇编如下,注释是我以自己的理解添加的:
- 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;
好像是这样吧
有什么问题,23H里存的是一个单元X的地址,把这个地址转存到R0,然后用R0指向X的地址来读取或写入X的地址,有点绕
您好,问题刚刚更新一下。您再帮忙看看