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

RusFAQ.ru: программирование на языке Assembler


Информационный Канал Subscribe.Ru

RusFAQ.ru: программирование на языке Assembler

Выпуск № 537
от 06.05.2003, 10:00

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 3137
Отправлено ответов: 9210
Активность: 293.5 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Hangatyr
Статус: Доверительный
Общий рейтинг: 126.7
[Подробней >>]
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 150.51
URL: Программирование
[Подробней >>]
Gibbel
Статус: Профессиональный
Общий рейтинг: 108.32
URL: Страничка обо мне и моих друзьях
Телефон: +7 902 168 02 65
[Подробней >>]
 
vitya
Статус: Профессиональный
Общий рейтинг: 108.05
[Подробней >>]
Maverick
Статус: Профессиональный
Общий рейтинг: 134.38
URL: Задачи по ассемблеру
Телефон: 89039415024 (BeeLine GSM)
[Подробней >>]
Ramzes
Статус: Опытный
Общий рейтинг: 130.79
URL: Microsoft homepage
[Подробней >>]
 
Igoryk
Статус: Профессиональный
Общий рейтинг: 118.23
URL: IgorykSoft
[Подробней >>]
Andrew Vext
Статус: Опытный
Общий рейтинг: 106.09
[Подробней >>]
masquer
Статус: Профессиональный
Общий рейтинг: 140.03
[Подробней >>]
 
ASMодей
Статус: Профессиональный
Общий рейтинг: 115.45
[Подробней >>]
Ayl
Статус: Профессиональный
Общий рейтинг: 118.99
[Подробней >>]
keleb-glin
Статус: Опытный
Общий рейтинг: 109.75
[Подробней >>]
 
Eugene
Статус: Профессиональный
Общий рейтинг: 108.71
URL: мощный файловый архив
[Подробней >>]
Dark_Lord
Статус: Профессиональный
Общий рейтинг: 114.1
[Подробней >>]
Tigran K. Kalaidjian
Статус: Доверительный
Общий рейтинг: 114.46
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 3099. Доброе время суток! Какие были минимальные параметры для работы Win95??? Меня интересует процессор. ... (ответов: 10)
Вопрос № 3100. Здравствуйте уважаемые эксперты!Беспокою по вопросу №3066 вывод бита мерцания,сделал вроде все прави... (ответов: 4)
Вопрос № 3101. Спасибо за быстрый ответ Hangatyr!Вопрос №3066. Но всё равно не мерцает,не хочет и всё тут!Код прове... (ответов: 1)
Вопрос № 3102. Здрасте! В одной из рассылок по программированию затронули интересную тему - динамический массив. Мо... (ответов: 4)
Вопрос № 3103. У меня вообщето не вопрос...просто я хотел выразить огромную благодарность одному человеку.Его имя К... (ответов: 1)
Вопрос № 3104. Нужно получить количество головок, цилиндров и секторов жесткого диска. Использовал функцию 80h прер... (ответов: 2)
Вопрос № 3105. Здравствуйте эксперты! 1. Каким образом можно _программно_ слить/залить BIOS? 2. Тут вопрос/ответ да... (ответов: 3)
Вопрос № 3106. Доброго времени суток! Вот скажем в регистр АХ у нас устанавливается значение 01010100b так вот как ... (ответов: 10)
Вопрос № 3107. Добрый день ув.Эксперты... 1) Как при помощи АПИ записать дату в файл.... записую так.... invoke Cre... (ответов: 2)

Вопросов: 9, ответов: 37


 Вопрос № 3099

Доброе время суток!
Какие были минимальные параметры для работы Win95??? Меня интересует процессор. Я точно знаю, что катила на Pentium. Работала ли Win95 на 386/486 ???
P.S. Спасибо masquer за чувство юмора при ответе на вопрос № 3068 :). Спасибо и всем осталным: Tigran K. Kalaidjian, Portnov



Вопрос отправлен: 01.05.2003, 16:29
Отправитель: Илья (b.i@date.by)

[Следующий вопрос >>] [Список вопросов]

Отвечает Hangatyr

Доброе время суток, Илья!
В теории должна была работать на 386DX-20, но на практике... сам понимаешь, на 486 более или менее...

Ответ отправлен: 01.05.2003, 19:14
Отправитель: Hangatyr


Отвечает Bob Johnson

Здравствуйте, Илья!
Windows 95 требует 386 и выше, хотя на 386 будет очень сильно тормозить. Еще надо 8 мб памяти для установки, после вроде можно и на 4-х гонять.


Ответ отправлен: 01.05.2003, 23:46
Отправитель: Bob Johnson


Отвечает Gibbel

Здравствуйте, Илья!
Мелкософт грит, что 386... Реально - на 486 работала...

Ответ отправлен: 01.05.2003, 19:05
Отправитель: Gibbel


Отвечает vitya

Добрый день, Илья!
386 процессора должно быть достаточно. Но для того, чтобы можно было хоть немного удобно работать советую не меньше 486DX и 16 или 32 мб ОЗУ.

Ответ отправлен: 02.05.2003, 15:24
Отправитель: vitya


Отвечает Maverick

Приветствую Вас, Илья!
Ну у меня есть комп такой конфигурации.
386 DX33, 4Mb оперативы, 512 видюха, 2гига винт и винда 95 с 97 вордом.
И работает ништяк, не жалуюсь.
Правда игры от 4 пенька не пашут почему то и XP не ставится.


Ответ отправлен: 05.05.2003, 09:51
Отправитель: Maverick


Отвечает Ramzes

Здравствуйте, Илья!
Под 486 точно работала, под 386 не знаю...


Ответ отправлен: 02.05.2003, 14:06
Отправитель: Ramzes


Отвечает Igoryk

Добрый день, Илья!
На 486DX4 c тактовой 100 MHz идет без проблем.

Ответ отправлен: 01.05.2003, 20:37
Отправитель: Igoryk


Отвечает Andrew Vext

Приветствую Вас, Илья!
Минимальная конфигурация, проверенная мной лично.
486/33Мгц 4Мб RAM.
Работает win95 (OSR 2 уже не работает) и Office 95.


Ответ отправлен: 03.05.2003, 13:03
Отправитель: Andrew Vext


Отвечает masquer

Доброе время суток, Илья!
Я запускал и на 386 с 4 Мб памяти - минимально возможная конфигурация, правда, это был скорее эксперимент, полчаса загрузки :) Правда, устанавливаться она не хотела, пришлось заставлять с применением грубой силы.

Ответ отправлен: 02.05.2003, 13:31
Отправитель: masquer


Отвечает ASMодей

Приветствую Вас, Илья!
На четверках работала точно, а вот насчет троек не знаю, но
мелкомягкие уверяли что должна работать.


Ответ отправлен: 02.05.2003, 10:40
Отправитель: ASMодей


 Вопрос № 3100

Здравствуйте уважаемые эксперты!Беспокою по вопросу №3066 вывод бита мерцания,сделал вроде все правильно,но никак не хочет он мерцать,видимо в BIOS'е что то отключено,судя по вашим ответам,хотелось бы узнать,как включить это мерцание?


Приложение:


Вопрос отправлен: 01.05.2003, 17:12
Отправитель: dim-a

[Следующий вопрос >>] [Список вопросов]

Отвечает Ayl

Здравствуйте, dim-a!
Надеюсь, что у тебя не хуже, чем EGA :-)
Код такой:
mov ax, 1003h
mov bl, 1
int 10h ; разрешить мерцание символов
Если вместо 1 в BL записать 0, то вместо мерцающих символов будут доступны 16 цветов фона.

Ответ отправлен: 05.05.2003, 12:36
Отправитель: Ayl


Отвечает Hangatyr

Здравствуйте, dim-a!
Все у тебя правильно. Попробуй установить видеорежим 80*25 (в приложении).


Приложение:

Ответ отправлен: 01.05.2003, 17:50
Отправитель: Hangatyr


Отвечает keleb-glin

Приветствую Вас, dim-a!
У меня всё нормально мигает. Так что, видимо, у вас выключено мигание.
На EGA-и-выше картах его удобнее всего включать с помощью int 10h с ах=1003h, bl = 01h ( = 00h для выключения ).
Можно ещё через порты, но это гемор.
Хотя, вообще, странно, что мигание было выключено. По умолчанию оно включено.


Ответ отправлен: 01.05.2003, 21:12
Отправитель: keleb-glin


Отвечает ASMодей

Приветствую Вас, dim-a!
Перед выводом символа сделай следующее:
mov ax,1003h
mob bl,1
int 10h


Ответ отправлен: 02.05.2003, 10:41
Отправитель: ASMодей


 Вопрос № 3101

Спасибо за быстрый ответ Hangatyr!Вопрос №3066. Но всё равно не мерцает,не хочет и всё тут!Код проверял,пробовал даже просто копировать(так что это не описка в коде),все равно не хочет,может другая причина?



Вопрос отправлен: 01.05.2003, 20:34
Отправитель: dim-a

[Следующий вопрос >>] [Список вопросов]

Отвечает Hangatyr

Доброе время суток, dim-a!
Под какой осью тестишь?
Вот мой мыл - hangatyr@mail.ru - чтобы не спамить рассылку.


Ответ отправлен: 01.05.2003, 21:07
Отправитель: Hangatyr


 Вопрос № 3102

Здрасте!
В одной из рассылок по программированию затронули интересную тему - динамический массив. Можно ли его реализовать на assm'е ? Мне кажется, что только через mapping. У кого какие идеи ?
Илья. mis421@list.ru



Вопрос отправлен: 01.05.2003, 20:50
Отправитель: илья (mis421@list.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Bob Johnson

Добрый день, илья!
Используй функцию HeapAlloc и можешь создать себе динамический массив. Mapping тут совсем не нужен.

Ответ отправлен: 01.05.2003, 23:50
Отправитель: Bob Johnson


Отвечает masquer

Приветствую Вас, илья!
Я себе иногда через SEH делаю, т.е. выделяю минимальный участок, если его не хватает, то срабатывает защита страниц, управление получает мой SEH обработчик, который решает - продолжать выделять, очистить имеющийся, выйти вообще etc.

Ответ отправлен: 02.05.2003, 13:43
Отправитель: masquer


Отвечает keleb-glin

Здравствуйте, илья!
Можно через стандартные функции ДОС. Это, по-моему int 50h, и про них хорошо написано в Зубкове.


Ответ отправлен: 01.05.2003, 21:14
Отправитель: keleb-glin


Отвечает ASMодей

Доброе время суток, илья!
На ассемблере можно сделать абсолютно все, что реализовано на
языках высокого уровня, в том числе и динамические массивы.
Если ты пишешь под операционкой, которая может выделять память,
то в чем здесь могут возникнуть проблемы?


Ответ отправлен: 02.05.2003, 10:42
Отправитель: ASMодей


 Вопрос № 3103

У меня вообщето не вопрос...просто я хотел выразить огромную благодарность одному человеку.Его имя Калашников Олег, да и потренироваться бить по клаве :-).Олег я вам благодарен за то, что вы тратив свое личное время, помогли такому большому большому кол-ву людей изучить прекраснеший язык Assemebler.А именно за вашу рассылку "Ассемблер это просто!Учимся программировать."С помощью вашей рассылки я легко продвигаюсь вперед.Если честно, то я таких людей в РУНЕТЕ не встречал...да и в жизни тоже наверное.Наша жизнь проклятая учит нас жить только для себя, родители учат детей "выживать".Прошли те времена, когда люди помогали друг другу, хотя я их и не помню толком(мне только 17).Мало сейчас людей готовых помочь другим.Можете считать, что вы внесли большой вклад в будущее отечественных программистов!Да...чего-то заговорился я.Ну вобщем я вам благодарен за себя и за тех кто не смог сделать это.Спасибо за саомопжертвование.Я думаю ваш великий постуопк послужит мне и многи молодым людям примером!Ваше имя, я думаю, многие благодарные люди не забудут.Respect!!!



Вопрос отправлен: 01.05.2003, 22:23
Отправитель: Bolt

[Следующий вопрос >>] [Список вопросов]

Отвечает Eugene

Добрый день, Bolt!
Переправил.

Ответ отправлен: 05.05.2003, 09:37
Отправитель: Eugene


 Вопрос № 3104

Нужно получить количество головок, цилиндров и секторов жесткого диска. Использовал функцию 80h прерывания 13h, результат оказался неверный, т.е. он сходится с данными, к примеру, Sandra, но не сходится с тем, что написано на самом диске и в BIOS. Так вот, как получить реальное количество головок, цилиндров и секторов. И еще вопрос: как получить объем жесткого диска?



Вопрос отправлен: 02.05.2003, 07:34
Отправитель: Миха

[Следующий вопрос >>] [Список вопросов]

Отвечает Dark_Lord

Доброе время суток, Миха!
int 13h ah=42h
Подробнее смотри на http://home.teleport.com/~brainy/interrupts.htm


Ответ отправлен: 03.05.2003, 11:25
Отправитель: Dark_Lord


Отвечает ASMодей

Добрый день, Миха!
Наверное ты все-таки использовал функцию 08h, а не 80h?
Тогда могу тебе сказать, что эта функция позволяет получать
параметры диска не превышающего по объему 8 гигабайт.
Если у тебя диск больше 8Гб, то используй расширение INT 13h:
функции 41h и выше. Но они будут работать только если BIOS
поддерживает диски объемом больше 8Гб.
Если же диск меньше 8Гб, то не обращай внимания на различия
между написанным на диске и возвращаемым INT 13h - это BIOS
специально конвертирует эти данные для того чтобы они вошли
в выдаваемый формат (10 бит на цилиндр, 8 бит на головку и
6 бит на сектор).


Ответ отправлен: 02.05.2003, 10:42
Отправитель: ASMодей


 Вопрос № 3105

Здравствуйте эксперты!
1. Каким образом можно _программно_ слить/залить BIOS?
2. Тут вопрос/ответ давно в рассылке проскакивал, относительно _портов процессора_. Что это?
И если действительно существует (а не ашипка отвечавшего), то как и для чего их пользовать?
ЗЫ: Для особо любящих отвечать вопросом на вопрос уточняю, что имею ввиду камни x86.
Спасибо!



Вопрос отправлен: 02.05.2003, 07:38
Отправитель: noname

[Следующий вопрос >>] [Список вопросов]

Отвечает Bob Johnson

Доброе время суток, noname!
А что такое "Порты процессора"? У процессора x86 есть пространство в 65536 портов. Он может записать или считать данные в любой из них. При этом адрес порта поступит на внешнюю шину адреса. Процессору же совершенно все равно, в какой порт он что записал - это уже декодирубт внешние устройства.


Ответ отправлен: 02.05.2003, 20:27
Отправитель: Bob Johnson


Отвечает Maverick

Добрый день, noname!
1.AMI с помощью прерываний прошивается, а вот AWARD никто толком не знает.


Ответ отправлен: 05.05.2003, 09:51
Отправитель: Maverick


Отвечает Hangatyr

Приветствую Вас, noname!
1. Сам над этим вопросом голову ломаю. Что только не делал и AwdFlash дизассеблировал, но понятней не стало.
2. Гм... правильнее будет сказать порты ввода-вывода.
А для чего их использовать? Хотя бы для того, чтобы "_программно_ слить/залить BIOS" ;) С их помощью можно взаимодействовать c оборудованием напрямую.


Ответ отправлен: 03.05.2003, 13:07
Отправитель: Hangatyr


 Вопрос № 3106

Доброго времени суток!
Вот скажем в регистр АХ у нас устанавливается значение 01010100b так вот как определить что 6й байт установлен в единицу?



Вопрос отправлен: 02.05.2003, 07:42
Отправитель: Affy

[Следующий вопрос >>] [Список вопросов]

Отвечает Dark_Lord

Доброе время суток, Affy!
bt база,смещение
считывает во флаг cf бит, номер которого находится в смещении. Требуется процессор 386. работает только со словами/двойными словами!

Ответ отправлен: 03.05.2003, 11:29
Отправитель: Dark_Lord


Отвечает Ayl

Приветствую Вас, Affy!
6-й байт? Это что такое? Может, все-таки бит? :-)
А вот так:
test ax, 01000000b ; проверить установку 6-го бита
jz @@No ; перейти, если не установлен
@@Yes:
; Сюда попадаем, если установлен

Ответ отправлен: 05.05.2003, 12:43
Отправитель: Ayl


Отвечает Bob Johnson

Доброе время суток, Affy!
Ты хотел сказать 6-й бит?
test ax, 64
jnz - установлен


Ответ отправлен: 02.05.2003, 20:27
Отправитель: Bob Johnson


Отвечает vitya

Добрый день, Affy!
test ax, 040h
jnz - бит = 1
jz - бет = 0

Ответ отправлен: 02.05.2003, 15:15
Отправитель: vitya


Отвечает Ramzes

Здравствуйте, Affy!
and ax, 1
если потом в ах "1", то b = 1, в пртивном случае b = 0.


Ответ отправлен: 02.05.2003, 14:13
Отправитель: Ramzes


Отвечает masquer

Здравствуйте, Affy!
6 бит только. Добавлю такой вариант
ror eax, 6+1
jc __bit6_contain_true


Ответ отправлен: 02.05.2003, 13:49
Отправитель: masquer


Отвечает Gibbel

Здравствуйте, Affy!
Используй комманду TEST

Ответ отправлен: 03.05.2003, 12:54
Отправитель: Gibbel


Отвечает Tigran K. Kalaidjian

Здравствуйте, Affy!
Вы имеете ввиду бит, насколько я понял.
делаем вот что:
test al, 00000100b
jnz ok
jmp no_ok
если 6-й бит - единица, то перескакиваем на метку ok, в отличном случае прыгаем на no_ok

Ответ отправлен: 02.05.2003, 12:31
Отправитель: Tigran K. Kalaidjian


Отвечает Hangatyr

Здравствуйте, Affy!
Ты, наверное, хотел сказать "бит"? Можно так:
test ax, 64
jnz @b1
или так:
bt eax, 6
jc @b1

Ответ отправлен: 02.05.2003, 08:58
Отправитель: Hangatyr


Отвечает ASMодей

Приветствую Вас, Affy!
Не байт, а бит, наверное?
Тогда так:
test al,01000000b
jnz l1 ; бит 6 установлен
или так:
rol al,2
jc l1 ; бит 6 установлен
или так:
bt ax,6
jc l1 ; бит 6 установлен


Ответ отправлен: 02.05.2003, 10:43
Отправитель: ASMодей


 Вопрос № 3107

Добрый день ув.Эксперты...
1)
Как при помощи АПИ записать дату в файл....
записую так....
invoke CreateFile..............
invoke GetLocalTime,addr sys_time
invoke lstrlen,addr sys_time.wHour
invoke WriteFile,hFile,addr sys_time.wHour,eax,ADDR SizeReadWrite,NULL
invoke CloseHandle,hFile
...... ничего не пишет...
добавляю...
....
invoke SystemTimeToFileTime, addr sys_time, addr time_now
invoke lstrlen,addr time_now.dwHighDateTime
invoke WriteFile,hFile,addr time_now.dwHighDateTime,eax,ADDR SizeReadWrite,NULL
.... пишет.. но фигню якусь...
Может нужно представить в др. виде?
просьба сильно не ругаться...
2)Как работать (писать и читать) с ф-лами больших размеров?
3)Зачем нужна ф-ция SystemTimeToFileTime ? и что за dwLowDateTime и dwHighDateTime...
и чем они отличаются....?
4)Чем win32 7 отличается от win32 8?
Заранее благодарен
pAcU




Вопрос отправлен: 02.05.2003, 09:43
Отправитель: pAcU (pacu@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Dark_Lord

Приветствую Вас, pAcU!
1) Мы люди видим всё в Ascii формате, а ком в hex, поэтому, чтоб прочитать что-либо надо перевести всё это в читабельный для людей вид;)
2) Так-же
3) Время файла хранится в восьми байтах, измеряется в наносекундах, поэтому dwLowDateTime и dwHighDateTime единая переменная, .Low. значит его нижняя часть, .High. соответсвенно верхняя, тоесть само число равно:
dwLowDateTime + dwHighDateTime*0FFFFFFFFh

Ответ отправлен: 03.05.2003, 11:34
Отправитель: Dark_Lord


Отвечает Bob Johnson

Добрый день, pAcU!
В ОС Windows есть два способа представления даты (и времени): SYSTEMTIME и FILETIME. Первый способ предполагает, что каждый элемент даты (т.е. день или час) представлен отдельной переменной. Все вместе они составляют структуру SYSTEMTIME (см. MSDN для описания полей). Такой способ удобен для преобразования даты в строку, т.к. каждый элемент может быть легко преобразован. Но этот способ неудобен для сложения или вычитания, сравнения и т.д. дат - т.к. нужно будет заморачиваться конкретно. Для этого используется другой формат даты - FILETIME. В этом формате вся дата представляется как количество 100 наносекундных интервалов, прошедших с первого января 1601 года в виде 64-разрядного целого числа. Это удобнее для сложения и всего такого.
Если тебе нужно записать в файл дату не в текстовом виде, то преобразуй ее в FILETIME и затем запиши 8 байт. Этого будет достаточно. Если же в текстовом - то используй функцию wsprintf и SYSTEMTIME - вначале преобразуй дату в строку в нужном виде, а затем запиши в файл (но уже столько байт, сколько вернет wsprintf).
2. Что значит больших? Больше 4 Гб? Только на NTFS диске - там все просто, когда получаешь размер файла нужно указать адрес, куда будет положена старшая половина, ну и еще пару моментов. Но на FAT32 такие файлы не создашь...
3. Преобразовывать SYSTEMTIME в FILETIME. Есть функция для обратного преобразования. Полезные вещи, кстати. dwLowDateTime и тоже самое High - это просто два 32-разрядных числа, которые образуют 64-разрядную дату и время в формате FILETIME. Они нужны только вместе, сами по себе ничего полезного не несут.


Ответ отправлен: 02.05.2003, 20:27
Отправитель: Bob Johnson



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


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


Получить ответов:


 Выбор рассылки

Программисту
Assembler (37)
C / C++ (29)
Perl (7)
Delphi (14)
Pascal (26)
Basic / VBA (10)
Java / JavaScript (9)
PHP (5)
MySQL / MSSQL (5)
Пользователю
Windows 95/98/Me (31)
Windows NT/2000/XP (26)
"Железо" (24)
Поиск информации (12)
Администратору
Windows NT/2000/XP (15)
Linux / Unix (9)
Юристу
Гражданское право (8)
Семейное право (4)
Трудовое право (5)
КоАП (4)

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




Задать вопрос *** Регистрация эксперта *** Поиск в базе *** Чат *** Форумы
Проект экспертов RusFAQ.ru *** Фотоальбом *** Virus.RusFAQ.ru *** Администрирование


Яндекс цитирования
© 2003 Россия, Москва. Авторское право: RusFAQ.ru


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

В избранное