Variable deklarieren



  • Hallo

    Wie kann man in d. assemblersprache namen für adressbereiche zulegen (also variablen deklarieren) und welche Datentypen gibt es in Assembler? Habe derzeit nur in C gearbeitet und muss jetzt folgende Aufgabe in Assembler lösen:

    Zahlen Z0 und Z1 müssen addiert werden.
    Die Adresse von Z0 steht in R0(Register0) und die von Z2 in R1.
    In R2 steht die Adresse von Z3, an die das Ergebniss gespeichert werden soll.

    Mein Ansatz:

    MOV R0, @Z0
    MOV R1, @Z1
    
    Mov a, @R0
    add a, @R1
    MOV R2, @Z3
    Mov @R2, a
    

    Problem ist jetzt halt das er Z1-Z3 nicht kennt.. vll weiß jemand ne lösung

    mfg



  • martinw schrieb:

    Wie kann man in d. assemblersprache namen für adressbereiche zulegen

    Ich bin mir ziemlich sicher, dass das auch bei euch bereits erwaehnt wurde: Die Assemblersprache gibt es nicht. Jeder Assembler kocht da sein eigenes Sueppchen - teilweise bei gleicher Prozessorarchitektur sogar bei der Syntax der Mnemonics.

    Nun kenne ich aber weder die von euch verwendete CPU, noch den Assembler. Ich schlage deshalb vor, dass du einfach mal google nach beiden bemuehst.



  • Z0, Z1 und Z2 müssen Labels sein, wo dann im Speicher deren Werte drin stehen. Labels zeigen also auf Adressen und können daher synonym für Variablen benutzt werden.

    So in etwa dürfte das mit jedem Assembler gehen:

    main:
    	mov a, [z0]
    	add a, [z1]
    	mov [z2]
    
    	jmp end
    
    end:
    	jmp end
    
    z0:
    	.db 10
    
    z1:
    	.db 20
    
    z2:
    	.db 0
    

Anmelden zum Antworten