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

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


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

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

Выпуск № 754
от 18.05.2007, 19:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 390, Экспертов: 34
В номере:Вопросов: 5, Ответов: 6


Вопрос № 86668: В ДОС EXE программе есть большая структура, которую нужно заполнить начальными значениями. Есть два варианта: 1) указать начальные значения полей при описании экземпляра структуры в сегменте данных, т.е. создать инициализированные данные. ...
Вопрос № 86703: Подскажите пожалуста. Как считать начальные кластеры файлов из корневого каталога, используя int 13h, с дискеты? Сколько секторов занимает один кластер на дискете?...
Вопрос № 86726: Уважаемые эксперты, к сожалению не могу вспомнить алгоритм в котором два 32ух битовых числа умножаются в 16ти битовых регистрах за 3 умножения. Может быть кто напомнит алгоритм и/или поделится кодом....
Вопрос № 86740: Необходимо сделать программу, которая бы для десяти последовательно расположенных в памяти чисел, подсчитывала бы разность суммы четных и суммы нечетных чисел. Ввод данных сделать с клавиатуры, а вывод дисплей....
Вопрос № 86742: Парни, помогите, это надо реализо вать на TASM-е: Вывести на экран информацию о всех дисках системы (по функции 36h). Заранее спасибо!!...

Вопрос № 86.668
В ДОС EXE программе есть большая структура, которую нужно заполнить начальными значениями.
Есть два варианта:
1) указать начальные значения полей при описании экземпляра структуры в сегменте данных, т.е. создать инициализированные данные.
2) описать пустой экземпляр структуры в сегменте данных

МОЯСТРУКТУРА <?>

и заполнять структуру при выполнении программы, типа так:

mov МОЯСТРУКТУРА.поле1, константа1
...
mov МОЯСТРУКТУРА.полеN, константаN

т.е. создать неинициализированные данные.

Какие преимущества и недостатки каждого способа?
Отправлен: 13.05.2007, 04:08
Вопрос задал: Alexei_FAQ (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Волков Павел Юрьевич
Здравствуйте, Alexei_FAQ!
В обоих случаях данные будут инициализированными(данные будут отображаться в памяти), место для размещения данных будет выделенно сразу, в обоих случаях.

В первом случае, в секции данных, находится структура с начальными значениями, во втором - структура, заполненная нулями.

Если значения структуры известны заранее, лучше заполнить структуру сразу(первый способ).
---------
Век живи, век учись.
Ответ отправил: Волков Павел Юрьевич (статус: Студент)
Ответ отправлен: 13.05.2007, 16:27

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Alexei_FAQ!
Ответ предыдущего эксперта неполон.
Его ответ верен, если задать МОЯСТРУКТУРА в сегменте .data
Если же задать сегмент неинициализированных данных .data? (сегмент с имеем BSS),
то данные в файле EXE будут отсутствовать (в отличие от первого случая)
Сегменты .data и .data? будут объединены в одну группу и фактически будут одним сегментом.


---------
Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Практикант)
Ответ отправлен: 14.05.2007, 10:25


Вопрос № 86.703
Подскажите пожалуста. Как считать начальные кластеры файлов из корневого каталога, используя int 13h, с дискеты? Сколько секторов занимает один кластер на дискете?
Отправлен: 13.05.2007, 13:30
Вопрос задал: Zemelia (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Zemelia
Перед тем, как начать писать программу, настоятельно рекомендую ознакомиться
со структурой файловой системы FAT, а именно - структурой бутовой записи, собственно FAT, оглавления. Думаю, на многие вопросы ответы найдутся здесь:
http://www.wasm.ru/docs/11/fatgen103-rus.zip
---------
Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Практикант)
Ответ отправлен: 14.05.2007, 13:22


Вопрос № 86.726
Уважаемые эксперты, к сожалению не могу вспомнить алгоритм в котором два 32ух битовых числа умножаются в 16ти битовых регистрах за 3 умножения. Может быть кто напомнит алгоритм и/или поделится кодом.
Отправлен: 13.05.2007, 16:31
Вопрос задал: Бертыш Андрей Владимирович (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Бертыш Андрей Владимирович!
Алгоритм - "столбик" :)
за 3 умножения не получится (за 4 устроит? :) )
Держи старую наработку, умножает со знаком два 32-битных числа, в результате
получаем 64-битное число

Приложение:

---------
Удачи!

Ответ отправил: Лысков Игорь Витальевич (статус: Практикант)
Ответ отправлен: 14.05.2007, 12:39
Оценка за ответ: 4


Вопрос № 86.740
Необходимо сделать программу, которая бы для десяти последовательно расположенных в памяти чисел, подсчитывала бы разность суммы четных и суммы нечетных чисел. Ввод данных сделать с клавиатуры, а вывод дисплей.
Отправлен: 13.05.2007, 18:45
Вопрос задал: Ketor (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

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

Смотрите приложение
В нечетных числах бит 0 равен 1,
при суммировании нечетные числа меняют знак и потом складываются.
В итоге получается разность сумм четных и нечетных.
Удачи!

Приложение:

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

Ответ отправил: Зенченко Константин Николаевич (статус: Студент)
Ответ отправлен: 14.05.2007, 15:56


Вопрос № 86.742
Парни, помогите, это надо реализовать на TASM-е: Вывести на экран информацию о всех дисках системы (по функции 36h). Заранее спасибо!!
Отправлен: 13.05.2007, 19:00
Вопрос задал: Vitaly89 (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

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

Из-за особенностей организации работы дискетами
дисководы А: и В: игнорируются.
Удачи!

Приложение:

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

Ответ отправил: Зенченко Константин Николаевич (статус: Студент)
Ответ отправлен: 14.05.2007, 13:09
Оценка за ответ: 5
Комментарий оценки:
Большое спасибо за ответ!!!


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

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

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

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

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала 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

В избранное