Редактировать: Ответил мой собственный вопрос. Смотри ниже. -_-Переменные, ведя себя странно (Intel 8086)
У меня есть переменная, определенный в .data сегмент следующим образом:
retVal DW 0100h ;stores hex fraction of the intermediate value. Starts at 1.00
Это значение, которое я добавить или вычесть, чтобы получить мое возвращаемое значение.
В первый раз, он показывает вверх в сегменте коды находится в следующей точке:
sub [retVal], ax ;
я использовал отладчик, и может подтвердить, что во время этой операции, регистр топора: 0000h ,
Тем не менее, если я добавлю следующую строку кода непосредственно перед ней:
mov dx, 0100h;
mov [retVal], 0100h;
я получаю совершенно другое значение (также неправильно). Я довольно озадачен. Я принципиально неправильно использую переменные здесь? Я не понимаю, почему при загрузке того же значения, которое первоначально была инициализирована переменная (и еще не изменена), она изменила бы результаты.
Любые идеи? В противном случае, может кто-нибудь напомнить мне, как отслеживать значение переменной через CodeView? (Отладчик DOSBox, который я использую)
Мы не сможем догадаться, что происходит не так, если вы только показываете нам строки кода, которые вы * думаете * вызывают проблему. Пожалуйста, разместите короткий, полный пример, демонстрирующий проблему, которую вы видите. Не забудьте четко указать как * ожидаемые *, так и * фактические * результаты. –