永发信息网

简单反汇编问题求解。

答案:2  悬赏:50  手机版
解决时间 2021-02-22 00:06
  • 提问者网友:低吟詩仙的傷
  • 2021-02-21 15:45
这是原c程序:
//实例9:用P0口、P1 口分别显示加法和减法运算结果
#include
void main(void)
{
unsigned char m,n;
m=43; //即十进制数2x16+11=43
n=60; //即十进制数3x16+12=60
P1=m+n; //P1=103=0110 0111B,结果P1.3、P1.4、P1.7 口的灯被点亮
P0=n-m; //P0=17=0001 0001B,结果P0.0、P0.4的灯被熄灭
}
这是反汇编程序(其中也包含了原来c程序):
92: ?C_STARTUP: LJMP STARTUP1
93:
94: RSEG ?C_C51STARTUP
95:
96: STARTUP1:
97:
98: IF IDATALEN <> 0
C:0x0000 020011 LJMP STARTUP1(C:0011)
3: void main(void)
4: {
5: unsigned char m,n;
6: m=43; //即十进制数2x16+11=43
C:0x0003 7F2B MOV R7,#0x2B
7: n=60; //即十进制数3x16+12=60
C:0x0005 7E3C MOV R6,#0x3C
8: P1=m+n; //P1=103=0110 0111B,结果P1.3、P1.4、P1.7 口的灯被点亮
C:0x0007 EF MOV A,R7
C:0x0008 2E ADD A,R6
C:0x0009 F590 MOV P1(0x90),A
9: P0=n-m; //P0=17=0001 0001B,结果P0.0、P0.4的灯被熄灭
C:0x000B C3 CLR C
C:0x000C EE MOV A,R6
C:0x000D 9F SUBB A,R7
C:0x000E F590 MOV P1(0x90),A
10: }
C:0x0010 22 RET
99: MOV R0,#IDATALEN - 1
C:0x0011 787F MOV R0,#0x7F
100: CLR A
C:0x0013 E4 CLR A
101: IDATALOOP: MOV @R0,A
C:0x0014 F6 MOV @R0,A
102: DJNZ R0,IDATALOOP
C:0x0015 D8FD DJNZ R0,IDATALOOP(C:0014)
151: MOV SP,#?STACK-1
152: ; This code is required if you use L51_BANK.A51 with Banking Mode 4
153: ; EXTRN CODE (?B_SWITCH0)
154: ; CALL ?B_SWITCH0 ; init bank mechanism to code bank 0
C:0x0017 758107 MOV SP(0x81),#0x07
155: LJMP ?C_START
C:0x001A 020003 LJMP main(C:0003)
C:0x001D 00 NOP

我是复制粘贴过来的,程序在编译时没错,想问的是,那些问号是怎么回事,就是这样写的吗?
最佳答案
  • 五星知识达人网友:傲气稳了全场
  • 2021-02-21 17:10
是很难的呀
全部回答
  • 1楼网友:过活
  • 2021-02-21 17:21
1、对30块没兴趣 2、免加qq 3、这个优化几年前就看到过,原理是x / 7可以转化成x * (1 / 7),这个1 / 7可以使用小数点后一定精度的值表示(实际上有32位精度就够了),我们看到的24924925就是这么的来的,而且你代码贴错了,我用vc产生了一下,应该是十六进制数0x24924925,而不是十进制的。做过大数库的就可以理解,使用倒数求商,说实在的,快不了多少。 4、这种优化只适合于除以常数,而且速度优势比较有限,多被用来放在算法中防止反编译(导致别人看不懂) 5、奇妙的数如何计算?请编译器代为计算是一个好主意,自己也可以算,需要点数学知识就行了,方法简单,不再赘述 6、产生方法,比较简单 unsigned int dd(unsigned int aa) { return aa / 7; } volatile unsigned int aaa = 2038; dd(aaa); release编译查看汇编码即可,有符号无符号产生代码不同,volatile关键字防止优化
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯