Co do przypisania jednej zmiennej do drugiej bez użycia rejestrów, to użyj stosu:
[code]push zm1
pop zm2[/code]
lub dla ułatwienia wrzuć sobie takie makro:
[code]m2m MACRO M1, M2
push M2
pop M1
ENDM[/code]
użycie:
[code]m2m zm2,zm1[/code]
A jeśli chodzi o zmienną pStan, to taka deklaracja
[code]pStan 1 dup(0,0,0,0,0,0,0,0,0)[/code]
nie ma racji bytu. Jeśli chcesz mieć zmienną 9-bitową, to musisz zadeklarować słowo (2 bajty):
[code]pStan dw 0[/code]
i wtedy
[code]test pStan,00100000b[/code]
testuje młodszą połówkę pStan, a
[code]test pStan+1,0000100000b[/code]
testuje starszą połówkę.
Jeśli będziesz uznawał pStan za słowo, to 9 bit Twojej zmiennej prawdopodobnie lepiej będzie wstawić do starszej połówki, natomiast jeśli pStan uznasz za ciąg 2 bajtów, to ten 9 bit wstaw do pierwszego bajtu. Takie podejście wydaje mi się rozsądne.
P.S. Dlaczego ten tag [ code ] wstawia tyle denerwujących odstępów? :-8