Xor na obszarze pamięci. Asembler.

0

Witam.
Mam pewien problem, pewnie błachy, lecz nie wiem dlaczego tak się dzieje.
Jeśli wykonam w asemblerze taką operację:
xor [ebx], dl
W ebx znajduje się adres początku obszaru pomięci gdzie jest ciąg znaków char.
W dl mam jakiś losowy bajt.
Przy uruchomieniu tego visual wywala mi Exception thrown. Acces violation writing location...

Dlaczego nie mogę operować bezpośrednio na pamięci ?

0

pewnie błachy
błahy czy blachy?

W ebx znajduje się adres początku obszaru pomięci gdzie jest ciąg znaków char.
Czyżby?

Dlaczego nie mogę operować bezpośrednio na pamięci
Najwyraźniej nie masz do niej dostępu, albo ebx jest śmieciowy. Więcej nie da się powiedzieć na podstawie jednej linijki kodu...

?
Nie stawiamy spacji przed znakiem zapytania.

0
AsemDlikeToBe napisał(a):

Dlaczego nie mogę operować bezpośrednio na pamięci ?

Odwróćmy pytanie: a dlaczego się spodziewasz, że możesz operować bezpośrednio na pamięci? Bezpośrednio może operować tylko system operacyjny.

W tej konkretnej sytuacji zgaduję, że, o ile wskaźnik masz dobry, próbujesz modyfikować const char *. A skoro jest const, to dostajesz słusznie po łapkach.

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