Español
Fuente/ Codesnippets

Aus zwei Randwertvektoren a y b' una Matrix C redactar, con X4-Ensamblador

 

p.specht

Das folgende Prog para X4-ASM erstellt el Spatprodukt zweier Vektoren a a Dimension 500 x 500. Lo es es una Demonstration sin jedwede Gewähr!

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

Título de la ventana "Spatprodukt zweier Randwert-Vektoren en una Matrix, con X4-ASM"
Ventana de Estilo 24:Cls:set("AsmMode",0)
'--------------------------
Var Asize& = 20
Var Bsize& = 4' ... Beispiele
'{--------------------------
imprimir "\n Spatprodukt zweier Randwert-Vektoren | . __ con el Dimensionen ";
imprimir format$("#,##0",Asize&);" y ";format$("#,##0",Bsize&)
declarar i&,j&,err&,tmp&,tm&
tmp&=&gettickcount
declarar a![Asize&-1],b![Bsize&-1],c![Asize&-1,Bsize&-1]
tmp&=&gettickcount-tmp&
Imprimir "\n Vektoren y Spat deklariert en ";tmp&;" ms."
'}
'{
imprimir "\n Werte zugewiesen en ... ";:Selección aleatoria
tmp&=&gettickcount
a![]=&index+1' rnd() ' 2e10
b![]=10*&index'rnd(100)  ' rnd() ' -1.1e10
tmp&=&gettickcount-tmp&
imprimir tmp&; " ms."
'}
'{asmSPATPRODfloat
ASM "aSPATPRODf",5'addr(a![0]),sizeof(a![]),addr(b![0]),sizeof(b![]),addr(c![0,0])
'Irrtümer abfangen
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'if row = size_a
je prepnextcol
add eax,8
add ecx,8
jmp MAINLOOP
prepnextcol:
inc esi'nextcol
cmp esi,par4'if col=size_b
je noerr'then ende
mov edx,0
mov eax,par1'más 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

if err&

    font 2:imprimir "\n *** Error ";err&;": Vektor a groß! ***":font 0

más

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

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

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

            imprimir c![i&,j&],
            endwhile:imprimir
            endwhile:imprimir "\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


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

1.400 Views

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

Themeninformationen

Dieses Thema ha 1 subscriber:

p.specht (1x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie