Français
Source/ Codesnippets

Aus deux Randwertvektoren a et b' une Matrix C erstellen, avec X4-Assembler

 

p.specht

cela folgende Prog pour X4-ASM erstellt cela Spatprodukt zweier Vektoren jusqu'à zur Dimension 500 x 500. Es handelt sich um une manifestation sans jedwede Gewähr!

Formel: c_i,j = a_i X (b_j)'

Titre de la fenêtre "Spatprodukt zweier Randwert-Vektoren sur une Matrix, avec X4-ASM"
Fenêtre Style 24:Cls:set("AsmMode",0)
'--------------------------
Var Asize& = 20
Var Bsize& = 4' ... Beispiele
'{--------------------------
imprimer "\n Spatprodukt zweier Randwert-Vektoren | . __ avec den Dimensionen ";
imprimer format$("#,##0",Asize&);" et ";format$("#,##0",Bsize&)
declare i&,j&,err&,tmp&,tm&
tmp&=&gettickcount
declare a![Asize&-1],b![Bsize&-1],c![Asize&-1,Bsize&-1]
tmp&=&gettickcount-tmp&
Imprimer "\n Vektoren et Spat deklariert dans ";tmp&;" ms."
'}
'{
imprimer "\n Werte zugewiesen dans ... ";:Randomiser
tmp&=&gettickcount
a![]=&index+1' rnd() ' 2e10
b![]=10*&index'rnd(100)  ' rnd() ' -1.1e10
tmp&=&gettickcount-tmp&
imprimer tmp&; " ms."
'}
'{asmSPATPRODfloat
ASM "aSPATPRODf",5'addr(a![0]),sizeof(a![]),addr(b![0]),sizeof(b![]),addr(c![0,0])
'Irrtümer intercepter
mov edi,par2:cmp edi,501:jge err1
mov edi,par4:cmp edi,501:jge err1
'Init
mov eax,par1'vec->a_ram
mov ebx,par3'vec->b_ram
mov ecx,par5'vec->c_ram
mov edx,0'i->a
mov esi,0'j->b
FINIT
MAINLOOP:
FLD qword ptr [eax]
FLD qword ptr [ebx]
FMUL
FSTP qword ptr [ecx]
'nextrow:
inc edx
cmp edx,par2'si row = size_a
je prepnextcol
add eax,8
add ecx,8
jmp MAINLOOP
prepnextcol:
inc esi'nextcol
cmp esi,par4'si col=size_b
je noerr'then ende
mov edx,0
mov eax,par1'd'autre resetvec_a
add ebx,8'next vec_b
add ecx,8'incr vec_c
jmp MAINLOOP
'Fehlertabelle
err1:
mov eax,$FFFFFFFF
jmp fertig
noerr:
mov eax,0
fertig:
ENDASM
tm&=&gettickcount
err&=aSPATPRODf( addr(a![0]),sizeof(a![]), addr(b![0]),sizeof(b![]), addr(c![0,0]) )
tm&=&gettickcount-tm&
'}
'{ Ausgabeteil

si err&

    font 2:imprimer "\n *** Error ";err&;": Vektor trop grand! ***":font 0

d'autre

    set("decimals",14):set("numwidth",18)
    font 2:imprimer "\n\n Ergebnis errechnet dans ";tm&;" ms."
    waitinput 5000
    imprimer "\n Spatmatrix:\n":font 0

    whileloop 0,Asize&-1:i&=&Boucle

        whileloop 0,Bsize&-1:j&=&Boucle

            imprimer c![i&,j&],
            endwhile:imprimer
            endwhile:imprimer "\n---":beep

        endif

        waitinput
        end
        '}
 
XProfan 11
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
26.05.2021  
 



Zum Quelltext


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

1.397 Views

Untitledvor 0 min.
H.Brill08.10.2022
p.specht17.07.2022
Georg Teles22.01.2022
Jens-Arne Reumschüssel20.01.2022
plus...

Themeninformationen

cet Thema hat 1 participant:

p.specht (1x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie