[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, botów: 0