Найти в Дзене
Ассемблер. Логические команды.
Всего к логическим относятся четыре команды AND, OR, XOR и NOT, переводятся имена команд: "и", "или", "исключающее или" и "нет" соответственно. Все они предназначены для побитового сравнения двух операндов, кроме команды NOT - это команда преобразвания. Рассмотрим поочередно логику работы этих команд. Результат работы команды AND будет таким: 0 + 0 = 0 0 + 1 = 0 1 + 0 = 0 1 + 1 = 1 то есть если сравниваются два байта 01001011b и 11000001b, то результате мы получим 01000001b. Команда OR работает...
8 месяцев назад
Ассемблер. Оконное приложение на ассемблере
Знаете что такое "черный ящик"? В свое время разрабатывая 32-битную графическую ОС специалисты из Майкрософт решили, что она должна работать по принципу "черного ящика", т.е., программистам теперь не нужно вникать в работу "железа" в компьютере, достаточно знать где и как применять API-функции в программе. У этого принципа несомненно много плюсов, но и минусов тоже хватает - все больше отдаляясь знания принципов работы процессора, памяти, стека и т.п., программисты много теряют в скорости, размерах, функциональности своих приложений...
11 месяцев назад
Ассемблер. Секреты загрузочного сектора.
На титульной картинке статьи вы видите ассемблерный шаблон для создания диска в формате FAT32. Не все поля заполнены, поля отмеченные восклицательным знаком обязательны для заполнения, остальные можно игнорировать. Если диск должен нести какую-то ОС на "борту", то необходимо написать загрузочный код, который должен быть расположен после метки "loading".  Во время загрузки компьютера, биос грузит 0-й сектор в память по адресу 7с00h, и передает ему управление. Для доступа к адресам в памяти существует...
1 год назад
Ассемблер. Чтение сектора с диска в реальном режиме.
Предлагаю попробовать написать программу для чтения сектора с диска в реальном режиме. Она также пригодится, когда мы будем учиться форматировать флешки и диски. Вариантов реализации подобных программ много, но я выбрал свой с двумя буферами - один для "сырых" данных, другой для подготовленных для вывода на экран. Данные сектора не помещаются на консольный экран 80х25, поэтому, должна быть возможность смещения строк вверх-вниз. В общем, сами все поймете, когда будете разбирать программу. Если что-то...
1 год назад
Ассемблер. Пример программы. Ищем "х" на экране.
Предлагаю попробовать написать программу на ассемблере. Все, что делает эта программа, прячет символ "х" на экране, а затем ищет его последовательно проверяя все символы на экране. Вроде немного, но эта программа поможет вам понять как организовать доступ к системному таймеру, организовать задержку и многое другое. Прерывание int 08h от системного таймера происходит примерно 18,2 раза в секунду, доступ к текущим значениям можно получить через прерывание int 1Ah. При этом в регистре CX хранятся старшие (большие) значения, а в регистре DX младшие...
1 год назад
Это ассемблер, детка!
Я частенько заглядываю на всякие программисткие форумы и сайты посвященные ассемблеру, меня удивляет то, что всякую ахинею про ассемблер пишут не только комментаторы, но и авторы статей. Кто-то пишет, что в ассемблере 30-40 команд и главная сложность при его изучении, это знание архитектуры компьютера, а не знание команд. Кто-то пишет, что ассемблер это мертвый язык, и в настоящее время не используется. Один из авторов приводя пример кода на ассемблере вставил вообще какой-то набор непоследовательных...
1 год назад
Ассемблер. Команды битового сдвига
Эта статья поможет вам лучше понять не только как работают команды сдвига, но и то, как компьютер оперирует с цифрами и символами. Языки высокого уровня вам такого понимания не дадут. Команды сдвига бывают циклическими, логическими и арифметическими. Циклические сдвиги влияют на значения флагов OF и CF, остальные на значения флагов OF, SF, PF, CF, ZF. Циклические команды ROL и ROR сдвигают биты влево и вправо соответственно при этом выдвигаемые биты за пределы размера регистра или переменной в памяти, заносятся в освобождающиеся биты...
1 год назад
Ассемблер. Условные и безусловные переходы.
Условных переходов в ассемблере много: JE, JNE, JAE,JC и др., поэтому, чтобы с ними разобраться лучше запомнить переводы символьных обозначений: Jump - прыжок (в смысле - переход) E - Equal   - равно A - Above  - больше B - Below  - ниже (меньше) Z - Zero    - зеро, 0 G - Greated - больше L - Less     - меньше N - Not     - нет O - Overflow - переполнение P - Parity    - паритет, четность S - Sign      - признак (нуля) C - Carry    - перенос Теперь все становится понятным: JE - переход если равно...
274 читали · 1 год назад
Ассемблер 16 бит. Копирование одного экрана на другой.
Предлагаю попробовать написать небольшую программу на ассемблере, все, что она делает, это копирует нулевой экран на первый и по нажатию клавиши "F1" меняет текущий экран, по нажатию на "ESC" выходит из программы. Немного, конечно, но зато у вас появится понимание того как работает ассемблер и аппаратура компьютера.  Компилятор FASM, для эмуляции можно воспользоваться DosBOX. макросы сильно упрощают жизнь программиста stosw передает два байта по адресу es:di из регистра ax затем увеличивает значение...
1 год назад
Древний MSDOS и 16-ти битный ассемблер, почему его до сих пор изучают?
Если запустить представленную ниже программу из под DOS установленной скажем на флешке, то она сотрет первый сектор вашего жесткого диска, поэтому никогда не запускайте ее, просто поверте мне на слово. А эта маленькая программа, "весом" всего в два байта, вызовет зависание компьютера, то есть комп не будет реагировать ни на какие клавиши, ни на мышь, только кнопкой "пуск" можно будет выключить компьютер, а затем заново запустить его. Этой комбинацией пользуются разработчики OS чтобы вызвать "синий...
1 год назад
Как загрузить в знакогенератор свое значение. Ассемблер 16-ть бит.
Нашел на исходниках.ру программу-помощника под названием help.exe, это справочное руководство по различным функциям дос-биос. Было интересно посмотреть, что там пишут, но запустив программу я увидел на экране только какие-то кракозябры вместо русских букв. Пришлось писать свой русификатор. Для этой цели я выбрал функцию 1100h прерывания 10h. Ниже код программы неполностью - код довольно большой, букв много: Если посмотреть ASCII- таблицу, то можно увидеть, что русская кодировка раскидана по двум...
1 год назад
Как пользоваться компилятором FASM и эмулятором DosBOX
Существует несколько распространненых видов компиляторов для ассемблера, но самый удобный из них, это не только на мой взгляд, компилятор FASM (FlatASM). Не нужны никакие линковщики, компановщики, как в других ассемблерах, все делается в одном приложении. Единственный недостаток FASMа, это то, что он не умеет компилировать в SYS формате, но если вы только начинаете изучать ассемблер, то вы не скоро доберетесь до этого формата. Поэтому, если вы новичок в ассемблере, то настоятельно рекомендую вам компилятор написаный Томашем Гриштаром...
140 читали · 1 год назад