Ich habe zwei Fragen.Gleiche Segmente in mehreren ASM-Dateien und Adressierungsmodi
Ich bin mit Keil uVision (v. 5.14.2.1) und Nordic Semiconductors nRF24LE1 (8051 MCU)
Frage 1
Ich habe zwei Quelldateien. Main.asm und Functions.asm Ich erstelle ein Code-Segment in Main.asm und möchte Code in Functions.asm in demselben Segment geschrieben werden. Ist es möglich, und wie mache ich das? Siehe Beispiel unten, wie ich versuche, es zu tun
main.asm
; Main.asm
extrn code (extFunc)
?PR?SEG?A segment code
?PR?SEG?B segment code
rseg ?PR?SEG?A
Main:
MOV A, P0
CPL A
MOV P0, A
SJMP Main
rseg ?PR?SEG?B
Something:
ACALL extFunc
Functions.asm
; Functions.asm
public extFunc
rseg ?PR?SEG?B
extFunc:
CLR A
RET
Frage 2
das Codebeispiel siehe unten mit Kommentaren
; Question 2
?PR?MYCODE segment code
?DA?MYDATA segment data
rseg ?DA?MYDATA
varA:
ds 1
rseg ?PR?MYCODE
Main:
MOV varA, #0x00 ; Line 1
MOV A, varA ; Line 2
MOV A, #varA ; Line 3
Ist das richtig?
Zeile 1: Setzt varA (wo immer das im Speicher ist) = 0x00?
Zeile 2: A = varA = 0x00?
Zeile 3: A = Adresse von varA?
Wenn Zeile 3 nicht korrekt ist. Wie bekomme ich die Adresse von varA?