На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Перед отправкой сообщения внимательно прочтите правила раздела!!!
1. Запрещается обсуждать написание вирусов, троянов и других вредоносных программ!
2. Помните, что у нас есть FAQ раздела Assembler и Полезные ссылки. Посмотрите, возможно, там уже имеется решение вашего вопроса.

3. Настоятельно рекомендуем обратить особое внимание на правила форума, которые нарушаются чаще всего:
  3.1. Заголовок темы должен кратко отражать её суть. Темы с заголовками типа "Срочно помогите!" или "Ассемблер" будут отправляться в Корзину для мусора.
  3.2. Исходники программ обязательно выделяйте тегами [code]...[/code] (одиночные инструкции можно не выделять).
  3.3. Нежелательно поднимать старые темы (не обновлявшиеся более года) без веской на то причины.

Не забывайте также про главные Правила форума!

Добро пожаловать и приятного вам общения!!! ;)
 
Модераторы: Jin X, Qraizer
  
> Что за глюк с командой DIV ?
    ExpandedWrap disabled
      <br>.model tiny<br>.code<br>org(100h)<br>start:<br> mov ax,100<br> mov bx,5<br> div bx<br>ret<br>end start<br>


    Откомпильте эти нехитрые строчки у себя и объясните, пожалуйста, почему в отладчике всё нормально , а запуск программы прерывается сообщением:
    ExpandedWrap disabled
      <br>Your program caused a divide overflow error.<br>If the problem persists, contact your program vendor<br>


    В чём тут проблема ?
      Потому что DIV с байтом делит слово AX на байт, а DIV со словом делит двойное слово DX:AX на это слово.... В отладчике у тебя наверняка DX=0 при запуске, а в жизни DX=PSP! Добавь XOR DX,DX перед тем, как делить и всё будет тип-топ....
        И, кстати, если результат деления > 65535, то возникает ошибка, такая же, как и при делении на ноль!
          Да... про DX я и не подумал, стормозил  :(

          ExpandedWrap disabled
            <br>а в жизни DX=PSP! <br>


          Как так  ???
            ExpandedWrap disabled
              .MODEL Tiny<br>.286<br>.CODE<br>ORG     100h<br><br>Start:<br><br>        push    ax<br><br>        pushf<br>        pop     ax<br>        int     29h<br>        mov     al,ah<br>        int     29h<br><br>        pop     ax<br>        int     29h<br>        mov     al,ah<br>        int     29h<br><br>        xchg    ax,bx<br>        int     29h<br>        mov     al,ah<br>        int     29h<br><br>        xchg    ax,cx<br>        int     29h<br>        mov     al,ah<br>        int     29h<br><br>        xchg    ax,dx<br>        int     29h<br>        mov     al,ah<br>        int     29h<br><br>        xchg    ax,si<br>        int     29h<br>        mov     al,ah<br>        int     29h<br><br>        xchg    ax,di<br>        int     29h<br>        mov     al,ah<br>        int     29h<br><br>        xchg    ax,bp<br>        int     29h<br>        mov     al,ah<br>        int     29h<br><br>        mov     ax,sp<br>        int     29h<br>        mov     al,ah<br>        int     29h<br><br>        mov     ax,cs<br>        int     29h<br>        mov     al,ah<br>        int     29h<br><br>        mov     ah,9<br>        lea     dx,Msg<br>        int     21h<br><br>        int     20h<br><br>Msg     DB      13,10,'FlAxBxCxDxSiDiBpSpCs$'<br><br>END Start

            Fl - это Flags
            1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0220 ]   [ 14 queries used ]   [ Generated: 20.05.24, 05:41 GMT ]