Вопрос № 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? Спасибо за внимание.
Отвечает: 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 я сам при помощи её компилирую
Ответ отправил: 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 Комментарий оценки: Огромное спасибо.