這段代碼是 MMX解碼 YV12到RGB32的。我想一次傳兩行地址進去不知怎么實作。下面是代碼。
__asm {
pushad
finit
xor eax, eax
mov ebx, height
mov ecx, width
mov edx, y
mov edi, v
mov esi, u
mov ebp, rgb //想在這里加一個外部指標傳一個地址進來,不知怎么實作,懇請請大神幫忙。
hloop :
push ebx
mov ebx, ecx
wloop :
push ebx
xor ebx, ebx
mov al, [edi]
mov bl, [esi]
movq mm0, [CoefficientsRGBU + 8 * eax]
paddw mm0, [CoefficientsRGBV + 8 * ebx]
mov al, [edx]
mov bl, [edx + 1]
movq mm1, [CoefficientsRGBY + 8 * eax]
movq mm2, [CoefficientsRGBY + 8 * ebx]
mov al, [edx + ecx]
mov bl, [edx + ecx + 1]
movq mm3, [CoefficientsRGBY + 8 * eax]
movq mm4, [CoefficientsRGBY + 8 * ebx]
paddw mm1, mm0
paddw mm2, mm0
paddw mm3, mm0
paddw mm4, mm0
psraw mm1, 6
psraw mm2, 6
psraw mm3, 6
psraw mm4, 6
packuswb mm1, mm2
packuswb mm3, mm4
movq[ebp], mm1
movq[ebp + 4 * ecx], mm3
add ebp, 8
add edx, 2
add edi, 1
add esi, 1
pop ebx
sub ebx, 2
jnz wloop
lea ebp, [ebp + 4 * ecx]
add edx, ecx
pop ebx
sub ebx, 2
jnz hloop
emms
popad
}
uj5u.com熱心網友回復:
mov ebp, rgb //在這里加入一句傳另一個指標進入
movq[ebp + 4 * ecx], mm3 //將這句改成向新地址 付值。
我從沒用過匯編。請各位幫忙,謝謝。
uj5u.com熱心網友回復:
mov ebp, rgb //在這里加入一句傳另一個指標進入movq[ebp + 4 * ecx], mm3 //將這句改成向新地址 付值。
===================================
這里的rgb顯然是指向接收轉換后的RGB32資料的緩沖區,你要傳另一個指標只需要“mov ebp, 另一個指標”,但是你傳入另一個指標做什么用是一個問題
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/251210.html
標籤:匯編語言
下一篇:大學生卑微求助
