Ответы пользователя по тегу Assembler
  • Как на Ассемблере сделать сложные условия?

    gbg
    @gbg Куратор тега Программирование
    Любые ответы на любые вопросы
    cmp ax, 1
    je :action1
    cmp ax, 2
    je :action2
    
    ;тут ребут
    
    :action1:
    тут вызов справки
    jmp :done
    
    :action2:
    тут вызов редактора
    jmp :done
    
    :done
    тут конец
    Ответ написан
    4 комментария
  • Алгоритм приведения вещественного числа к одинарной точности?

    gbg
    @gbg
    Любые ответы на любые вопросы
    А просто. Берете компилятор С++, отправляете в него что-то типа
    volatile double a;
    cin >> a;
    volatile float b=a;

    Потом компилируете это в ассемблерный листинг (у gcc это ключ -S) и смотрите, что получилось.

    На современных процессорах это делает инструкция CVTSD2SS
    Ответ написан
  • На каком языке пишутся системные библиотеки?

    gbg
    @gbg Куратор тега Windows
    Любые ответы на любые вопросы
    Они написаны на C, возможно со вставками ассемблера. Исходные тексты их функциональных аналогов можно посмотреть в reactOS или wine.
    Ответ написан
    Комментировать
  • Как преобразовать определенные биты в числе?

    gbg
    @gbg Куратор тега Программирование
    Любые ответы на любые вопросы
    Генерировать числа, которые в двоичной системе счисления соответствуют нужным.
    Например, чтобы установить 1 в n разряде числа, можно использовать сдвиг:
    a = 1 << n;
    Ответ написан
    Комментировать
  • Можно ли писать на ассемблере под android/ios/blackberry?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Можно. Но это будет довольно затруднительно.
    Ответ написан
    Комментировать
  • Как работает контроллер последовательного асинхронного приема данных?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Ровно также, как ваши мозги при списывании лекции:
    • вы узнаете, с какого места начать списывать, и на каком месте закончить
    • когда заканчиваете, вы говорите "все, я закончил"

    при этом информация минует ваше сознание, перемещаясь сразу в тетрадь.
    ~~~~~~~~~~~~~~так, это я с КПДП (DMA) перепутал, а спрашивают про USART
    Статью на вики читали? Там подробно описан алгоритм работы:
    Стартовый бит всегда логический 0, поэтому приёмник UART ждёт перепада из 1 в 0 и отсчитывает от него временной промежуток в половину длительности бита (середина передачи стартового бита). Если в этот момент на входе всё ещё 0, то запускается процесс приёма минимальной посылки. Для этого приёмник отсчитывает 9 битовых длительностей подряд (для 8-бит данных) и в каждый момент фиксирует состояние входа. Первые 8 значений являются принятыми данными, последнее значение проверочное (стоп-бит). Значение стоп-бита всегда 1, если реально принятое значение иное, UART фиксирует ошибку.


    Собственно больше здесь добавить нечего. Уточняйте вопрос.

    Пример такой: две соседки в соседних корпусах общаги.
    Одна постоянно орет ААААААААААААААА.....
    Вторая ее постоянно случает. Когда ор сменяется на OOOO, она заводит будильник на определенное время.
    Когда будильник звонит, она записывает, какую букву слышит. Если она все еще слышит OOO, она снова заводит будильник, потом он звонит, она записывает букву....

    И так 9 раз, пока все биты не передадутся.
    После последнего бита передающая соседка снова орет АААААА
    Ответ написан
  • Компьютеры и сервера без операционных систем общего назначения?

    gbg
    @gbg Куратор тега Программирование
    Любые ответы на любые вопросы
    Идея такая у меня есть, и задача есть.

    Проблема в том, что те жалкие дополнительные проценты производительности будут достигнуты таким титаническим трудом, что страшно себе представить.

    В целом, поставщики тяжелых задач обычно предпочитают прикупить пару-тройку сотен ядер, чем вымучивать ПО в погоне за лишним процентиком в отчете.
    Ответ написан
    Комментировать