Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
psygate
Anmeldungsdatum: 05.04.2005 Beiträge: 304 Wohnort: Wien und der Computer
|
Verfasst am: 16.02.2006, 19:46 Titel: imagecreate, asm, put usw. |
|
|
Also... ich komm gleich zur sache:
Kann mir mal jemand eine kleine einführung in assembler in freebasic geben? BITTE
und:
Kann mir ejmand ein gutes tutorial für imagecreate, put, get usw. empfehlen? |
|
Nach oben |
|
 |
Devilkevin aka Kerstin

Anmeldungsdatum: 11.11.2004 Beiträge: 2532 Wohnort: nähe Mannheim
|
|
Nach oben |
|
 |
psygate
Anmeldungsdatum: 05.04.2005 Beiträge: 304 Wohnort: Wien und der Computer
|
Verfasst am: 16.02.2006, 20:05 Titel: |
|
|
ja toll. die kenn ich schon, aber da steht nichts über asm was ich brauchen könnte noch steht da was ordentliches über die ganzen get put imagecreate |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
|
Nach oben |
|
 |
psygate
Anmeldungsdatum: 05.04.2005 Beiträge: 304 Wohnort: Wien und der Computer
|
Verfasst am: 16.02.2006, 20:07 Titel: |
|
|
einfach asm mal. Hat da nun jemand was, etwas VERSTÄNDLICHES vielleicht noch?  |
|
Nach oben |
|
 |
Devilkevin aka Kerstin

Anmeldungsdatum: 11.11.2004 Beiträge: 2532 Wohnort: nähe Mannheim
|
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 16.02.2006, 23:37 Titel: |
|
|
Kann sein, daß der ASM-Befehl von FB nix Besonderes ist.
Es ist nur schade, daß einige/viele Befehle nicht funktionieren.
Ich würde gerne das BIOS-DatenSegment ab(0040:0000) auslesen..
..die Schleife dafür habe ich schon, aber bisher verweigert FB
mir den Zugriff auf den Speicher, kann sein, daß ich die falschen
Register benutze: Code: | Option Escape
Option Explicit
Defint a-z
Function OldPeek(ByVal Seg As Long, ByVal Ofs As Long) As Short
Dim Peeked As Short=0
Asm
MOV AX, [Seg]
MOV ES, AX
MOV DI, [Ofs]
MOV AH, ES:[DI]
' MOV [Peeked], AX
End Asm
Return Peeked
End Function
Dim i As Short
?"PeekTest.bas ¸2006 by ytwinky, MD"
?"0040:0000-";
For i=0 to 16
?Hex(OldPeek(&H0040, i));" ";
Next
?
Sleep | Ich weiß nicht genau, ob das Win32-Assembler ist..
..vom Sinn her ist es aber okay
Btw: Ich betone: Es geht nur um das AUSLESEN dieses Bereiches,
daß ich in Teufels Küche komme(n kann), wenn ich hier POKE
weiß ich schon..
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
marzec
Anmeldungsdatum: 13.10.2004 Beiträge: 267
|
Verfasst am: 17.02.2006, 00:24 Titel: |
|
|
win32/linux sind beides multitasking/multiprogramming betriebssysteme die mit einem virtuellen memory managment arbeiten. d.h. das was du da lustig munter in deine register lädst oder in absoluten values angibst korrespondiert nicht mit der physikalischen addresse auf deinem ram steinchen. die werden zuerst bei jedem zugriff ( write UND read ) in einem page table gesucht wo dann die tatsächliche physikalische addresse steht. das selbe gilt, wenn auch in etwas anderer form, für den dos port von freebasic der über dpmi arbeitet und sich damit ebenfalls im sogenannten protected mode befindet.
bei jedem programmstart wird deinem programm ein virtueller speicherraum zugewiesen ( aufn win32 und lunix mit dpmi is es ein wenig anders aber sehr ähnlich ). sobald du versuchst auf speicherbereiche zuzugreifen die nicht innerhalb des deinem programm zugewiesenen speicherbereiches liegen knallts und dein programm segfaulted. nochmal, virtuell addresse ( das was du in ds, es, gs, fs etc. reinlädst ) ist nicht mehr eine addresse eines 64k segments sondern quasi ein index in einen table der das mappen der virtuellen addresse auf die physikalische addresse erledigt ( so der speicher nicht rausgeswapped wurde auf die festplatte ).
kurz gesagt, mit keiner der Freebasic versionen wirst du über Assembler innerhalb deines Programms auf irgendwas zugreifen können was nicht deinem programm zugewiesen wurde. in dos hast vll. noch eine chance wenn du zugriff auf die verwendete dpmi lib hast. soweit ich mich erinnern kann gabs eine möglichkeit per dpmi lib direkt auf eine physikalische addresse zugreifen zu können. _________________ Yagl - yet another gameprogramming library |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
|
Nach oben |
|
 |
Mecki Igel

Anmeldungsdatum: 10.09.2004 Beiträge: 985 Wohnort: Niederbayern
|
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 17.02.2006, 15:36 Titel: |
|
|
@marzec:
Schönen Dank für die erschöpfende Auskunft..
..ich werds mal mit Debug und Open Pipe.. probieren
[edit]
so, jetzt hab ichs: Code: | 'Ä=Ž , Ö=™ , Ü=š ; ä=„ , ö=”, ü=? , ß=á ,§=õ , ©=¸
?"biosvar.bas ¸2006 by ytwinky, MD"
Option Escape
Option Explicit
Function myHex(b as UByte) As String
Dim m As String=Hex(b)
If Len(m$)<2 Then Return "0" &m$ Else Return m$
End Function
Dim m$, y$, fnr, i, j, k, Seg40(256) As UByte, InpDatei As String
InpDatei=Environ$("Tmp")+"\\Debug.Inp"
fnr=freefile
Open InpDatei For Output As #fnr
?#fnr, "D0040:0000,FF"
?#fnr, "Q"
Close #fnr
Open Pipe "Debug <" &InpDatei For Input As #fnr
Do While Not Eof(fnr)
Line Input #fnr, m$
If Mid(m$, 1, 1)<>"-" Then
Mid(m$, Instr(m$, "-"), 1)=" "
k=Instr(m$, " ")
m$=Mid(m$, k+2, Instr(m$, " ")-k) &"\n"
If Len(m$)>20 Then
' y$+=m$ &"\n"
For j=0 To 15
Seg40(i+j)=Val("&H" &Left(m$, 2))
m$=Mid(m$, 4)
Next
End If
i+=16
End If
Loop
Close #fnr
'?"Ausgabe von Debug:\n"; y$
?"Inhalt von Seg40:"
For i=0 To 255 Step 16
For j=0 To 15
?myHex(Seg40(i+j)); " ";
Next
?
Next
Kill InpDatei
?"Eniki..";
Sleep | Was die einzelnen Werte bedeuten, steht hier:
http://www.datasource.de/programmierung/tab07_biosdatenbereich.html
[/edit]
@Mecki:
Kann es sein, daß auf dem freebasic.de-Server immer noch eine veraltete
Version(216k) ist?
In der Version ist der Timer-Befehl nämlich noch nicht berichtigt..
..ein ganz gutes Kriterium, um alte Versionen zu erkennen
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO..
Zuletzt bearbeitet von ytwinky am 17.02.2006, 19:18, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 17.02.2006, 16:27 Titel: |
|
|
Hi Mecki,
ytwinky hat Recht, auf http://www.freebasic.de/ ist die Online- und Download-Version noch nicht auf dem neusten Stand. _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
psygate
Anmeldungsdatum: 05.04.2005 Beiträge: 304 Wohnort: Wien und der Computer
|
Verfasst am: 19.02.2006, 21:01 Titel: |
|
|
ok...
.also:
kann mir mal bitte einer eine übersicht der asm befehle in freebasic geben und mir sagen, wie ich welchen benutzen kann?
Warum z.B. geht es nciht dass ich die zeile
asm mul ax,eax
beutze, aber
asm mul ax
schon? |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 19.02.2006, 21:05 Titel: |
|
|
Beim Microcontroller 80C31 von Intel geht mul auch nur mit dem A-Register und dem B-Register, wie genau das beim Computer ist seh ich gleichmal nach.
(Ich bin mir aber fast sicher, das das Typisch ASM ist und nichts mit FB zutun hat)
Edit:
http://andremueller.gmxhome.de/befehle.html#mul
Zitat: | mul Faktor
...
Bei einer Operandengröße von 8 Bit wird der Inhalt des Registers AL mit dem Faktor multipliziert
...
Bei einem Operanden mit Word-Größe wird der Inhalt von AX mit dem Faktor multipliziert,
...
Bei einem DWord-Operanden wird das Register EAX mit dem Faktor multipliziert |
Der eine Faktor liegt also in einem Register.
Bei ASM gilt:
ASM ist keine Hochsprache!
Was in der Refernz steht ist so und nicht anders.
mul ax,eax ist also gar kein Befehl sondern eben ungültig. _________________ http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight |
|
Nach oben |
|
 |
psygate
Anmeldungsdatum: 05.04.2005 Beiträge: 304 Wohnort: Wien und der Computer
|
Verfasst am: 19.02.2006, 21:16 Titel: |
|
|
wie denn dann???  |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 19.02.2006, 21:22 Titel: |
|
|
Genau so wie es in der Referenz steht!
Also ein Faktor im entsprechenden Register ablegen,
den anderen über gibst du mit "mul [was weiss ich]"
und das Resultat liegt dann wieder in einem Register.
(wie gesagt halt dich genau an die Referenz)
(mehr kann ich dir leider nicht sagen, ich kenn nur das ASM des 80C31 Microcontrollers) _________________ http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 19.02.2006, 21:28 Titel: |
|
|
..oder du schaust mal hier nach..
http://www.deinmeister.de/wasmfaq.htm
Da hab' ich, glaub ich, auch meinen MASM32 her..
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
psygate
Anmeldungsdatum: 05.04.2005 Beiträge: 304 Wohnort: Wien und der Computer
|
Verfasst am: 19.02.2006, 21:51 Titel: |
|
|
@ Michael: DANKE, jetzt hab ichs durch die referenz schon mal geschafft 2 mit 5 zu multiplizieren.
geht das auch mit komma zahlen? |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 20.02.2006, 00:16 Titel: |
|
|
So psygate, jetzt hast du es geschafft:
Ich habe mir nicht nur den NAsm runtergeladen, sondern auch gleich noch ein wenig
mit meinem Html-Workshop gespielt..
Wenn du des Englischen mächtig bist, hilft dir sicherlich der
fileanchor.com/20081-d Download von NAsm.chm von ytwinky für psygate
[Edit]
o.a. Link linkt nicht mehr, wg. fehlendem Chapter 2
Als Entschädigung dieser Download von NAsm.chm von ytwinky für psygate mit CrashKurs
..hoffentlich hülfts..
Wenn nicht, pechehat, ich kann nämlich englisch..
..und du mußt weitersuchen..
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO..
Zuletzt bearbeitet von ytwinky am 20.02.2006, 01:12, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
|