Błąd, który daje NASM (pomimo mojego działającego systemu operacyjnego) to "nieprawidłowy adres efektywny".80x86 16-bit asm: lea cx, [cx * 8 + cx] powoduje błąd na NASM (kompilacja pliku COM)
Teraz widziałem wiele przykładów użycia LEA i myślę, że mam to dobrze, ale mój NASM nie lubi tego. Próbowałem lea cx, [cx+9]
i zadziałało; lea cx, [bx+cx]
nie.
Teraz, jeśli rozszerzyłem swoje rejestry na 32-bitowe (tj. lea ecx, [ecx*8+ecx]
) wszystko byłoby dobrze, ale jestem ograniczony do korzystania tylko z rejestrów 16- i 8-bitowych.
Czy jest tu ktoś tak kompetentny, kto mógłby mi wytłumaczyć DLACZEGO mój asembler nie pozwala mi używać lea tak jak powinienem go używać?
myślę, że jesteś w błędzie, kiedy mówisz, że cx lea [cx + 9] pracował. –