Zadajme:
int gla, glb = 3;Dostaneme:
char msg[]="hello world", glc, *glpc;
method_a () {
gla = glb;
glc = 'x';
glpc = msg;
}
; gla = glb;do primárneho registrového páru sa načítala hodnota na adrese glb a uložila sa na adresu gla
lhld glb
shld gla
; glc = 'x';do HL sa načítalo 'x' čo je ASCII 120, všimnime si, že aj typ char sa načítava do registrového páru. Následne sa už správne uložila len hodnota z L do A a v poslednom kroku sa uložil A na adresu glc
lxi h,#120
mov a,l
sta glc
; glpc = msg;do HL sa načítala adresa začiatku poľa msg. V C sú stringy interpretované ako char array. Adresa poľa msg sa uložila na adresu glpc.
lxi h,msg
shld glpc
Na konci nasledujú deklarácie:
gla:gla je int, má rezervované dva byte. Keďže nemá inicializačnú časť, bola mu defaultne daná hodnota 0
.dw #0
glb:glb má hodnotu 3, presne ako má v inicializačnej časti
.dw #3
msg:msg je pole bytov, inicializované na znaky hello world, ukončené 0.
.db #104,#101,#108,#108,#111,#32,#119,#111,#114,#108
.db #100,#0
No comments:
Post a Comment