AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Assembler und Zeiger

Ein Thema von mumu · begonnen am 4. Jan 2006 · letzter Beitrag vom 4. Jan 2006
Antwort Antwort
Seite 2 von 2     12   
Neotracer64

Registriert seit: 27. Okt 2004
292 Beiträge
 
Delphi 7 Professional
 
#11

Re: Assembler und Zeiger

  Alt 4. Jan 2006, 13:32
Du willst ja zur Marke springen und nicht dahin was in der Marke steht (geht auch nich).
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#12

Re: Assembler und Zeiger

  Alt 4. Jan 2006, 14:49
Zitat von mumu:
und was ist damit:

MOV BX,OFFSET Marke
JMP [BX] ;warum muss ich hier JMP BX anstatt JMP [BX] verwenden?!?!?!

Marke:
Weil beides geht!
Code:
jmp BX     ; <-- IP = BX
jmp [BX]   ; <-- IP = [DS:BX]
Die zweite Variante wird z.B. für switch/case-Statements benutzt.

Zitat von opfer.der.genauigkeit:
Hi,

ich habe nur bescheidene ASM-Kenntnisse aber soweit ich weiß, empfiehlt sich der Befehl
lea. Lea ist in die elegantere Variante.

Code:
mov bx, offset Text ---> lea bx, text
LEA ist keine Variante von MOV sondern ein komplett anderer Befehl mit eigenem Opcode. Allerdings übersetzen einige Assembler "LEA BX, Const" mit Konstanten automatisch in "MOV BX, OFFSET Const".
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#13

Re: Assembler und Zeiger

  Alt 4. Jan 2006, 14:56
Um auf das [Variable] Problem nochmal zu sprechen zu kommen:
Der TASM bietet hierfür den IDEAL Modus an. Bei diesem muss man explizit die Dereferenzierung mittels eckigen Klammern vornehmen. Ohne Klammern ist sonst die Adresse gemeint.

Code:
.IDEAL

MyVar dw 0

mov ax, MyVar
mov [ax], 1460
mov cx, [MyVar]
  Mit Zitat antworten Zitat
mumu

Registriert seit: 28. Okt 2003
Ort: Bamberg
519 Beiträge
 
#14

Re: Assembler und Zeiger

  Alt 4. Jan 2006, 15:04
Zitat von jbg:
Um auf das [Variable] Problem nochmal zu sprechen zu kommen:
Der TASM bietet hierfür den IDEAL Modus an. Bei diesem muss man explizit die Dereferenzierung mittels eckigen Klammern vornehmen. Ohne Klammern ist sonst die Adresse gemeint.

Code:
.IDEAL

MyVar dw 0

mov ax, MyVar
mov [ax], 1460
mov cx, [MyVar]
das wäre genau das, was ich brauchen könnte.
aber leider meldet er mir:
**Error** DEMO1.ASM(5) Illegal instruction

vielleicht liegts an meiner TASM Version? hab 1.01
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#15

Re: Assembler und Zeiger

  Alt 4. Jan 2006, 15:08
Zitat von mumu:
TASM Version? hab 1.01
Das wurde IMHO ab Version 3.0 eingeführt.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz