![]() |
Страницы: (17) Все « Первая ... 10 11 [12] 13 14 ... Последняя »
( Перейти к первому непрочитанному сообщению ) |
![]() ![]() ![]() |
|
Chingachguk |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: 11 Всего: 18 |
Чуть позже опять положу. Это обычный паскаль 7.0 для DOS.
-------------------- I don't like the drugs (but the drugs like me). M.Manson. |
|||
|
||||
Payne |
|
|||
![]() Детектив ![]() Профиль Группа: Участник Сообщений: 247 Регистрация: 6.4.2005 Где: Петербург Репутация: нет Всего: 10 |
Chingachguk: я недавно зарегистрировался, попал в этот топик - чуть не офигел! Первые три урока все было настолько понятно, просто до ужаса! Разобрался во всем. Вот четвертый - не понял. Точнее, многое не понял. Да и еще вопрос: почему уроков больше нет? Идет обсуждение всякой лабуды, словно нельзя для этого отдельную тему создать :-(. А тема-то все-таки называется "Асм - с чего начать?". Хотелось бы уроков.
|
|||
|
||||
Chingachguk |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: 11 Всего: 18 |
Насколько я помню, там была речь про прерывания. У меня не было цели добиться полного понимания того, что это такое и как с ним работать. Поскольку настоящее понимание возможно только с опытом. Там была мысль дать почуствовать - каково это, когда код выполняется нелинейно. Ну просто попробовать ;)
Я задавал этот вопрос, но никто особо не пожелал или не высказал ничего конкретного - чего бы ему хотелось. Собственно, далее по моему мнению должна идти практика. Берем задачку и решаем ее. Возможно, полностью не понимая того, что происходит. Но на принципах, изложенных в уроках 1-3. -------------------- I don't like the drugs (but the drugs like me). M.Manson. |
||||
|
|||||
Payne |
|
||||
![]() Детектив ![]() Профиль Группа: Участник Сообщений: 247 Регистрация: 6.4.2005 Где: Петербург Репутация: нет Всего: 10 |
Да, что правда, то правда.
Вот где-то после третьего урока все начали присылать коды с решениями заданий. Но эти коды были основаны не на тех циклах, которые юзались в уроке. Там фигурировала команда cld. Я так понял, что она увеличивает (уменьшает) значение счетчика (при организации циклов). Расскажи вкратце об этой команде, плз. |
||||
|
|||||
Chingachguk |
|
||||||||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: 11 Всего: 18 |
Команда cld не влияет на счетчики циклов (обычно это регистры или ячейки памяти), команда влияет на флаг направления DF (direct flag) в регистре флагов процессора.
DF влияет на выполнение так называемых строковых команд movsb, cmpsb, scasb (movsw, cmpsw,...). Что такое строковые команды ? Это нечто вроде макрокоманды, но на уровне процессора, сделано для удобства программирования. Возьмем задачу пересылки блока данных (байт) из одной области памяти в другую:
С помощью строковых команд, в этом случае - movsb, мы можем упростить решение следующим образом:
Таким образом, одна команда movsb делает абсолютно то же, что делают 4 команды выше. Однако в результате выполнения movsb регистры si & di получили приращение, однако это произошло потому, что флаг направления DF был сброшен командой cld ! Если бы мы установили этот флаг командой std, то после выполнения movsb процессор бы уменьшил si & di на 1. Это может быть удобно в том случае, если копируются перкрывающиеся блоки данных. Если делать копирование вперед и с начала блока, то часть данных будет потеряна. Однако мы могли бы переписать копирование следующим образом:
Еще мы бы могли вообще обойтись без циклов и использовать префикс REP (повторять следующую команду CX раз):
-------------------- I don't like the drugs (but the drugs like me). M.Manson. |
||||||||
|
|||||||||
Payne |
|
|||
![]() Детектив ![]() Профиль Группа: Участник Сообщений: 247 Регистрация: 6.4.2005 Где: Петербург Репутация: нет Всего: 10 |
Можно ли получить информацию о кодах сканирования клавиатуры, которые помещаются в регистр AH после нажатия клавиши во время прерывания
|
|||
|
||||
Chingachguk |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: 11 Всего: 18 |
Информация ниже взята из книги Зубкова С.В.
-------------------- I don't like the drugs (but the drugs like me). M.Manson. |
|||
|
||||
CnApTaK |
|
|||
Unregistered |
w32 инсталятор Turbo Pascal 7.0 for DOS
|
|||
|
||||
Гость_Начинающий |
|
|||
Unregistered |
(о первом уроке) А если мне надобно обращатся не к конкретному адресу?Как его загнать в переменную? Напр
упорно не хочет ставить точку.Где ошибка? |
|||
|
||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: нет Всего: 34 |
mov ax,320*100+100
-------------------- SST 465555 icq 200-512-712 |
|||
|
||||
Гость_Начинающий |
|
|||
Unregistered |
Без разницы.
|
|||
|
||||
Lonley |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 597 Регистрация: 7.10.2003 Где: северные ворота М урманск Репутация: нет Всего: 4 |
-------------------- Земную жизнь пройдя до половины, Я очутился в сумрачном лесу, Утратив правый путь во тьме долины. Каков он был, о, как произнесу, Тот дикий лес, дремучий и грозящий, |
|||
|
||||
kdaemonv |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 21.10.2005 Репутация: нет Всего: нет |
Chingachguk, подскажи.
Вот этот код я набираю в debug (система WinXP SP1):
Это аналог "самой короткой программы для выключения NumLock, CapsLock и ScrollLock" приведенной выше. После выполнения этого кода результата никакого - как горел NumLock так и горит. Это винда мне мешает изменять этот кусок памяти??? И если да, как она это делает и как мне с этим бороться??? |
|||
|
||||
Chingachguk |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: 11 Всего: 18 |
Да, может быть что и винда. Попробуй загрузицца с дискеты в досе.
Нижеприведенный код точно работает в 98:
Это сообщение отредактировал(а) Chingachguk - 16.12.2005, 10:19 -------------------- I don't like the drugs (but the drugs like me). M.Manson. |
|||
|
||||
Гость_Merlin |
|
|||
Unregistered |
Народ помогите умоляю!!!!!!! Срочно нужна прога на чистом ассемблере (без паскаля) рисующая на экране небольшой круг и перемещающая его через некоторое время в рандомное положение. Пожалуйста кто может с комментариями. Вам же это раз плюнуть. Горю на допуске к экзамену!!!
Или если есть что-то подобное шлите на [email protected]. Буду бесконечно благодарен |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Asm для начинающих" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm для начинающих | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |