学习笔记-arm01

   PUSH    {R0,R1,R4,LR}
.text:000250A6                 LDR     R3, [R0]   				加载内存到寄存器中    LDR  目的寄存器,《存储器地址》带中括号的是取内容
.text:000250A8                 ADD     R1, SP, #0x10+var_C		加法指令       R1 = SP + #0x10+var_C
.text:000250AA                 LDR     R2, =0x10006				加载内存到寄存器中    R2 <- 0x10006
.text:000250AC                 LDR     R3, [R3,#0x18]			加载内存到寄存器中    R3 <- [R3+0x18]
.text:000250AE                 BLX     R3						带返回和状态切换的跳转指令   BLX <目的地址><Rm> 
.text:000250B0                 CMP     R0, #0					比较指令    CMP  操作数1-操作数2 = CPSR条件标志位
.text:000250B2                 BEQ     loc_250C0				跳转指令  相等或Z=1 时跳转  
.text:000250B4                 LDR     R1, =(aDebug - 0x250BE)	加载内存到寄存器中    R1 <- aDebug - 0x250BE
.text:000250B6                 LDR     R2, =(aFailedToGetThe - 0x250C0)  加载内存到寄存器中 R2 <- aFailedToGetCla - 0x250C0
.text:000250B8                 MOVS    R0, #6					  数据传送指令,影响CPSR中条件标志位  R0 <- 6
.text:000250BA                 ADD     R1, PC          ; "debug"  加法指令     R1 = R1+PC
.text:000250BC                 ADD     R2, PC          ; "Failed to get the environment"加法指令 R2 = R2+PC
.text:000250BE                 B       loc_250DA				无条件跳转指令
.text:000250C0 ; ---------------------------------------------------------------------------
.text:000250C0
.text:000250C0 loc_250C0                               ; CODE XREF: JNI_OnLoad+Ej
.text:000250C0                 LDR     R0, [SP,#0x10+var_C]		加载内存到寄存器中   R0 <- [SP + 0x10 + var_C]
.text:000250C2                 LDR     R1, =(aComAliMobisece - 0x250CA)	加载内存到寄存器中  R1 <- [aComAliMobisece - 0x250CA]
.text:000250C4                 LDR     R3, [R0]					加载内存到寄存器中  R3 <- [R0]
.text:000250C6                 ADD     R1, PC          ; "com/ali/mobisecenhance/StubApplication"  加法指令 R1 = R1+PC
.text:000250C8                 LDR     R3, [R3,#0x18]			加载内存到寄存器中 R3 <- [R3+0x18]
.text:000250CA                 BLX     R3					    带返回和状态切换的跳转指令     BLX <目的地址><Rm>
.text:000250CC                 SUBS    R1, R0, #0				带进位标志位的减法指令        R1 = R0-0
.text:000250CE                 BNE     loc_250E4				跳转指令    不相等 跳转
.text:000250D0                 MOVS    R0, #6					数据传送指令,影响CPSR中条件标志位   R0 <- 6
.text:000250D2                 LDR     R1, =(aDebug - 0x250DA)	
.text:000250D4                 LDR     R2, =(aFailedToGetCla - 0x250DC)
.text:000250D6                 ADD     R1, PC          ; "debug"
.text:000250D8                 ADD     R2, PC          ; "failed to get class reference"
.text:000250DA
.text:000250DA loc_250DA                               ; CODE XREF: JNI_OnLoad+1Aj
.text:000250DA                 BL      j_j___android_log_print  带返回的跳转指令
.text:000250DE                 MOVS    R0, #1					数据传送指令,影响CPSR中条件标志位  R0 <- 1
.text:000250E0                 NEGS    R0, R0					取二进制补码  R0 <- R0
.text:000250E2                 B       locret_25100				无条件跳转指令 
.text:000250E4 ; ---------------------------------------------------------------------------
.text:000250E4
.text:000250E4 loc_250E4                               ; CODE XREF: JNI_OnLoad+2Aj
.text:000250E4                 MOVS    R3, #0xD7				数据传送指令,影响CPSR中条件标志位
.text:000250E6                 LDR     R0, [SP,#0x10+var_C]		加载内存到寄存器中 R0 <- [SP,0x10+var_C]
.text:000250E8                 LSLS    R3, R3, #2				逻辑左移带有进位标志位 R3 <-  (R3<<2)
.text:000250EA                 LDR     R2, [R0]					加载内存到寄存器中  R2 <- [R0]
.text:000250EC                 LDR     R4, [R2,R3]				加载内存到寄存器中  R4 <- [R2,R3]
.text:000250EE                 LDR     R2, =(off_59004 - 0x250F6)
.text:000250F0                 MOVS    R3, #2					数据传送指令,影响CPSR中条件标志位
.text:000250F2                 ADD     R2, PC ; off_59004		加法指令 R2 <- R2+PC
.text:000250F4                 BLX     R4						带返回和状态切换的跳转指令
.text:000250F6                 SUBS    R3, R0, #1				带进位标志位的减法指令
.text:000250F8                 SBCS    R0, R3					带进位标志位的借位的减法
.text:000250FA                 LDR     R3, =0x10006				加载内存到寄存器中
.text:000250FC                 NEGS    R0, R0					取二进制补码
.text:000250FE                 ORRS    R0, R3					逻辑或指令带进位

  

原文地址:https://www.cnblogs.com/NigelX/p/6572255.html