Важная информация
Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 17

Тема: Ошибка в дебаге.

  1. #1 Ошибка в дебаге. 
    Профи
    Регистрация
    08.11.2010
    Сообщений
    106
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    Ввожу в режиме ассемблирования (-А) команду AND AL,0FEH

    выдает:

    Код :
    191A:0105  AND AL,0FEH
    Ошибка:                             ^



    В чем дело? Почему ошибка? Пример из книжки Журдена.
    Код :
    Для  простого гудка лучше всего подходит метод, основанный  на
    использовании микросхемы  интерфейса  с  периферией 8255 [1.1.1].
    Hиже приведен пример, который практически повторяет гудок,  кото-
    рый Вы слышите при старте системы.
    ;---гудок динамика
                MOV  DX,800          ;счетчик числа циклов
                IN   AL,61H          ;читаем порт B 8255
                AND  AL,0FEH         ;выключаем бит таймера 8253
    NEXTCYCLE:  OR   AL,2            ;включаем бит динамика
                OUT  61H,AL          ;посылаем байт в порт B
                MOV  CX,150          ;длительность первой половины
    CYCLEUP:    LOOP CYCLEUP         ;задержка пока сигнал высокий
                AND  AL,0FDH         ;выключаем бит динамика
                OUT  61H,AL          ;посылаем байт в порт B
    CYCLEDOWN:  LOOP CYCLEDOWN       ;задержка пока сигнал низкий
                DEC  DX              ;уменьшаем счетчик циклов
                JNZ  NEXTCYCLE       ;повторяем цикл пока DX не 0
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    Ответить с цитированием  
     

  2. #2  
    Гуру Аватар для Абадябер
    Регистрация
    09.12.2010
    Адрес
    Беларусь, Минск
    Сообщений
    1,219
    Сказал(а) спасибо
    302
    Поблагодарили 176 раз(а) в 144 сообщениях
    Записей в блоге
    5
    Не ожидал такого =). По идее должно работать - видно какие то причуды дебага. Не получается сработать с числами более 99 в этой команде and =)
    Пользуйся лучше простым ассемблером, хотя конечно, узнать причину ошибки стоило - меня заинтирговало аж
    По сути все должно работать. Al - регистр 8 битовый и должен вмещать значения от нуля до 255. команда and в свою очередь принимает 8 битные операнды.
    Последний раз редактировалось Абадябер; 18.01.2011 в 04:33.
    Дружба-магия-радость!
    Ответить с цитированием  
     

  3. #3  
    Гуру Аватар для Konstantin Shcherba
    Регистрация
    08.11.2010
    Сообщений
    1,336
    Сказал(а) спасибо
    26
    Поблагодарили 139 раз(а) в 107 сообщениях
    Записей в блоге
    1
    fizuch, попробуйте такую запись:
    Код :
    AND AL,FE

    Метки в дебаге тоже не поддерживаются - их придется считать вручную.
    Ответить с цитированием  
     

  4. #4  
    Гуру Аватар для Абадябер
    Регистрация
    09.12.2010
    Адрес
    Беларусь, Минск
    Сообщений
    1,219
    Сказал(а) спасибо
    302
    Поблагодарили 176 раз(а) в 144 сообщениях
    Записей в блоге
    5
    Это работает. Но накладывает некоторые ограничения.
    Дружба-магия-радость!
    Ответить с цитированием  
     

  5. #5  
    Гуру Аватар для Konstantin Shcherba
    Регистрация
    08.11.2010
    Сообщений
    1,336
    Сказал(а) спасибо
    26
    Поблагодарили 139 раз(а) в 107 сообщениях
    Записей в блоге
    1
    Например какие?
    Ответить с цитированием  
     

  6. #6  
    Профи
    Регистрация
    08.11.2010
    Сообщений
    106
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    Цитата Сообщение от admin Посмотреть сообщение
    fizuch, попробуйте такую запись:
    Код :
    AND AL,FE

    Метки в дебаге тоже не поддерживаются - их придется считать вручную.
    Метки он показывает в процессе ввода - сразу адреса видно - на них и ссылаюсь! А вот как раз константы он тока в НЕХ и принимает. поэтому начинать число можно с буквы и не надо ставить Н в конце. Вот и ошибку давал!
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    Ответить с цитированием  
     

  7. #7  
    Гуру Аватар для Konstantin Shcherba
    Регистрация
    08.11.2010
    Сообщений
    1,336
    Сказал(а) спасибо
    26
    Поблагодарили 139 раз(а) в 107 сообщениях
    Записей в блоге
    1
    Это эффективно только для переходов вперед, переходы назад надо рассчитывать вручную, помня сколько байт занимает каждая команда, либо править адреса уже после ввода программы.
    Ответить с цитированием  
     

  8. #8  
    Гуру Аватар для Абадябер
    Регистрация
    09.12.2010
    Адрес
    Беларусь, Минск
    Сообщений
    1,219
    Сказал(а) спасибо
    302
    Поблагодарили 176 раз(а) в 144 сообщениях
    Записей в блоге
    5
    Вводить числа неудобно, нельзя ввести нужное большое число не в hex в 8 бит регистр. Ну, как бы там ни было - главное что debug работает
    Дружба-магия-радость!
    Ответить с цитированием  
     

  9. #9  
    Гуру Аватар для Konstantin Shcherba
    Регистрация
    08.11.2010
    Сообщений
    1,336
    Сказал(а) спасибо
    26
    Поблагодарили 139 раз(а) в 107 сообщениях
    Записей в блоге
    1
    Не совсем понял, в половинку регистра можно поместить максимум FF, это ограничение процессора. Другие системы счисления, кроме шестнадцатеричной в debug не поддерживаются.
    Ответить с цитированием  
     

  10. #10  
    Профи
    Регистрация
    08.11.2010
    Сообщений
    106
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    Цитата Сообщение от admin Посмотреть сообщение
    Не совсем понял, в половинку регистра можно поместить максимум FF, это ограничение процессора. Другие системы счисления, кроме шестнадцатеричной в debug не поддерживаются.
    В MASM и других константы пишутся по разному. Бинарные - с буковкой В в конце, шестнадцатиричные с цифры должны начинаться и Н оканчиваться. А в дебаге Все числа - в НЕХ`е. Я этого не знал и решил что что-то не так, когда вводил and al,0fdH
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    Ответить с цитированием  
     

Страница 1 из 2 12 ПоследняяПоследняя
Информация о теме
Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 2
    Последнее сообщение: 23.08.2012, 18:16
  2. Ошибка в графическом режиме qbasic
    от Роман в разделе QBasic
    Ответов: 5
    Последнее сообщение: 11.08.2011, 00:24
Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •