原代码采取C语言编程,下载后调试,查看汇编代码如下
updateInverterPWM(): 3ea2f7: FE04 ADDB SP, #4 3ea2f8: 1E42 MOVL *-SP[2], ACC 557 invDuty = (duty * public_var.pwm_val_tmp)>>8 ; 3ea2f9: 761F0232 MOVW DP, #0x232 3ea2fb: 2901 CLRC SXM 3ea2fc: 8702 MOVL XT, @0x2 3ea2fd: 56440042 IMPYL ACC, XT, *-SP[2] 3ea2ff: FF47 SFR ACC, 8 3ea300: 9643 MOV *-SP[3], AL 562 Duty_tmp =invDuty; 3ea301: 761F0238 MOVW DP, #0x238 3ea303: 9627 MOV @0x27, AL 563 Spwm_Vo_Val[spwm_table_cntA-1] =Duty_tmp; 3ea304: 761F0238 MOVW DP, #0x238 3ea306: 5824 MOVZ AR0, @0x24 3ea307: 8F008D40 MOVL XAR4, #0x008d40 3ea309: D881 SUBB XAR0, #1 3ea30a: 9694 MOV *+XAR4[AR0], AL 567 if(invDuty==EPwm2Regs.TBPRD)// 3ea30b: 8843 MOVZ AR6, *-SP[3] 3ea30c: 761F01A1 MOVW DP, #0x1a1 3ea30e: 0E05 MOVU ACC, @0x5 3ea30f: 0FA6 CMPL ACC, @XAR6 3ea310: 6002 SB C$L42, NEQ
目前想知道这段代码运行的确切时间,请问什么资料有对汇编指令ADDB,MOVL,MOVW,CLRC,IMPYL等的详细解释
比如 指令怎么执行?以及指令运算时间?
谢谢!