«« ( Date ) »» // «« ( Thread ) »» // ir3sp - 2009

Pitanja u vezi domaceg

by Luka Stojanovic
nedelja, 20. decembar 2009 - 14:22.

Postovani,

U primerima sa predavanja i vezbi pojavljuju se konstrukcije poput

MCSET N=N+1

i

C##N

gde N treba da bude zamenjeno trenutnom vrednoscu. Sa druge strane u tekstu domaceg pise da upotreba
parametara makroa i makropromenljivih treba da bude po uzoru na C
pretprocesor koji ne moze da redefinise vrednost neke makrodefinicije relativno u odnosu na prethodnu vrednost, a ## operator iz gornjeg primera bi vratio CN i kad N ima definisanu vrednost. Kakvo ponasanje treba da pokaze nas pretprocesor (ako se na to mislilo pod "upotreba").

Na osnovu materijala sa vezbi, pretpostavljam da sa strane kako sintakse tako i ponasanja, nas program treba da radi sledece:

ulaz:

MCSET N 3
MCDEFN
ADDN X
MOV ax, X
ADD ax, N
MCEND

ADDN 5

izlaz:

MOV ax, 5
ADD ax, 3

ulaz:

MCSET N 3
MCDEFN
GENLAB
L##N
MCEND

GENLAB: NOP

izlaz:

L3: NOP

takodje pretpostavljam da ne treba da podrzimo operacije nad makropromenljivim tako da:

ulaz:

MCSET N 3
MCDEFN
GENLAB
L##N
MCSET N N+1
MCEND

GENLAB: NOP
GENLAB: NOP

izlaz:

L3: NOP
LN+1: NOP

ili

L3: NOP
L3+1: NOP

Jesu li ovo opravdane pretpostavke?

Pozdrav,
Luka