Einzelnen Beitrag anzeigen

mumu

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

Assembler und Zeiger

  Alt 4. Jan 2006, 10:27
Also ich hab folgenden Code:

Code:
.MODEL     TINY
.STACK     384

.DATA
  Operand      DB     'Hello$'
  Zeiger      DW   OFFSET Operand
  BefehlsAdressZeiger    DW   OFFSET Marke

;$-begrenzte Ausgabe am Bildschirm
  DollarPutVdu MACRO VirtPufAdr   
    ;VirtPufAdr: 1)Immediate 2)DS-Wort-Bezeichner 3)Register
    PUSH DX      ; Retten in Keller
    PUSH AX      ; Retten
    MOV DX,VirtPufAdr   ; das zuerst, damit auch "DollarPutVdu AX" geht!
    MOV AH,09h
    INT 33
    POP AX      ; Restaurieren aus Keller
    POP DX      ; Restaurieren
  ENDM

.CODE
Startpunkt:
  MOV AX,@DATA
  MOV DS,AX
           
  MOV BX, [Zeiger] ; (1)
  DollarPutVdu BX
         
Marke:
           
  MOV AH,76 ; Programm beenden
  INT 33
END Startpunkt;
was ist jetzt richtiger?! und vorallem warum?

wenn ich bei (1)
MOV BX, Zeiger oder MOV BX, [Zeiger]
mache.

funktionieren tuen beide sachen in meinem Assembler.

meiner meinung nach ist doch
MOV BX, [Zeiger]
richtiger..., weil ich ja den Inhalt von Zeiger (also den OFFSET Operand) haben möchte, um dann über die Offset Adresse Operand auszugeben.

[Soweit ich das aber in erinnerung habe, hat mein prof gemeint das andere (MOV BX, Zeiger) ist richtig ???]
  Mit Zitat antworten Zitat