[asm] Samozmieniające się instrukcje

0

Witam. Piszę sobie programik w assemblerze i natrafiłem na pewien dziwny problem. W pewnym momencie po modyfikacji, rekompilacji i uruchomieniu programu dostaję błąd, że instrukcja jest niedozwolona. Debugger w dłoń i sprawdzam. I co widzę? Coś takiego:

user image

Tyle, że mój fragment kodu wygląda tak:

		lea si, outputbuf
		add si, 15

		lea bx, mantissa1
		add bx, 7

		mov cx, 7
		composeloop:
			mov al, byte ptr [bx]
			and al, 15
			mov byte ptr [si], al
			dec si
			mov al, byte ptr [bx]
			and al, 240
			shr al, 4

A co chodzi? Jakie błędy mogą powodować takie dziwactwa?

0

Piszesz kod jako 16 czy 32 bitowy ?
A jak go interpretuje kompilator czy jako 16 czy 32 bitowy ?

0
Nevar napisał(a)

Piszesz kod jako 16 czy 32 bitowy ?
A jak go interpretuje kompilator czy jako 16 czy 32 bitowy ?

No cóż, wydaje mi się, że w obu przypadkach odpowiedź brzmi 16 bitów ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1