пытаясь разделить 16 бит на 16 бит в TASM [duplicate]

У меня тоже была эта проблема. Простой «gradlew clean» и «gradlew build» сделали трюк.


Нажмите Build-> Clean Project и выполнит очистку gradle

0
задан 6 May 2017 в 12:16
поделиться

1 ответ

Turbo Debugger устанавливает набор регистров в 0 при загрузке программы. При запуске MS-DOS эти регистры не имеют значения null. Информация, которая регистрируется, должна быть нулевой, которую вы можете достигнуть, добавив

xor ax, ax
xor bx, bx
xor cx, cx
xor dx, dx
xor si, si
xor di, di
xor bp, bp

в начале процедуры запуска и последовательно комментируя ее. Получается, что правонарушитель DX. Итак, найдите первую функцию или инструкцию, которая ожидает нулевой в этом регистре. Я нашел его в первой инструкции div в FindWidthForColAndSpace. Этот div выполняет DX:AX/BX и поэтому нуждается в значении в DX. Не случайно ли линия xor dx, dx следует за div? Это должно быть перед ним.

1
ответ дан rkhb 20 August 2018 в 11:15
поделиться
  • 1
    Thats решил мою проблему. Я никогда не знал, что отладчик делает это. Я не знаю, что именно делает моя проблема. Но я найду его, когда узнаю, в чем проблема. Большое спасибо – user 6 May 2017 в 17:11
Другие вопросы по тегам:

Похожие вопросы: