汇编找图asm源码包含注释精心优化

易语言 2020-08-23 11:23:01

汇编找图asm源码包含注释精心优化

手头的一些东西感觉留着也没多大了意义了,也该放出来一些给年轻人一些学习,同时也希望有高手出来指点指点!

所以有些能用得上的寄存器,全部被我拿出来当内存用了,此源码应该还可以通过浮点寄存或者其他寄存器提高运行效率,希望有高手可以出来优化。

mov eax,[edi+4] ;看字节集长度//放前面点可以快点
cmp bx,4D42h ;bmp的头是424D
jne exit
cmp eax,55 ;位图头必须是54
jb exit ;头小于54就跳出
mov ecx,[edi+8+16h] ;/////////////////////////////////////◆大图高=大图数据[23]+左移(大图数据[24],8)-1
dec ecx
mov @dtg,ecx
movzx ebx,byte ptr [edi+8+1ch] ;/////////////////////●大图位数=大图数据[29]
mov eax,[edi+8+12h] ;/////////////////////●大图宽=大图数据[19]+左移(大图数据[20],8)-1
dec eax
mov @dtk,eax ;第五个局部变量=大宽度;
inc eax ;大图宽+1
mul ebx ;(大图宽+1)*大图位数
add eax,31 ;(大图宽+1)*大图位数+31
shr eax,5 ;右移((大图宽+1)*小图位数+31,5)
shl eax,2 ;左移(右移((大图宽+1)*大图位数+31,5),2)
mov @dtsmh,eax ;第八个局部变量 大扫描行、、、、、、、、●大图扫描行=左移(右移((大图宽+1)×大图位数+31,5),2)
shr ebx,3 ;ebx大图位数/8
mov @dtsw,bl