0%

汇编与hopper使用

之前也断断续续看过,因为都是改下判断跳过检查之类的,也没记录下来。
直到需要看一个怎么用数据库的值来计算语音的开始结束位置,愣是半天看不懂,才想好好整理下,但是万万没想到最后的路径也还是中断了。。。

  1. 本来想用hopper看下应用到底怎么计算语音开始和结束的位置的,生生看了一天都没进展,而且累死了要
  2. 然后隔天想着用AVFoundation来检测silence的片段不就知道位置了,暗记庆幸还
  3. 发现那一个个文件读,要到啥时候,而且还不准,用averagePower的值循环打印,累累累啊
  4. 峰回路转直接判断文件可不可以呢,ffmpeg竟然一句话就够了 ffmpeg -i input.mp3 -af silencedetect=d=0.5 -f null - |& awk '/silencedetect/ {print $4,$5}'
  5. 结束

指令

MOVW 把 16 位立即数放到寄存器的底16位,高16位清0
MOVT 把 16 位立即数放到寄存器的高16位,低 16位不影响

LDR指令:
例1: ldr r0, 0x12345678 // 就是把0x12345678这个地址中的值存放到r0中。而mov不能干这个活,mov只能在寄存器之间移动数据,或者把立即数移动到寄存器中。
例2:ldr r0,r1 //表示把r1寄存器中的值放入r0
例3:ldr r0,[r1] // [r1]表示r1中值对应内存的地址,所以是把r1中的数当作一个地址,把这个地址中的值放入r0.

问题

看来后面有时间的话,还是看看,到底是怎么计算的,我估计自己会看的可能性不大了😂

参考

用汇编实现浮点数的乘法运算—FPU
How to split an mp3 file by detecting silent parts?
avfoundation-avaudioplayer-power-visualizer