Merhaba,
Assembly ile şöyle bir fonksiyon yazıyorum:
Kod: Tümünü seç
function test(numero:word;var str:pansichar):pansichar;
asm
mov [rdx], 'zz'
end;
x64 ABI'ye göre fonksiyon ve prosedure'larda parametreler sırasıyla rcx,rdx,r8 ve r9 registerlerine aktarılır. Buna göre str parametresi rdx registerinde olmak durumunda. Ancak str'nin değerinde hiçbir değişme olmuıyor.
Bununla birlikte kod bölümünü şu şekilde değiştirince hata almıyorum ve str 'zz' oluyor:
Gördüğünüz gibi rdx'değeri rax'e aldığımda rax üzerinden değişikliği yaptım. Peki neden rdx üzerinden doğrudan değişiklik yapamıyorum?