immediate operant not allowed...



  • Hallo und guten Tag.

    Ich will folgendes machen:

    .model small
    
       .data
    message db "Hello World!$"
    ...
       .code
       .startup
    ...
    
       push offset messgae
    
    ...
    

    So. Das mit dem auf den Stack schieben des offsets des Strings message
    will mein assembler nicht erlauben.
    Der sagt dazu:

    immediate operand not allowed
    

    Was muss ich machen, damit der das erlaubt?

    Gruß
    Alex



  • Der böse Assembler! 😉

    Der Grund ist schlicht und einfach, dass es für diesen Befehl keinen Opcode gibt. Du musst die Operation anders ausführen, naheliegend wäre, den Wert zuerst in ein Register zu schreiben und dieses dann zu pushen.



  • oK, danke.

    Das ich die Adresse vorher schon in ein Register geschrieben habe, das hatte ich schon. Also geht der direkte Weg nicht.

    Vielen Dank
    Alex



  • Hm, also schon mein 486er kennt
    push imm8, push imm16 und push imm32
    Mehr kann ich so dazu nicht sagen. 😉



  • Nobuo T schrieb:

    Hm, also schon mein 486er ...

    OK OK ich nehm alles zurück und behaupte das Gegenteil :(. Der Assembler kann halt den 486er-Befehlssatz nicht, oder ist auf etwas älteres eingestellt.



  • Nach meiner Liste kann selbst der 8086 schon

    push imm16

    Probier aus Spass mal
    db 68 <- OpCode
    dw offset message



  • Nach meiner kann das erst der 286. :p



  • Hallo und danke für die vielen Antworten.

    Ich muss noch das ein oder andere hinzufügen.

    Ich programmiere assembler in cmd Konsole, also nicht unter DOS.
    Des Weiteren, ich verwende den MASM 6.15.

    Könnt Ihr damit mehr anfangen?

    In meinem Buch steht nämlich auch das push imm8,16,32 so funktioniert.

    Gruß
    Alex



  • DeineMutter schrieb:

    Hallo und danke für die vielen Antworten.

    Ich muss noch das ein oder andere hinzufügen.

    Ich programmiere assembler in cmd Konsole, also nicht unter DOS.
    Des Weiteren, ich verwende den MASM 6.15.

    Könnt Ihr damit mehr anfangen?

    In meinem Buch steht nämlich auch das push imm8,16,32 so funktioniert.

    Gruß
    Alex

    Soll das in deinem code echt "messgae" heißen und nicht "message"?

    (Irgendwie kommst du mir bekannt vor. Negativ gesehen)



  • Stimmt.
    Da ist ein Schreibfehler drin



  • Ja, das hab ich falsch geschrieben. Das hab ich auch nur so schnell als BSP da hin gekrizelt.

    Wie auch immer. Danke nochmal.

    Und @TGGC|_work:

    Woher meinst Du mich denn zu kennen, negativ gesehen? (Der Zusatz ist ganz wichtig! negativ negativ negativ...)
    Bist Du etwa einer der Dummschwätzer( vielleicht bist Dus ja auch nicht, deswegen fühl dich nicht gleich angesprochen ) von developia, den "Halbgöttern im Programmiererhimmel"?
    Wenn das so ist, dann kann das schon sein, denn da bin ich schon das ein oder andere mal NEGATIV aufgefallen, wobei das da nicht zu vermeiden ist, denn da mein jeder programmieren zu können. Wenn Du da mal anfängst, dann sind die alle gleich gegen Dich!

    Das einzige, was ich dieser Erfahrung beimessen kann, ist, dass ich dort keinen Beitrag mehr schreibe, und ich glaube, ja, das glaube ich sogar mir einer solchen Gewissheit, ich bin nicht der einzige.

    Gruß
    Alex



  • DeineMutter schrieb:

    Ja, das hab ich falsch geschrieben. Das hab ich auch nur so schnell als BSP da hin gekrizelt.

    Wie auch immer. Danke nochmal.

    Und @TGGC|_work:

    Woher meinst Du mich denn zu kennen, negativ gesehen? (Der Zusatz ist ganz wichtig! negativ negativ negativ...)
    Bist Du etwa einer der Dummschwätzer( vielleicht bist Dus ja auch nicht, deswegen fühl dich nicht gleich angesprochen ) von developia, den "Halbgöttern im Programmiererhimmel"?
    Wenn das so ist, dann kann das schon sein, denn da bin ich schon das ein oder andere mal NEGATIV aufgefallen, wobei das da nicht zu vermeiden ist, denn da mein jeder programmieren zu können. Wenn Du da mal anfängst, dann sind die alle gleich gegen Dich!

    Das einzige, was ich dieser Erfahrung beimessen kann, ist, dass ich dort keinen Beitrag mehr schreibe, und ich glaube, ja, das glaube ich sogar mir einer solchen Gewissheit, ich bin nicht der einzige.

    Gruß
    Alex

    Aha. Soso. nein ich bin nicht von developia oder wie das auch heißen mag.

    Man beachte trotzdem deinen niveaulosen Nick und den auffalenden Abschluss jedes Postings deiner Person. Unter Beachtung beider Aspekte kannst du nur die Person sein, die ich meine und das weißt du auch, QT alias Myon alias VB_Fan alias ...



  • Das Thema ist wohl damit erledigt.
    Stenkert per eMail weiter.


Anmelden zum Antworten