Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Ассемблер? Это просто! Учимся программировать


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler (Ассемблер)

Выпуск № 936
от 25.12.2007, 00:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 361, Экспертов: 18
В номере:Вопросов: 3, Ответов: 4

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 114778: Уважаемые эксперты, не могли бы вы сказать как подсчитать число цифр в строке s? Спасибо за внимание....
Вопрос № 114779: Здравствуй! Я изучаю различные способы адресации. Мне непонятны некоторые строчки кода в примере, приведенном в приложении. А именно это строчка 19 (что она означает, почему здесь к b прибавляется 2?) и строчка 20. И еще большая просьба, если у вас е...
Вопрос № 114929: Здравствуйте.У меня компьютер на: CPU Intel(R) Celeron 2.8GHz Мат.плата: Gigabyte Technology., Ltd 81945P-G x.x Тип шины PCI Bus Сможет ли мой процессор выполнять те примеры программ,что в книге О.Калашникова"Aссемблер?Это...

Вопрос № 114.778
Уважаемые эксперты, не могли бы вы сказать как подсчитать число цифр в строке s? Спасибо за внимание.
Отправлен: 19.12.2007, 01:56
Вопрос задал: Соколов Виктор Васильевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 13)

Отвечает: Boriss
Здравствуйте, Соколов Виктор Васильевич!
Ну, во-первых, не в строке s, а в строке mes
А во-вторых, код в приложении :))
Надеюсь, что не все будет понятно, и Вы зададите вопрос в минифоруме

Приложение:

---------
Вывод - то место в тексте, где вы устали думать

Ответ отправил: Boriss (статус: Профессор)
Россия, Саранск
Организация: Мордовский госуниверситет, Саранск Факультет Электронной Техники
WWW: Программирование на Паскале
----
Ответ отправлен: 19.12.2007, 10:21
Оценка за ответ: 5
Комментарий оценки:
Грамотно и доступно обьяснено. Пускай не так много коментов, непосредственно в коде. Ставлю 5, так считаю все поправки и конструктивные вопросы - профессиональны


Вопрос № 114.779
Здравствуй! Я изучаю различные способы адресации. Мне непонятны некоторые строчки кода в примере, приведенном в приложении. А именно это строчка 19 (что она означает, почему здесь к b прибавляется 2?) и строчка 20. И еще большая просьба, если у вас есть какие-нибудь примеры, показывающие различные способы адресации на подобие этого примера, пришлите, ПОЖАЛУЙСТА! Или может в сети где есть такие примеры, то дайте, ПОЖАЛУЙСТА, адрес. Заранее спасибочки!!!:-)

Приложение:

Отправлен: 19.12.2007, 02:01
Вопрос задала: Krista (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 5)

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Krista!
Давай по порядку разбираться...
Во-первых, в комментарии неправильно написано - "базовая адресация".
В программе использован короткий косвенный переход (переход в текущем сегменте) на адрес в регистре.
Во-вторых, давай разберемся, что же делают эти две команды (19 и 20)
Команда LEA загружает куда-то (в данном случае в BX) так называемый "эффективный адрес" операнда
В нашем случае, это будет адрес переменной b плюс 2. А это не что иное, как адрес метки Lab1 !
Команда jmp BX делает переход по адресу из BX. Нетрудно догадаться, что мы попадаем на метку Lab1.
В-третьих, применяются следующие адресации данных:
· регистровая;
· прямая;
· непосредственная;
· косвенная;
· базовая;
· индексная;
· базово-индексная.
Регистровая адресация подразумевает использование в качестве операнда
регистра процессора, например: push DS mov BP,SP
При прямой адресации один операнд представляет собой адрес памяти,
второй - регистр: mov DATA, АХ
Непосредственная адресация применяется, когда операнд длиной в байт
или слово находится в ассемблерной команде: mov AX,004Ch
При использовании косвенной адресации исполнительный адрес формируется
исходя из сегментного адреса в одном из сегментных регистров и смещения в
регистрах ВХ, ВР,SI или DI, например: mov АL, [ВХ], mov АН, [SI].
В случае применения базовой адресации исполнительный адрес являетсй
суммой значения смещения и содержимого регистра ВР или ВХ, например:
mov АХ, [ВР + 6]
mov [ВХ + Delta], АХ
При индексной адресации исполнительный адрес определяется как сумма
значений указанного смещения и содержимого регистра SI или DI так же, как и
при базовой адресации, например:
mov DX, [SI+5]
mov ES: [DI]+6, AL
Базово-индексная адресация подразумевает использование для вычисления
исполнительного адреса суммы содержимого базового и инд ексного регистров, а
также смещения, находящегося в операторе, например:
mov ВХ, [BP][SI]
mov ES:[BX+DI],AX

PS И присоединяюсь к Boriss-у...Отладчик оч-ч-чень помогает.
---------
Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Практикант)
Ответ отправлен: 19.12.2007, 10:36
Оценка за ответ: 5
Комментарий оценки:
Спасибо за подробное объяснение!!!:-)


Вопрос № 114.929
Здравствуйте.У меня компьютер на:
CPU Intel(R) Celeron 2.8GHz
Мат.плата: Gigabyte Technology., Ltd 81945P-G x.x
Тип шины PCI Bus
Сможет ли мой процессор выполнять те примеры программ,что в
книге О.Калашникова"Aссемблер?Это просто!...".На винчестере
у меня 2 раздела:C-FAT32 раздел D-в NTFS.Смогу ли я работать,
как написано в книге:в DOSе(Norton comand или Volkov comander);
у меня операционная система WINDOWS XP SP2.
Отправлен: 19.12.2007, 21:48
Вопрос задал: Wowa (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: programyst
!!!
Здравствуйте, Wowa !

чтобы компилировать программы необходим компилятор MASM или TASM или LASM короче любой компилятор ассемблерных кодов насчет возможности все (Не все, в семействе процесоров есть и I8080, с другой системой команд) процессоры интел x86 поддерживаютассемблер систему команд x86 (т.е. любая программа написанная для ранних процессоров будет работать на "потомках", но не наоборот) только разница в архитектуре но это указывается при компиляции в начале программы а насчет файловой системы допустима как fat так и ntfs от оси вообще практически ничего не зависит у меня и в висте всё ОК. насчет командной строки лучше использовать far или cmd.exe в папке WindowsSystem32 я сам при помощи её компилирую

Ассемблер это язык программирования, а не машинные коды.
Ответ экперта помещен в Ляп месяца

-----
∙ Отредактировал: Зенченко Константин Николаевич (Профессионал)
∙ Дата редактирования: 20.12.2007, 21:17
Ответ отправил: programyst (статус: Заблокирован)
Ответ отправлен: 19.12.2007, 22:02
Оценка за ответ: 3
Комментарий оценки:
Нет знаков препинания,некорректный ответ, так как я спрашивал: "Сможет ли мой процессор выполнять те примеры программ,что в книге О.Калашникова"Aссемблер?Это просто!...".

Отвечает: Овчинников Алексей
Здравствуйте, Wowa !
Программы работать будут. У меня например CPU Intel(R) Celeron 2.6GHz.
Хотя железо значение вобще не имеет.
Volkov comander я запускал у себя из под WINDOWS XP SP2.
Будут некоторые заморочки с прямой адресацией в видео память, и
некоторые начальные примеры при запуске из проводника Windows,
будут слишком быстро отрабатывать и мгновенно закрываться.
Так что вы даже не успеете ничего прочитать в окошке.
Для этого в примере первом между командами Int 21h , и int 20h
необходимо вставить код ожидания клавиши
mov ax,0
int 16h
А в программе из третьей главы после _beg: добавить включение видео режима
mov ax,3
int 10h
Кроме того могут возникнуть проблемы с русским текстом, из-за разных
кодировок кирилицы в DOS и Windows
Ответ отправил: Овчинников Алексей (статус: 3-ий класс)
Ответ отправлен: 20.12.2007, 00:08
Оценка за ответ: 5
Комментарий оценки:
Огромное спасибо.


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.66 от 23.12.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное