一个线性汇编语言,一直找不到错误,求助!

1个回答

写回答

saltsaltovo

2025-12-23 06:26

+ 关注

;计算cf*x ;第一行 ADD2 A_dst3,A_dst5,B_dst5 ;X00+X10 X01+X11 ADD2 B_dst5,A_dst7,B_dst5 ;X00+X10+X20 X01+X11+X21 ADD2 B_dst5,A_dst9,B_dst5 ;X00+X10+X20+X30 X01+X11+X21+X31 ADD2 A_dst4,A_dst6,B_dst6 ;X02+X12 X03+X13 ADD2 B_dst6,A_dst8,B_dst6 ;X02+X12+X22 X03+X13+X23 ADD2 B_dst6,A_dst10,B_dst6 ;X02+X12+X22+X32 X03+X13+X23+X33 ;第二行 SHL A_dst3,1,A_dst11 ;X00*2 X01*2 SHL A_dst4,1,A_dst12 ;X02*2 X03*2 SHL A_dst9,1,A_dst13 ;X30*2 X31*2 SHL A_dst10,1,A_dst14 ;X32*2 X33*2 ADD2 A_dst11,A_dst5,B_dst7 ;X00*2+X10 X01*2+X11 SUB2 B_dst7,A_dst7,B_dst7 ;X00*2+X10-X20 X01*2+X11-X21 SUB2 B_dst7,A_dst13,B_dst7 ;X00*2+X10-X20-2*X30 X01*2+X11-X21-2*X31 ADD2 A_dst12,A_dst6,B_dst8 ;X02*2+X10 X03*2+X13 SUB2 B_dst8,A_dst8,B_dst8 ;X02*2+X12-X22 X03*2+X13-X23 SUB2 B_dst8,A_dst14,B_dst8 ;X02*2+X12-X22-2*X32 X03*2+X13-X23-2*X33 ;第三行 SUB2 A_dst3,A_dst5,B_dst9 SUB2 B_dst9,A_dst7,B_dst9 ADD2 B_dst9,A_dst9,B_dst9

SUB2 A_dst4,A_dst6,B_dst10 SUB2 B_dst10,A_dst8,B_dst10 ADD2 B_dst10,A_dst10,B_dst10 ;第四行 SHL A_dst5,1,A_dst15 ;X10*2 X11*2 SHL A_dst6,1,A_dst16 ;X12*2 X13*2 SHL A_dst7,1,A_dst17 ;X20*2 X21*2 SHL A_dst8,1,A_dst18 ;X22*2 X23*2

SUB2 A_dst3,A_dst15,B_dst11 ADD2 B_dst11,A_dst17 ,B_dst11 SUB2 B_dst11,A_dst9 ,B_dst11

SUB2 A_dst4,A_dst16,B_dst12 ADD2 B_dst12,A_dst18 ,B_dst12 SUB2 B_dst12,A_dst10 ,B_dst12

;计算cf*x*cft;重新打包第一二列 PACK2 B_dst7,B_dst5,Z_dst0 ;Z00 Z10 PACKH2 B_dst7,A_dst5,Z_dst1 ;Z01 Z11 PACK2 B_dst8,B_dst6,Z_dst2 ;Z20 Z30 PACKH2 B_dst8,B_dst6,Z_dst3 ;Z21 Z31;重新打包第三四列 PACK2 B_dst11,B_dst9,Z_dst4 ;Z02 Z12 PACKH2 B_dst11,B_dst9,Z_dst5 ;Z03 Z13 PACK2 B_dst12,B_dst10,Z_dst6 ;Z22 Z32 PACKH2 B_dst12,B_dst10,Z_dst7 ;Z23 Z33

;计算第一列 ADD2 Z_dst0,Z_dst1,A_dst1 ADD2 A_dst1,Z_dst4,A_dst1 ADD2 A_dst1,Z_dst5,A_dst1

ADD2 Z_dst2,Z_dst3,A_dst2 ADD2 A_dst2,Z_dst6,A_dst2 ADD2 A_dst2,Z_dst7,A_dst2

;计算第2列 SHL Z_dst0,1,B_dst1 ;2*Z00 2*Z10 SHL Z_dst2,1,B_dst2 ;2*Z20 2*Z30 SHL Z_dst5,1,B_dst3 ;2*Z03 2*Z13 SHL Z_dst7,1,B_dst4 ;2*Z23 2*Z33

ADD2 B_dst1,Z_dst1,A_dst3 SUB2 A_dst3,Z_dst4,A_dst3 SUB2 A_dst3,B_dst3,A_dst3

ADD2 B_dst2,Z_dst3,A_dst4 SUB2 A_dst4,Z_dst6,A_dst4 SUB2 A_dst4,B_dst4,A_dst4

;计算第3列 SUB2 Z_dst0,Z_dst1,A_dst5 SUB2 A_dst5,Z_dst4,A_dst5 ADD2 A_dst5,Z_dst5,A_dst5 SUB2 Z_dst2,Z_dst3,A_dst6 SUB2 A_dst6,Z_dst6,A_dst6 ADD2 A_dst6,Z_dst7,A_dst6;计算第4列 SHL Z_dst1,1,B_dst5 ;2*Z01 2*Z11 SHL Z_dst3,1,B_dst6 ;2*Z21 2*Z31 SHL Z_dst5,1,B_dst7 ;2*Z02 2*Z12 SHL Z_dst7,1,B_dst8 ;2*Z22 2*Z32

SUB2 Z_dst0,B_dst5,A_dst7 ADD2 A_dst7,Z_dst4,A_dst7 SUB2 A_dst7,B_dst7,A_dst7

SUB2 Z_dst2,B_dst6,A_dst8 ADD2 A_dst8,Z_dst6,A_dst8 SUB2 A_dst8,B_dst8,A_dst8

;重新打包第一二行 PACK2 A_dst3,A_dst1,B_dst0 ;w00 w01 PACKH2 A_dst3,A_dst1,B_dst1 ;w02 w03 PACK2 A_dst4,A_dst2,B_dst2 ;W10 W11 PACKH2 A_dst4,A_dst2,B_dst3 ;W12 W13;重新打包第三四行 PACK2 A_dst7,B_dst5,B_dst4 ;W20 W21 PACKH2 A_dst7,A_dst5,B_dst5 ;W22 W23 PACK2 A_dst8,A_dst6,B_dst6 ;W30 W31 PACKH2 A_dst8,A_dst6,B_dst7 ;W32 W33

PACKL4 B_dst1,B_dst0,B_dst8 PACKL4 B_dst3,B_dst2,B_dst9 PACKL4 B_dst5,B_dst4,B_dst10 PACKL4 B_dst7,B_dst6,B_dst11

STNW B_dst8,*dct++(4) STNW B_dst9,*dct++(4) STNW B_dst10,*dct++(4) STNW B_dst11,*dct

.endproc

字数限制,只能用这个办法了,大家将就看一下,哈哈。

举报有用(0分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号