Why does the value that DI is pointing to change when I changed the value that SI is pointing to?












1















push si
push [bx]
mov si, [si]
mov [bx], si
mov di, bx
pop bx
pop si
mov [si], bx


This is my code. For some reason the value that di is pointing to changes after mov[si], bx (the last line).
Does anybody know why?



Edit: Both si and di are pointing to values in the same array, which is defined as db. The value that di is pointing to becomes the value after it in the array.










share|improve this question




















  • 2





    Maybe si and di point to the same memory address?

    – tkausl
    Nov 16 '18 at 10:46











  • No, they don't.

    – Gderu
    Nov 16 '18 at 10:48






  • 3





    You probably have a byte array but you are writing words so affecting two elements at a time.

    – Jester
    Nov 16 '18 at 11:12











  • Huh, you're right! Thanks a lot!

    – Gderu
    Nov 16 '18 at 11:30
















1















push si
push [bx]
mov si, [si]
mov [bx], si
mov di, bx
pop bx
pop si
mov [si], bx


This is my code. For some reason the value that di is pointing to changes after mov[si], bx (the last line).
Does anybody know why?



Edit: Both si and di are pointing to values in the same array, which is defined as db. The value that di is pointing to becomes the value after it in the array.










share|improve this question




















  • 2





    Maybe si and di point to the same memory address?

    – tkausl
    Nov 16 '18 at 10:46











  • No, they don't.

    – Gderu
    Nov 16 '18 at 10:48






  • 3





    You probably have a byte array but you are writing words so affecting two elements at a time.

    – Jester
    Nov 16 '18 at 11:12











  • Huh, you're right! Thanks a lot!

    – Gderu
    Nov 16 '18 at 11:30














1












1








1








push si
push [bx]
mov si, [si]
mov [bx], si
mov di, bx
pop bx
pop si
mov [si], bx


This is my code. For some reason the value that di is pointing to changes after mov[si], bx (the last line).
Does anybody know why?



Edit: Both si and di are pointing to values in the same array, which is defined as db. The value that di is pointing to becomes the value after it in the array.










share|improve this question
















push si
push [bx]
mov si, [si]
mov [bx], si
mov di, bx
pop bx
pop si
mov [si], bx


This is my code. For some reason the value that di is pointing to changes after mov[si], bx (the last line).
Does anybody know why?



Edit: Both si and di are pointing to values in the same array, which is defined as db. The value that di is pointing to becomes the value after it in the array.







assembly x86-16






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 16 '18 at 11:04







Gderu

















asked Nov 16 '18 at 10:44









GderuGderu

368




368








  • 2





    Maybe si and di point to the same memory address?

    – tkausl
    Nov 16 '18 at 10:46











  • No, they don't.

    – Gderu
    Nov 16 '18 at 10:48






  • 3





    You probably have a byte array but you are writing words so affecting two elements at a time.

    – Jester
    Nov 16 '18 at 11:12











  • Huh, you're right! Thanks a lot!

    – Gderu
    Nov 16 '18 at 11:30














  • 2





    Maybe si and di point to the same memory address?

    – tkausl
    Nov 16 '18 at 10:46











  • No, they don't.

    – Gderu
    Nov 16 '18 at 10:48






  • 3





    You probably have a byte array but you are writing words so affecting two elements at a time.

    – Jester
    Nov 16 '18 at 11:12











  • Huh, you're right! Thanks a lot!

    – Gderu
    Nov 16 '18 at 11:30








2




2





Maybe si and di point to the same memory address?

– tkausl
Nov 16 '18 at 10:46





Maybe si and di point to the same memory address?

– tkausl
Nov 16 '18 at 10:46













No, they don't.

– Gderu
Nov 16 '18 at 10:48





No, they don't.

– Gderu
Nov 16 '18 at 10:48




3




3





You probably have a byte array but you are writing words so affecting two elements at a time.

– Jester
Nov 16 '18 at 11:12





You probably have a byte array but you are writing words so affecting two elements at a time.

– Jester
Nov 16 '18 at 11:12













Huh, you're right! Thanks a lot!

– Gderu
Nov 16 '18 at 11:30





Huh, you're right! Thanks a lot!

– Gderu
Nov 16 '18 at 11:30












1 Answer
1






active

oldest

votes


















0














Jester was correct, I added words to an array of bytes which changed not only the specific part I was trying to change but also the parts around it.






share|improve this answer



















  • 1





    Upvote for answering your own question! Always nice to see that.

    – fuz
    Nov 16 '18 at 11:57












Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53336250%2fwhy-does-the-value-that-di-is-pointing-to-change-when-i-changed-the-value-that-s%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









0














Jester was correct, I added words to an array of bytes which changed not only the specific part I was trying to change but also the parts around it.






share|improve this answer



















  • 1





    Upvote for answering your own question! Always nice to see that.

    – fuz
    Nov 16 '18 at 11:57
















0














Jester was correct, I added words to an array of bytes which changed not only the specific part I was trying to change but also the parts around it.






share|improve this answer



















  • 1





    Upvote for answering your own question! Always nice to see that.

    – fuz
    Nov 16 '18 at 11:57














0












0








0







Jester was correct, I added words to an array of bytes which changed not only the specific part I was trying to change but also the parts around it.






share|improve this answer













Jester was correct, I added words to an array of bytes which changed not only the specific part I was trying to change but also the parts around it.







share|improve this answer












share|improve this answer



share|improve this answer










answered Nov 16 '18 at 11:36









GderuGderu

368




368








  • 1





    Upvote for answering your own question! Always nice to see that.

    – fuz
    Nov 16 '18 at 11:57














  • 1





    Upvote for answering your own question! Always nice to see that.

    – fuz
    Nov 16 '18 at 11:57








1




1





Upvote for answering your own question! Always nice to see that.

– fuz
Nov 16 '18 at 11:57





Upvote for answering your own question! Always nice to see that.

– fuz
Nov 16 '18 at 11:57




















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53336250%2fwhy-does-the-value-that-di-is-pointing-to-change-when-i-changed-the-value-that-s%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

List item for chat from Array inside array React Native

Thiostrepton

Caerphilly