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

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


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

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

Выпуск № 799
от 08.07.2007, 18:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 389, Экспертов: 27
В номере:Вопросов: 2, Ответов: 2


Вопрос № 93683: Уважаемые эксперты! Могли бы Вы мне чуть подробнее рассказать о сегментных регистрах? Почему почти всегда когда вызывается процедура есть эти строки: push cs push cs pop ds pop es ??? а разве cs меняется всег...
Вопрос № 93786: Всем привет!Не поможете ли срочным образом в решении задач(колледж) на ассемблере.Ассемблер для PC(Turboassembler Borland) - не знаю уж,насколько правильно описал среду для работы,надеюсь достаточно. 1 Вывод на экран 4-х полос разного цвета(типа ...

Вопрос № 93.683
Уважаемые эксперты!
Могли бы Вы мне чуть подробнее рассказать о сегментных регистрах?
Почему почти всегда когда вызывается процедура есть эти строки:
push cs
push cs
pop ds
pop es

???

а разве cs меняется всегда?
и если не сложно, скажите, пожалуйста,
mov ax:word ptr cs:[100] это все-равно что mov ax,cs:[100] ?
я вообще постоянно путаюсь с word ptr, dword ptr...
Все время пишу программу, и числа у меня наоборот.
например, загружаю в ax,0123, а у меня там 2301...
Всего наилучшего! Удачи!
Отправлен: 02.07.2007, 19:34
Вопрос задал: Покритюк Виталий Леонидович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 4)

Отвечает: Зенченко Константин Николаевич
Здравствуйте, Покритюк Виталий Леонидович!

Смотрите в приложении описание моделей организации памяти в программах. CS меняется: когда Вы используете прерывания DOS или BIOS (т.к. во время его выполнения "прерывания" процессор переходит на обработчик перерывания который расположенн в другом сегменте), когда код Вашей программы расположен в нескольких сегментах(см. MEDIUM, LARGE и HUGE).
Команды:
push cs
push cs
pop ds
pop es

можно встретить в программах (модель обычно TINY) которые заменяют стандартные обработчики прерываний своими и Вам в обработчике необходимо много читать и записывать свои данные, ( т.к. на момент вызова Вашего обработчика известен только один сегментный регистр CS, остальные нужно настраивать). Регистры общего назначения имеют сегментные регистры которые используются по умолчанию в командах: mov ax,cs:[100] по умолчанию должен использоватся регистр DS, но наличие перфикса CS: указывает на чтение слова из текущего сегмента кода (добавляется один байт в размер программы, а если комманд чтения/записи 10 и больше, то целесообразней запомнить старые DS и ES, установить свои и потом востановить старые значения сегментов это всего 8 байт).
загружаю в ax,0123, а у меня там 2301... это стандартная форма записи процессоров INTEL "младший байт находится по младшему адресу". Не обращайте внимание, со временем замечать перестанете.
Скачайте эту книгу.
Удачи!

Приложение:

---------
И только наступив на грабли мы преобретаем драгоценный опыт!

Ответ отправил: Зенченко Константин Николаевич (статус: Практикант)
Ответ отправлен: 02.07.2007, 20:48


Вопрос № 93.786
Всем привет!Не поможете ли срочным образом в решении задач(колледж) на ассемблере.Ассемблер для PC(Turboassembler Borland) - не знаю уж,насколько правильно описал среду для работы,надеюсь достаточно.
1 Вывод на экран 4-х полос разного цвета(типа флага)
2 Участки прямоугольника,разделенного двумя средними линиями и двумя диагоналями(8 участков) - в разные цвета.
3 - в приложении.Здесь копия текста из задания.Правда,я сам не понял,какие участки надо выводить.Между пунктирами попытался изобразить таблицу из четырех граф(как в задании).

Приложение:

Отправлен: 03.07.2007, 14:40
Вопрос задал: ОлегГ (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 8)

Отвечает: Зенченко Константин Николаевич
Здравствуйте, ОлегГ!

Первые две задачи смотрите в приложении.
Программа компилируется как *.COM.
Удачи!

Приложение:

---------
И только наступив на грабли мы преобретаем драгоценный опыт!

Ответ отправил: Зенченко Константин Николаевич (статус: Практикант)
Ответ отправлен: 05.07.2007, 16:37
Оценка за ответ: 5
Комментарий оценки:
Предоставленный ответ на вопрос изложен
полно,подробно,с комментариями.Спасибо ЗенченкоК.Н.
Первый раз обратился на RUFAQ,очевидно-
эффективный,содержательныйсайт,я остаюсь.


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

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

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

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

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


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


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

В избранное