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

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


Служба Рассылок Subscribe.Ru

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

Выпуск N 144

Вопросы, которые поступили от подписчиков рассылки
"Ассемблер? Это просто! Учимся программировать"

Дата выхода: 2001-11-29


Вопрос №1663

Уважаемые эксперты !
Не могли бы Вы ответить на несколько моих вопросов по коду программы , рработающей с mbr и boot
Вопрос : в данном куске проги устанавливается собственный стек , зачем , почему указывается именно число 7BFEh?
Не совсем понятно почему в процедуре "отрезания у DOSпамяти" указывается число 0413h , зачем операция арифметического сдвига именно на 6 ? Что имеется ввиду под 8a и 9c в подпрограмме копирования ?
PUSH CS
POP SS
MOV SP,7BFEh.
;Установка соб-
;ственного стека
;
push cs ;DS = CS
pop ds ;
;
sub word ptr ds:[0413h],2 ;"Отрежем" у DOS
mov ax,ds:[0413h] ;два килобайта
mov cl,6 ;памяти и вычис-
;лим
sal ax,cl ;сегментный ад-
;рес,по которому
;находится полу-
;ченный блок
mov es,ax ;Поместим адрес
;в ES
xor si,si ;И скопируем код
mov cx,prg_lenght ;программы длиной
prg_copy: db 8ah ;"prg_lenght" в
db 9ch ;память по адре-
additor db 00h ;су ES : 0000h
db 7ch ;Сам код при за-
mov byte ptr es:[si],bl;грузке помещае-
inc si ;тся BIOS по ад-
loop cs:prg_copy ;ресу 0000:7C00h

Ответ

Здравствуйте, rooter!

Почему именно 7bfe в качестве вершины стека сказать трудно, не видя всей программы. Видимо, у автора была какая-то "глубокая" мысль. Лично мне это число ни о чем не говорит.

По поводу отрезания у DOS'а памяти - похоже на ошибку. Потому что после того, как ds установили равным cs, то обращение по адресу ds:[0413h] не приведет к желаемому эффекту. Если только cs не равен 0!

А вообще по адресу 0040:0013 находится переменная BIOS, которая указывает общее количество памяти в DOS в килобайтах.

Сдвиг влево на 6 соответствует умножению на 64. 64 * 16 = 1024! Т.е., так как память указана в килобайтах, то мы получаем сегментный адрес "отрезанного" куска памяти! Пример:

[0040:0013] = 640 (вначале)

отрезаем 2К:
[0040:0013] = 638, ax = 638 = 27eh

sar ax, 6 = 9f80h - сегментный адрес нашего куска

db 8ah, 9ch, 00h, 7ch обозначают команду:
mov bl, [si+7c00h]


Отправил эксперт: Ayl
Эксперт отправил ответов (всего): 89

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1661

Расскажите пожайлуста как прячут BADы на винте и как проверить, то что они их спраталя???? (слышал "краем уха"..)

Ответ

Здравствуйте, Дмитрий!

Что-то я вопрос не понял... BAD - он и в Африке BAD.
А вот спрятать программу в BAD'ах - это запросто. Записываешь прогу, определяешь кластера, куда она записалась и помечаешь их как BAD. После этого ОС не затрет твою прогу, так как она будет обходить BAD'ы.


Отправил эксперт: Ayl
Эксперт отправил ответов (всего): 90

Экспертная группа: Пользовательская работа c DOS

Вопрос №1651

Приветствую,уважаемые эксперты.
У меня такая проблема:загружаю битмап 320х200х256 как
массив из байтов пропускаю заголовок, и напрямую в видеопамять. А вот с палитпой - проблемы. Цвета не те.
Подскажите, как загружать палитру в регисры EGA.

И ещё: есть у кого-нибудь алгоритм или прога увеличения/уменьшения изображения на 50%.

Заранее спасибо!!!

Ответ

Здравствуйте, blastoff!

А при чем здесь EGA? EGA не держит 256 цветов. Все-таки, наверное, VGA.

Compatibility: VGA
Expects: AX 1012H
BX first DAC register to set (0-00ffH)
CX number of registers to set (0-00ffH)
ES:DX addr of a table of R,G,B values
(it will be CX*3 bytes long)
Returns: (none)

Info: On VGAs, this sets the RGB values for a consecutive block of DAC
color registers. Starting with register number in BX, CX
registers are programmed with values from the table at ES:DX.

ES:DX is the address of a series of 3-byte RGB values, laid out as
Red,Green,Blue, Red,Green,Blue,... The table should be CX*3
bytes long.

Notes: Use INT 10H 1017H to obtain the current settings for a block of
DAC color registers.


Отправил эксперт: Ayl
Эксперт отправил ответов (всего): 91

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1660

Расскажите пожайлуста как прячут BADы на винте и как проверить, то что они их спраталя???? (слышал "краем уха"..)

Ответ

Здравствуйте, Дмитрий!
исправляют такими тулзами типа как Диск Менеджер.....
после этого емкость диска несоответствует указаной....


Отправил эксперт: змей
Эксперт отправил ответов (всего): 130

Экспертная группа: Пользовательская работа с Windows

Вопрос №1653

Привет Всем!

Я не программист но с удовольствием слежу за рассылкой, и благодаря экспертам во многом разобрался за что им ОГРОМНОЕ спасибо.

Случилась у меня такая бяка: Установил я криатив бластер(PCI) на комп(Дюрон 700 мамка АК-12 WinМЕ) всЈ стало как положено.
1. Проверил связь хорошая.
2.Перегрузил и вывалился в защищенный режим(кроме него ничего не грузится)
3.Переустановил драйвера(подWinME) результат см п1-2
4.Удалил модем
5. Переставил на другой сом-порт повторил п1-5
Результат прежний
Снял модем с компа и всЈ стало на свои места. Объясните пожалуйста чайнику в чЈм дело?
Зарание спасибо!

Ответ

Здравствуйте, irgi!
Может они конфликтуют по прерыванием
поставь момед....закачайдрова в защищеном режиме посмотри
какой запрос на прерываие IRQ используют эти два девайса....


Отправил эксперт: змей
Эксперт отправил ответов (всего): 131

Экспертная группа: Модели, виды и типы компьютеров (hard)

Вопрос №1665

Какие винты лучше брать за 100-120уе?
Говорят IBM хорошие, это правда?

Ответ

Здравствуйте, hardcore!
То, что IBM делает хорошие винты это точно, правда был такой момент, что у всех сразу вдруг посыпались айбиэмные винты, вот вонь-то поднялась ;) Лично у меня IBM-DTLA 20 Gb выдержал уже не одно выключение света, хотя скоростные характеристики у него более чем скромные...
В указанном тобою диапозоне цен лежат три примечательные модели от IBM и Seagate. По надежности они примерно равны (не учитывая теорий случайности и вероятности и пр. фигни) - итак, модели винтов:
40 GB IBM IC35L040AVER07-0 (20 ГБайт на пластину)
40.8 Gb Seagate Barracuda ATA IV ST340016А(40 ГБайт на пластину)
(московские цены)
Хочу отметить, что продукт Seagate по теоретическим скоростным характеристикам превосходим винт от IBM, но при тестировании в WinBench оказывается (например, в тесте Hi-End) , что последний может
на равных соперничать с технически-совершенным Seagate, плюс более увесистый авторитет IBM... Впрочем, выбор за тобой, а как более емкую альтернативу можно предложить 60-Гбайтный WesternDigital, который правда уступает в скорости , да и за рамки указанного ценового диапозона уже выходит.


Отправил эксперт: DivX
Эксперт отправил ответов (всего): 54

Экспертная группа: Модели, виды и типы компьютеров (hard)

Вопрос №1668

Уважаемые специалисты, у меня проблема с запуском окон.
Дело в том что я чистил реестр с помощью RegCleaner3.8,
и удалил что-то не то, теперь все программы запускаются,
но не запускается окно, мой компьютер, мои документы, и др.
анологичные окна. А вместо этих окон запускается поиск файл.
Что делать????
Заранее благодарен!!!!!

Ответ

Здравствуйте, Артём!
Если ты делал резервные копии реестра...тогда без проблем....
а вооще самый легкий способ...запустить Setupcore.exe


Отправил эксперт: змей
Эксперт отправил ответов (всего): 132

Экспертная группа: Пользовательская работа с Windows

Вопрос №1665

Какие винты лучше брать за 100-120уе?
Говорят IBM хорошие, это правда?

Ответ

Здравствуйте, hardcore!
Бимы да, неплохие, но мне больше файрболлы баракуды нравятся
под них софта валом......типа лоу форматеры


Отправил эксперт: змей
Эксперт отправил ответов (всего): 133

Экспертная группа: Модели, виды и типы компьютеров (hard)

Вопрос №1665

Какие винты лучше брать за 100-120уе?
Говорят IBM хорошие, это правда?

Ответ

Здравствуйте, hardcore!
Здравствуйте, hardcore!
Я предпочитаю Фуджи,
Сегейты просто не люблю
Maxtor медленные и не очень надежные,
IBM DTLA-из 60 проданных 58 вернулось по гарантии!
GPS(или GPX-не помню точно название) лучше, но тоже сыпятся
Поэтому я рекомендую Фудж 40 Гиг


Отправил эксперт: Sensey
Эксперт отправил ответов (всего): 214

Экспертная группа: Модели, виды и типы компьютеров (hard)

Вопрос №1669

Юмор
Нашел где-то универсальный ответ на любой вопрос:
СОФТ:
1. Отформатируй винт.
2. Переставь Windows.
3. Поставь драйвера и не забудь перезагрузиться.
4. Ни в коем случае не ставь WinMe.
5. Запоминайте чего намутили в настройках.
6. Купите(стяните) книгу по интерисующей вас языку.
7. Используй поисковики Google, Yandex.
ХАРД:
1. Продай свою рухлядь и купи "брэнд".

-----
Извинения за оффтопик

Ответ

Здравствуйте, Sensey!

Местами напоминает нашу рассылку :)


Отправил эксперт: Ayl
Эксперт отправил ответов (всего): 92

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1670

И снова всем привет!
Пофилософствуем:
Очень часто в рассылке задают такой вопрос: "а зачем писать на ассемблере" ну и приводят кучу доводов для доказательства своей правоты, слепа веря в эту чушь. Некоторые так и остаются с закрытыми глазами до последнего... .Но не надо им что-либо доказывать! Все очень просто: "ЛЮДИ СТРЕМЯТСЯ К ВЛАСТИ", ну не все конечно но большинство. А разве можно иметь власть над машиной зная язык(и) высокого уровня? Конечно же нет... .Как мне кажется это самый фундаментальный довод, просто его некто не произносит в слух. А для тех кому не понравилось выражение: "СТРЕМЛЕНИЕ К ВЛАСТИ" то его можно заменить на:
"ХОРОШИЙ СПЕЦИАЛИСТ" ну это уж кому как по вкусу=))
Разболтался и забыл зачем сел за машину=)
-----------------------------------------------------------
Хотелось бы утрясти этот вопрос:
NEG 200;Команда меняет знак на противоположный!
Она изменяет регистр флагов OF и CF, с OF проблем нет. А что по поводу CF, почему он меняется если не нулевой операнд (при нулевом операнде соотв. CF=0)? Ну и пользуясь случаем осмелюсь спросить: 255 или 2^16-1, если я буду использовать это число в программе, то у меня будет включатся флаг OF (т.е. OF=1)?

Ответ

Здравствуйте, Alex!
Признаки: O D I T S Z A P C
* * * * * * .
Команда: NEG destination .
Логика: destination = -destination; дополнительный код.
Команда NEG вычитает операнд destinstion из 0 и засылает
результат обратно в destination
. Эта команда является реализацией выполнения операции нахождения дополнительного кода операнда. Операндом может быть как байт, так и слово.
-------------------------------------------------------------
Операнды Такты Обращения Байты Пример
байты(слова)
регистр 3 - 2 NEG DL
память 16(24)+EA 2 2-4 NEG COEFFICIENT
-------------------------------------------------------------
Примечания:
Если операнд равен нулю, то признак переноса CF сбрасывается (=0);
во всех остальных случаях он устанавливается (=1).
Попытка применения операции NEG к байту -128 или слову -32,768
не приводит к изменению операнда, а только устанавливает признак переполнения (OF=1).
--
Вытащено из доки, и по моему дополнений не требует


Отправил эксперт: Sensey
Эксперт отправил ответов (всего): 215

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1668

Уважаемые специалисты, у меня проблема с запуском окон.
Дело в том что я чистил реестр с помощью RegCleaner3.8,
и удалил что-то не то, теперь все программы запускаются,
но не запускается окно, мой компьютер, мои документы, и др.
анологичные окна. А вместо этих окон запускается поиск файл.
Что делать????
Заранее благодарен!!!!!

Ответ

Здравствуйте, Артём!
Только переустановка винды (самый неглючный способ), особенно, если не знаешь что удалил


Отправил эксперт: DaM
Эксперт отправил ответов (всего): 5

Экспертная группа: Пользовательская работа с Windows

Вопрос №1671

Помогите реализовать данную программу на паскле.

Дан текст, заканчивающийся точкой. Соседние слова разделены запятыми. Определить количество слов-палиндромов, которые начинаются с буквы .а..

Спасибо.

Ответ

Здравствуйте, Владимир! Я уже писал эту программу в рассылку, с просьбой оптимизировать её (но помоему я и так уже тогда написал самую маленькую из возможных :), только там слова разделялись пробелами ;), так что остается изменить их на "," и все :)


Отправил эксперт: Bart Simpson
Эксперт отправил ответов (всего): 16

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1668

Уважаемые специалисты, у меня проблема с запуском окон.
Дело в том что я чистил реестр с помощью RegCleaner3.8,
и удалил что-то не то, теперь все программы запускаются,
но не запускается окно, мой компьютер, мои документы, и др.
анологичные окна. А вместо этих окон запускается поиск файл.
Что делать????
Заранее благодарен!!!!!

Ответ

Здравствуйте, Артём! Помоему нужно изменить свойства файла "Папка с файлами" и "Папка" (делать это нужно в реестре), я там не мучился и просто удалил ключ command/find (к фалу "Папка" можно просто изменить действие по умолчанию) Этот глюк кстати у меня появился после установки офиса ;(


Отправил эксперт: Bart Simpson
Эксперт отправил ответов (всего): 17

Экспертная группа: Пользовательская работа с Windows

Вопрос №1666

Уважаемые эксперты!!!
А не мог бы кто показать структурочку VxD файла.
Заранее благодарен

Ответ

Здравствуйте, Torson! Насколько я понимаю Vxd-это Virtual X Device то-бишь драйвер устройства в Windows 95/8/9/Me/и т.д. соответственно структура у него такая же как и у обычного драйвера Дос (т.е. никакой, кроме заголовка ;)


Отправил эксперт: Bart Simpson
Эксперт отправил ответов (всего): 18

Экспертная группа: Пользовательская работа с Windows

Вопрос №1674

Приветики !
Дигиту ;) Линух писали вовсе не для интереса ! То что у всех стоит Винды еще не значет что Unix никому не нужен (как в принцепе повсеместность PC в бывшем СССР не означает что Mac'и-фуфло) И вообще, насчет целесообразности асма, вы размышляете с точки зрения программеров в СНГ, а ведь еще существует и Microsoft и Dell и пр.!!! Ведь не "С" единым живет Windows ;) Ведь еще и дрова надо бы кому-то писать ;)))) Как сказал кое-кто (не последний чел в области програмирования) студенты которые учились писать на Basic'е (я интерполирую это утверждение и на Pascal и C++ (я уж не говорю о Delphi) НИКОГДА не станут програмистами (а станут онанистами :) (это я уж от себя :)))) К тому же как кто-то тут правильно заметил скоро и Dos и Windows издохнут, и кому то прийдеться писать новые ОС ! Лично мне хотелось бы поучаствовать :)))
P.S. Простите за пьяный бред :))))

Ответ

Здравствуйте, Барт Симпсон!
Может и бред, может и пьяный, но разумное ядро в нем есть! Програмисты всея Руси объеденяйтесь! На правое дело! Выкиним из виндов все обалденно грамоские софтверные дрова и сожгем их. А сами завояем новые, точные до последнего бита. А если надои ОС завояем и чтобы на пол дискеты влазила, работала быстро и безглючно, могла все!


Отправил эксперт: AllAddIn
Эксперт отправил ответов (всего): 8

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1659

Расскажите пожайлуста как прячут BADы на винте и как проверить, то что они их спраталя???? (слышал "краем уха"..)

Ответ

Здравствуйте, Дмитрий!
Воспользуйся Disk Doktor из поставки Norton Utilit


Отправил эксперт: Viktor
Эксперт отправил ответов (всего): 12

Экспертная группа: Модели, виды и типы компьютеров (hard)

Вопрос №1652

Привет Всем!

Я не программист но с удовольствием слежу за рассылкой, и благодаря экспертам во многом разобрался за что им ОГРОМНОЕ спасибо.

Случилась у меня такая бяка: Установил я криатив бластер(PCI) на комп(Дюрон 700 мамка АК-12 WinМЕ) всЈ стало как положено.
1. Проверил связь хорошая.
2.Перегрузил и вывалился в защищенный режим(кроме него ничего не грузится)
3.Переустановил драйвера(подWinME) результат см п1-2
4.Удалил модем
5. Переставил на другой сом-порт повторил п1-5
Результат прежний
Снял модем с компа и всЈ стало на свои места. Объясните пожалуйста чайнику в чЈм дело?
Зарание спасибо!

Ответ

Здравствуйте, irgi!
Возможно несколько вариантов,
1)Модем конфликтует с каким небудь устройством. Зайди в свойства компьютера, закладка устройства, свойство модема и попробуй выставить их в ручную!
2) Поищи на сайте производителя более свежие драйвера.


Отправил эксперт: Viktor
Эксперт отправил ответов (всего): 13

Экспертная группа: Модели, виды и типы компьютеров (hard)

Вопрос №1672

Как аккуратно убрать одну операционную систему, если стоит двеWindowsNTиWindowsMe.Хочу убратьWindowsME.Первая ставилась
WindowsMe
Спасибо.Александр.

Ответ

Здравствуйте, Александр!
Просто заходишь в NT и стираешь каталог WinME. Если они стоят на разных логических дисках, то стираешь ещё с её диска Програм файлс. А чтобы в загрузчике не писалость про него, сотри соотв. строки в файле c:\boot.ini


Отправил эксперт: kbpS
Эксперт отправил ответов (всего): 15

Экспертная группа: Пользовательская работа с Windows

Вопрос №1655

Здравствуйте, ЭКСперты!
У меня есть пара вопросов:
1) Как найти файл (с помошью API)?
2) Как получить "дерево" каталогов (с помошью API)?
3) Как прочитать "какие файлы есть в текущей директории" (с помошью API)?

Ответ

Здравствуйте, Сегрей!
1) Поиск осуществляется при помощи функций:
FindFirstFile
FindNextFile
FindClose

2)Получить "дерево" каталогов можно с помощью:
SHBrowseForFolder
и результат выбора:
SHGetPathFromIDList

3)При помоши функций поиска по маске *.*

Если нужны примеры пиши дополнительно.


Отправил эксперт: Andy Bitoff (http://bitoff.pisem.net - HomePage)
Эксперт отправил ответов (всего): 27

Экспертная группа: Общие вопросы по программированию на Ассемблере под Win32

Вопрос №1674

Приветики !
Дигиту ;) Линух писали вовсе не для интереса ! То что у всех стоит Винды еще не значет что Unix никому не нужен (как в принцепе повсеместность PC в бывшем СССР не означает что Mac'и-фуфло) И вообще, насчет целесообразности асма, вы размышляете с точки зрения программеров в СНГ, а ведь еще существует и Microsoft и Dell и пр.!!! Ведь не "С" единым живет Windows ;) Ведь еще и дрова надо бы кому-то писать ;)))) Как сказал кое-кто (не последний чел в области програмирования) студенты которые учились писать на Basic'е (я интерполирую это утверждение и на Pascal и C++ (я уж не говорю о Delphi) НИКОГДА не станут програмистами (а станут онанистами :) (это я уж от себя :)))) К тому же как кто-то тут правильно заметил скоро и Dos и Windows издохнут, и кому то прийдеться писать новые ОС ! Лично мне хотелось бы поучаствовать :)))
P.S. Простите за пьяный бред :))))

Ответ

Здравствуйте, Барт Симпсон!
Молодец ты конечно, но пить нада меньше!!!


P.S. по поводу видеокарты, если кому интересно - купил два часа назад ATI RADEON 64Mb - пока вроде работает...


Отправил эксперт: Broken Sword
Эксперт отправил ответов (всего): 224

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1670

И снова всем привет!
Пофилософствуем:
Очень часто в рассылке задают такой вопрос: "а зачем писать на ассемблере" ну и приводят кучу доводов для доказательства своей правоты, слепа веря в эту чушь. Некоторые так и остаются с закрытыми глазами до последнего... .Но не надо им что-либо доказывать! Все очень просто: "ЛЮДИ СТРЕМЯТСЯ К ВЛАСТИ", ну не все конечно но большинство. А разве можно иметь власть над машиной зная язык(и) высокого уровня? Конечно же нет... .Как мне кажется это самый фундаментальный довод, просто его некто не произносит в слух. А для тех кому не понравилось выражение: "СТРЕМЛЕНИЕ К ВЛАСТИ" то его можно заменить на:
"ХОРОШИЙ СПЕЦИАЛИСТ" ну это уж кому как по вкусу=))
Разболтался и забыл зачем сел за машину=)
-----------------------------------------------------------
Хотелось бы утрясти этот вопрос:
NEG 200;Команда меняет знак на противоположный!
Она изменяет регистр флагов OF и CF, с OF проблем нет. А что по поводу CF, почему он меняется если не нулевой операнд (при нулевом операнде соотв. CF=0)? Ну и пользуясь случаем осмелюсь спросить: 255 или 2^16-1, если я буду использовать это число в программе, то у меня будет включатся флаг OF (т.е. OF=1)?

Ответ

Здравствуйте, Alex!
Так cf-carry flag а не zf. А происходит по видимому из-за переполнения.т.к. 255 и -255 в один байт не поместятся если он знаковый. Т.е. значения от -255 до 255


Отправил эксперт: DiGiT
Эксперт отправил ответов (всего): 101

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1672

Как аккуратно убрать одну операционную систему, если стоит двеWindowsNTиWindowsMe.Хочу убратьWindowsME.Первая ставилась
WindowsMe
Спасибо.Александр.

Ответ

Здравствуйте, Александр!
А в чем собственно трабл...
Загрузись с WinNT и стери каталог WinME (обычно это WINDOWS), дешево и сердито ;)


Отправил эксперт: DivX
Эксперт отправил ответов (всего): 55

Экспертная группа: Пользовательская работа с Windows

Вопрос №1681

Я недавно задавал вопрос о программе, которая бы сохраняла на диск содержимое конкретных страниц ( из введенных мною ). Спасибо всем, кто откликнулся. Однако они предлагали скачивальщики сайтов для их изучения в офф-лайне. Мне же нужна программа другого плана. База данных страниц ОЧЕНЬ динамичная и этих страниц может быть ОЧЕНЬ много. Но самое главное, что они могут ХАОТИЧНО располагаться в инете. Также они в большенстве случаев находятся на несвязанных между собой серверах. Каждый раз настраивать скачивальщик на большое количество страниц трудно.

Какие будут предложения. Заранее спасибо.

Ответ

Здравствуйте, Ilya!
ну чем тебя неустраивает Teleport pro???
там ты сам може указать каие паги с данного сервера тебе слить
и не все так гиморно как тебе кажется


Отправил эксперт: змей
Эксперт отправил ответов (всего): 134

Экспертная группа: Пользовательская работа с Windows

Вопрос №1675

Доброго времени суток!
Сори эксперты, но это не вопрос, а ответ на вопрос 1599
по функции random();
что она зазробила тебе нужно инициализировать генератор
случайных чисе. Для ентова исть макрос void randomize(void);
прототип его лежит также в stdlib.h но он использует
функцию time() так что надо еще включать в программу заголовочный файл time.h

Ответ

Здравствуйте, Аркаша!


Отправил эксперт: DivX
Эксперт отправил ответов (всего): 57

Экспертная группа: Пользовательская работа с Windows

Вопрос №1672

Как аккуратно убрать одну операционную систему, если стоит двеWindowsNTиWindowsMe.Хочу убратьWindowsME.Первая ставилась
WindowsMe
Спасибо.Александр.

Ответ

Здравствуйте, Александр!
Грузись с бутовой дискетты с 98-ым
и сделай fdisk/mbr
обновится загрузочный сектор...потом смело удаляй МЕ...


Отправил эксперт: змей
Эксперт отправил ответов (всего): 135

Экспертная группа: Пользовательская работа с Windows

Вопрос №1681

Я недавно задавал вопрос о программе, которая бы сохраняла на диск содержимое конкретных страниц ( из введенных мною ). Спасибо всем, кто откликнулся. Однако они предлагали скачивальщики сайтов для их изучения в офф-лайне. Мне же нужна программа другого плана. База данных страниц ОЧЕНЬ динамичная и этих страниц может быть ОЧЕНЬ много. Но самое главное, что они могут ХАОТИЧНО располагаться в инете. Также они в большенстве случаев находятся на несвязанных между собой серверах. Каждый раз настраивать скачивальщик на большое количество страниц трудно.

Какие будут предложения. Заранее спасибо.

Ответ

Здравствуйте, Ilya!
Извините, но я указывал вам именно оффлайн-БРАУЗЕР, то бишь гуляете через него по Инету, он вам автоматически всё сохраняет, потом выводит вам список посещенных страниц, и вы можете по ним ходить уже в офф-лайне. То бишь вам надо указывать первоначальную страницу, и потом уже можете спокойно "прыгать" по ссылкам, все сохранится. Конкретных представителей назвать не могу , но таких программ куча на софтовых сервера.
ЗЫ. Teleport Pro - это не офф-лайн броузер


Отправил эксперт: DivX
Эксперт отправил ответов (всего): 58

Экспертная группа: Пользовательская работа с Windows

Вопрос №1677

Уважаемые эксперты!
Я пытаюсь заставить прогу мигать Num, Caps и Scroll lock'ами.При трассировке в отладчике она работает нормально, при просто запуске_мигает только выставленный первым светодиод...
Для включения использую байт 0:417h, 6й бит - Caps, 5й - Num, 4й - Scroll.

Ответ

Здравствуйте, NeoS!

Мне кажеться оперировать ими через BIOS Data Area - несколько нелогично. я не знаю как часто биос обновляет это дело. возможно 18 раз в секунду, но не уверен. лучше уж через порты это дело дергать.

алгоритм такой:

mov al, 0edh
out 64h, al

mov cx, 2000h
delay:
loop delay

mov al, LedState ; 1 - ScrollLock, 2 - NumLock, 4 - CapsLock
; Это можно совмещать
out 64h, al

TechHelp (c)


Отправил эксперт: Dron (http://spawnhole.narod.ru/asmos/asmos.html - Операционная система с нуля!)
Эксперт отправил ответов (всего): 199

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1685

Здравствуйте эксперты!
У меня такой вот простой вопрос!
Допустим в регистре DX есть значение смещения, как теперь данные по этому смещению записать в другой регистр, и можно ли так сделать?

Ответ

Здравствуйте, ILYA D.!

Вообще, вот так:

mov al, byte ptr [dx].

Но только такая адресация x86 не поддерживается (только начиная с 386). В косвенной адресации могут быть использованы регистры bx, bp, si, di. Плюс варианты bx+imm, bp+imm, si+imm, di+imm, bx+si+imm, bx+di+imm, bp+si+imm, bp+di+imm, где imm - знаковое число 2 байта (от -32768 до +32767).

Т.е. нужно написать так:

xchg bx, dx
mov al, byte ptr [bx] ; в принципе, byte ptr можно не указывать
xchg bx, dx


Отправил эксперт: Ayl
Эксперт отправил ответов (всего): 93

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №1685

Здравствуйте эксперты!
У меня такой вот простой вопрос!
Допустим в регистре DX есть значение смещения, как теперь данные по этому смещению записать в другой регистр, и можно ли так сделать?

Ответ

Здравствуйте, ILYA D.!

Можно было бы сделать так:

mov dx, offset
mov ax, [dx]

Но это не будет работать на процессорах ниже i386.
потому что там регистр dx нельзя использовать в качестве индекса.

Но чтобы это побороть можно вначале программы написать

.386


Отправил эксперт: Dron (http://spawnhole.narod.ru/asmos/asmos.html - Операционная система с нуля!)
Эксперт отправил ответов (всего): 200

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Форма подачи вопроса

ВНИМАНИЕ!!! Пожалуйста, НЕ высылайте один вопрос сразу нескольким подгруппам! Дополнения к вопросам, на которые эксперт уже ответил НЕ следует направлять ведущему рассылки (я не успеваю!). Просто скомбинируйте первый вопрос и дополнение к нему, а затем заново отправьте его, используя приведенную ниже форму!

Нажимайте кнопку "Отправить" только ОДИН раз и дождитесь полной загрузки страницы, иначе вопрос будет продублирован!


Ваше имя *:

Ваш e-mail *:

Подгруппы:

Вопрос *:

Прилагаемая программа (если необходимо):


Регистрация в качестве эксперта

Архив выпусков


Управляющий рассылкой,

Калашников Олег: Assembler@Kalashnikoff.ru
ICQ No.:
68951340
URL сайта подписчиков: http://www.Kalashnikoff.ru

Рассылка 'Ассемблер? Это просто! Учимся программировать (FAQ)' Рассылка 'Ассемблер? Это просто! Учимся программировать'


(C) Москва, 2001. Авторское право принадлежит Калашникову О.А. Публичное размещение материала из рассылки, а также его использование полностью или частично в коммерческих или иных подобных целях без письменного согласия автора влечет ответственность за нарушение авторских прав.


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное