Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 670
от 04.12.2003, 02:10
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 4576 Отправлено ответов: 13118 Активность: 286.6 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
never_again Статус: Опытный Общий рейтинг: 137.33 [Подробней >>] |
Maverick Статус: Профессиональный Общий рейтинг: 122.34 URL: Эхоконференция по вирмейкингу Телефон: 89039415024 (BeeLine GSM) [Подробней >>] |
_vt Статус: Профессиональный Общий рейтинг: 119.86 [Подробней >>] |
Евгений Иванов Статус: Профессиональный Общий рейтинг: 142.2 URL: Super Assembler Software Телефон: НСС +7 831 3107039 [Подробней >>] |
Gibbel Статус: Профессиональный Общий рейтинг: 106.35 URL: Savage Metal Club - жизнь в стиле рок-н-ролл Телефон: +7 901 710 3146 [Подробней >>] |
PUSH Статус: Доверительный Общий рейтинг: 108.04 [Подробней >>] |
Artemy Статус: Доверительный Общий рейтинг: 127.21 [Подробней >>] |
vitya Статус: Профессиональный Общий рейтинг: 108.09 [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 4533. Какие прерывания Dos ,могут работать в программах для Win,понятно ,что для последней операционки су... (ответов: 1)
Вопрос № 4534. Многоуважаемые эксперты ....здрасьте Я тут написал простенькую програмку типа MessageBox,и начал ее ... (ответов: 2)
Вопрос № 4535. Всем привет!!!!! Это я, baldr, если кто еще помнит такого эксперта. Впрочем, бывшего... :( В общ... (ответов: 1)
Вопрос № 4536. привет...в общем у меня лаба горит, а я в ассемблере ни черта не понимаю....так как с преподом не по... (ответов: 4)
Вопрос № 4537. Господа, помогите с одним вопросом. Пишу програмку которая считывает из файла числа и выводит в друг... (ответов: 4)
Вопрос № 4538. Дорбого времени суток господа эксперты. Очень хочется узнать как сделать прогу совместимой с 98-й ви... (ответов: 2)
Вопрос № 4539. Здраствуйте всезнайки!! Если по короче: НЕ ФУРЫЧИТ нада иконку на кнопку вывисти... (ответов: 1)
Вопрос № 4540. спасибо ребята за все што вы делаете, вы всегда меня выручали когдя а изучал С, Delphi, а теперь над... (ответов: 1)
Вопрос № 4541. Добрый день Эксперты!!! Подскажите как узнать под Dos-ом загружена ли на выполнение конкретная прогр... (ответов: 3)
Вопрос № 4545. Здравствуйте, Господа Эксперты. Пожалуйста, кто-нибудь подкинте исходник кода демонстрирующего выво... (ответов: 3)
Вопрос № 4546. Ув. эксперты понимаю что вопрос не по теме НО все-таки ПОЖАЛУЙСТА не поленитесь и помогиоте, как пра... (ответов: 2)
Вопрос № 4547. >Отвечает never_again > >Приветствую Вас, Igor! >я так понял - ты числа вносил вручную и они в файле... (ответов: 1)
Вопросов: 12, ответов: 25
Вопрос № 4533 |
Какие прерывания Dos ,могут работать в программах для
Win,понятно ,что для последней операционки существуют
API.Но все-же? Int 3 работает точно.
Вопрос отправлен: 28.11.2003, 06:02
Отправитель: Yury (ch_y@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает never_again
Добрый день, Yury!
по идее в окнах прерывания не работают вообще. работают они всё равно в ДОСе хоть в реальном хоть в виртуальном который и предоставляет пользователю операционная система большого Билла. работать в виртуальном режиме должны все прерывания, но я точно знаю, что ,например, в V86 под ХР 15Н интеррапт не работает... в V86 предоставляемом 98 форточками пока работало всё из того, что я использовал.
Ответ отправлен: 29.11.2003, 23:02
Отправитель: never_again
Вопрос № 4534 |
Многоуважаемые эксперты ....здрасьте
Я тут написал простенькую програмку типа MessageBox,и начал ее ковырять.
Смотреть через Hex-редактор exe файл и через SoftIce глядеть,что в память
загрузилось.Так вот секция кода программы загрузилась в 401000h(смещение
от базового адреса загрузки 1000h - это понятно),но вот код моей программы
находится в конце этой секции, а с 401000h по 4011CBh распологается какойто
другой код который часто обращается к функции ICSendMessage (MSVFW32.dll) хочу
спросить,что это за код?зачем он нужен?и если не нужен,то как откомпоновать
прогу без него?(ставил там BPX-ы,они не срабатывали,значит код все равно
не выполняется?).Средства разработки Tasm32(5.0) Tlink32(Ver. 1.6.71.0)
Спасибо всем кто ответит %)
Вопрос отправлен: 28.11.2003, 06:18
Отправитель: push
[Следующий вопрос >>] [Список вопросов]
Отвечает Maverick
Здравствуйте, push!
Ну вот, дождались нормальных вопросов, а то все API и API :)
Ты не объяснил что где ты смотришь, программа на диске и в памяти это 2 большие разницы. Давай исходник, я посмотрю.
Все должно быть путем, если ты не ковырял заголовок и не сжимал всяческими пакереами.
maverick@nightmail.ru
P.S. Ты смотрел в отладчике 401000h? RVA кодовой секции 1000h? Entry Point какая? Immage base 400000h? Очень много тонкостей, так что давай код и напиши как компилил. Какая платформа кстати...
Ответ отправлен: 28.11.2003, 09:44
Отправитель: Maverick
Отвечает _vt
Доброе время суток, push!
Чтобы ничего лишнего не линковалось, не надо ничего лишнего в программе указывать. А где исходник? Если есть ссылки на ICSendMessage, значит ты где-то (явно или неявно) объявляешь эту функцию (extern ...). Короче - код в студию...
*** E-Man - can help you***
Ответ отправлен: 30.11.2003, 00:36
Отправитель: _vt
Вопрос № 4535 |
Всем привет!!!!!
Это я, baldr, если кто еще помнит такого эксперта. Впрочем, бывшего... :(
В общем, дело такое... Даже не вопрос, а предложение.
Есть сайт. Мой сайт http://www.dospage.by.ru . Есть я, но мне совсем жутко не до сайта. А сайт понемногу разваливается без присмотра. :( И народ иногда пишет и интересуется DOSом. А я уже с полгода не отвечаю по причине все той же занятости.
В общем, как бы не было тяжело, отдаю свой сайт в хорошие руки. Если кто-то чувствует себя довольно хорошо в DOS и готов уделять примерно 10-30 минут в день на поддержание сайта и ответы на вопросы по DOS - приму Ваши предложения!
Предпочтения отдам экспертам "старой закалки". :)
Сайт довольно раскрученный, но в последнее время из-за долгого необновления народ там не задерживается. Если будет поддерживаться - будут и посетители - обещаю... :)
Могу прислать около 100-300 Мб всяких прог и док по DOS если найдутся энтузиасты размещать это где-то...
В общем - не дайте загнуться ему совсем? :(
Вопрос отправлен: 28.11.2003, 16:03
Отправитель: baldr (baldr@pisem.net)
[Следующий вопрос >>] [Список вопросов]
Отвечает Евгений Иванов
Доброе время суток, baldr!
Почему бы и нет?
Можно попробовать...
* EMan: -=- Любовь существует! =-=
Ответ отправлен: 28.11.2003, 16:25
Отправитель: Евгений Иванов
Вопрос № 4536 |
привет...в общем у меня лаба горит, а я в ассемблере ни черта не понимаю....так как с преподом не повезло..объяснить не может а проги дает...в общем если сможете - помогите....только мне полностью программа нужна...вот задание:
вывести на экран инфо о жестком диске - кол-во цилиндров, головок, секторов(по-моему, цилиндры и головки одно и то же)
все равно спасибо...
Вопрос отправлен: 28.11.2003, 18:58
Отправитель: Юлия
[Следующий вопрос >>] [Список вопросов]
Отвечает never_again
Доброе время суток, Юлия!
нет, Юля, цилиндры и головки это не одно и тоже. Разве вы из курса анотомии этого не знаете? ;) а теперь серьёзно. была у меня где-то такая прога, но найти её не смог. если пару-тройку дней дадите, то напишу вам новую. прямо сейчас не могу - завален работой. с трудом время нашёл, чтоб почту прверить. а пока, что вот вам информация необходимая для вашей работы:
DISK - GET DRIVE PARAMETERS (PC,XT286,CONV,PS,ESDI,SCSI)
AH = 08h
DL = drive (bit 7 set for hard disk)
ES:DI = 0000h:0000h to guard against BIOS bugs
int 13h
Return:
CF set on error
AH = status (07h) (see #00234) таблица приведена ниже
CF clear if successful
AH = 00h
AL = 00h on at least some BIOSes
BL = drive type (AT/PS2 floppies only) (see #00242) таблица приведена ниже
CH = low eight bits of maximum cylinder number
CL = maximum sector number (bits 5-0)
high two bits of maximum cylinder number (bits 7-6)
DH = maximum head number
DL = number of drives
ES:DI -> drive parameter table (floppies only)
(Table 00242)
Values for diskette drive type:
01h 360K
02h 1.2M
03h 720K
04h 1.44M
05h ??? (reportedly an obscure drive type shipped on some IBM machines).
2.88M on some machines (at least AMI 486 BIOS)
06h 2.88M
10h ATAPI Removable Media Device
(Table 00234)
Values for disk operation status:
00h successful completion
01h invalid function in AH or invalid parameter
02h address mark not found
03h disk write-protected
04h sector not found/read error
05h reset failed (hard disk)
05h data did not verify correctly (TI Professional PC)
06h disk changed (floppy)
07h drive parameter activity failed (hard disk)
08h DMA overrun
09h data boundary error (attempted DMA across 64K boundary or >80h sectors)
0Ah bad sector detected (hard disk)
0Bh bad track detected (hard disk)
0Ch unsupported track or invalid media
0Dh invalid number of sectors on format (PS/2 hard disk)
0Eh control data address mark detected (hard disk)
0Fh DMA arbitration level out of range (hard disk)
10h uncorrectable CRC or ECC error on read
11h data ECC corrected (hard disk)
20h controller failure
31h no media in drive (IBM/MS INT 13 extensions)
32h incorrect drive type stored in CMOS (Compaq)
40h seek failed
80h timeout (not ready)
AAh drive not ready (hard disk)
B0h volume not locked in drive (INT 13 extensions)
B1h volume locked in drive (INT 13 extensions)
B2h volume not removable (INT 13 extensions)
B3h volume in use (INT 13 extensions)
B4h lock count exceeded (INT 13 extensions)
B5h valid eject request failed (INT 13 extensions)
B6h volume present but read protected (INT 13 extensions)
BBh undefined error (hard disk)
CCh write fault (hard disk)
E0h status register error (hard disk)
FFh sense operation failed (hard disk)
если нужно больше информации, то отправляйтесь на http://www.ctyme.com/rbrown.htm
удачи. если вам показалось, что шутка моя очень пошлая, то вы уж простите меня...
Ответ отправлен: 29.11.2003, 22:49
Отправитель: never_again
Отвечает Евгений Иванов
Доброе время суток, Юлия!
Бери с моего сайта:
http://superforest.narod.ru/add/disk.rar
Удачи!
* EMan: -=- Любовь существует! =-=
Ответ отправлен: 28.11.2003, 19:12
Отправитель: Евгений Иванов
Отвечает Gibbel
Приветствую Вас, Юлия!
Девушка, ну препод в универах всегда (ну или почти всегда) прекрасно понимают предмет, который они преподают. Ну а если вы не в состоянии понять его объяснения, то, боюсь, вы немного ошиблись при выборе ВУЗа...
Вообще, здесь не принято писать программы за студентов, но здесь с удовольствием вам помогут, если вы сможете конкретнее сформулировать, что именно у вас не получается (что именно вы не понимаете).
P.S.: цилиндр(дорожка) - это участок жесткого диска, содержащий какое-то определенное количество секторов с данными. На дисках данные распологаются кольцами, отсюда и название. Головка - это устройство для считывания данных с диска. Данные на диск могут писаться с одной или с двух сторон, соответственно, для чтения/записи с диска/на диск используется одна или две головки. В НЖМД (HDD) может использоваться несколько дисков, соответственно, и головок может быть несколько.
P.P.S.: Для точного определения количества головок/дорожек/секторов рекомендую использовать технологию S.M.A.R.T., так как, в противном случае, полная достоверность полученной информации не гарантированна (иногда, для обхода ограничений контроллера жестких дисков или программного обеспечения, старшие биты номера/количества дорожек переносят в номера/количество головок).
P.P.P.S.: научитесь пользоваться поисковиками, так как исходников, требуемых вам, полно в сети.
Ответ отправлен: 29.11.2003, 19:06
Отправитель: Gibbel
Отвечает PUSH
Чуваки! Хватит называться женскими именами, чтобы задобрить сердца экспертов и
раскрутить их на делание ваших лаб.За это надо платить бабки, или хотя бы пива!
тем более за готовую программу.
А если вы действительно девочка Юля то встретившись лично,могу сделать вам
лабораторную бесплатно %)
Ответ отправлен: 30.11.2003, 04:33
Отправитель: PUSH
Вопрос № 4537 |
Господа, помогите с одним вопросом. Пишу програмку которая считывает из файла числа и выводит в другой файл только те, которые не повторяются. Числа в файле идут каждое с новой строки, интервал -32000 до 32000.
Считал из файла в массив все числа, массив выглядит так mas 400 dup (?), запихивал числа через пробел. Это всё что я сделал. Возникли следующие вопросы:
1)Как теперь переделать этот массив из строк в массив чисел? Или я что-то неправильно делаю.
Всё происходит в ТурбоАСМе, еще совсем зелёный, просто задание такое%)
Вопрос отправлен: 28.11.2003, 18:55
Отправитель: Igor (vzeek@takas.lt)
[Следующий вопрос >>] [Список вопросов]
Отвечает never_again
Приветствую Вас, Igor!
я так понял - ты числа вносил вручную и они в файле ввиде ASCII сидят. если так то у тебя два пути. либо переделать массив в из строк в числа, как ты и просишь, либо работать со строками т.е. сравнивать строки. выбирай какой тебе лучше и пиши сюда. помогу чем смогу.
а ещё можно генерировать случайные числа и хранить их в первый файл уже в готовом виде и тогда проблеммы с трансформированием сами отпадут.
Ответ отправлен: 29.11.2003, 22:12
Отправитель: never_again
Отвечает Евгений Иванов
Доброе время суток, Igor!
Я не понимаю, что ты пишешь в конце, но программу я тебе напишу...
* EMan: -=- Любовь существует! =-=
Ответ отправлен: 29.11.2003, 12:54
Отправитель: Евгений Иванов
Отвечает PUSH
Здравствуйте, Igor!Честно говоря я несовсем понял вопрос,во 1х как понять интервал от 32000
до 32000 ? может от 0 до 32000 ?потом если числа идут каждое с новой
строчки,значит как я понял это типа текстового файла,а числа как строки?
Тогда нафиг их вообще преобразовывать в число? Так и сравнивай их как строки.
Все, что повторяется отсортировывай,а что останется выводи в свой файл %)
Ответ отправлен: 30.11.2003, 04:30
Отправитель: PUSH
Отвечает Artemy
Приветствую Вас, Igor!
Перебирая цифры, умножаешь результат на 10 и прибавляешь к нему следующую цифру и так далее пока не будет прибавлена последняя.
Ответ отправлен: 01.12.2003, 13:04
Отправитель: Artemy
Вопрос № 4538 |
Дорбого времени суток господа эксперты.
Очень хочется узнать как сделать прогу совместимой с 98-й виндой и с ХР?
Спасибо.
Вопрос отправлен: 28.11.2003, 19:31
Отправитель: Ramala (Ramala@hotmail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает _vt
Здравствуйте, Ramala!
Ну так простенькие программы совместимы со всеми Win32-системами. Приведи пример того, что не совместимо...
*** E-Man - can help you***
Ответ отправлен: 30.11.2003, 00:36
Отправитель: _vt
Отвечает Artemy
Приветствую Вас, Ramala!
Не используй API для NT
Ответ отправлен: 01.12.2003, 13:05
Отправитель: Artemy
Вопрос № 4539 |
Здраствуйте всезнайки!!
Если по короче: НЕ ФУРЫЧИТ
нада иконку на кнопку вывисти
Приложение:
Вопрос отправлен: 29.11.2003, 10:47
Отправитель: ol (ivanitskiy_ol@rambler.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает _vt
Приветствую Вас, ol!
И не будет ФУРЫЧИТЬ - цикл обработки сообщений должен быть в отдельной оконной процедуре WndProc. Это первое. Второе - кнопка хоть на каком-то окошке быть должна, а не просто так в воздухе. В общем, переделывай...
*** E-Man - can help you***
Ответ отправлен: 30.11.2003, 00:36
Отправитель: _vt
Вопрос № 4540 |
спасибо ребята за все што вы делаете, вы всегда меня выручали когдя а изучал С, Delphi, а теперь надеюсь вы мне поможыте с асемблером разобраца
Приложение:
Вопрос отправлен: 29.11.2003, 10:52
Отправитель: ol (ivanitskiy_ol@rambler.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает never_again
Здравствуйте, ol!
не дуже скривджуйся iз за цього. дехто також не з росii. ;)
Ответ отправлен: 29.11.2003, 22:01
Отправитель: never_again
Вопрос № 4541 |
Добрый день Эксперты!!!
Подскажите как узнать под Dos-ом загружена ли на выполнение конкретная программа, мне нужно делать определенные действия только после того как запущена нужная программа. Если не трудно, то пару строк с примером. Заранее спасибо.
И ещё: заказал себе Intel-овские книжки по инету, а мне прислали компакт-диск с 4 файлами pdf формата, и сказали что они сейчас не высылают печатную продукцию, а так как нужна информация, то выслали CD. И книжек не будет до февраля 2004 года. Так что если кто-то будет интересоваться в рассылке manual-ами, то все равно не пришлют. А эти pdf файлы у них лежат на сервере.
Вопрос отправлен: 29.11.2003, 12:12
Отправитель: alex
[Следующий вопрос >>] [Список вопросов]
Отвечает Евгений Иванов
Приветствую Вас, alex!
Проверяй все блоки памяти и находи там нужную программу.
* EMan: -=- Любовь существует! =-=
Ответ отправлен: 29.11.2003, 12:57
Отправитель: Евгений Иванов
Отвечает _vt
Здравствуйте, alex!
В дос резидентные программы для связи с собой перехватывают каое-нибудь прерывание и вешают обработчик какой-нибудь свободной функции. Если ты знаешь, куда она вешается, то по кодам возврата из этой функции иожно определить загружена эта программа, или нет. Например, Volcov Commander версий 4.х вешается на функцию 2Bh прерывания 21h. В приложении - способ определения версии VC, которая загружена(взято из документации на Volcov Commander 4.05).
*** E-Man - can help you***
Приложение:
Ответ отправлен: 30.11.2003, 00:36
Отправитель: _vt
Отвечает Artemy
Добрый день, alex!
Что-то не очень понятный вопрос...
Если тебе нужно узнать имя екзешника, то ДОС кладёт его
в MCB по смещению 08h, только без расширения, т.е.
push cs
pop ax
dec ax
push ax
pop es
теперь в es:[08h] восемь байт имени екзешника.
Ответ отправлен: 02.12.2003, 11:27
Отправитель: Artemy
Вопрос № 4545 |
Здравствуйте, Господа Эксперты.
Пожалуйста, кто-нибудь подкинте исходник кода демонстрирующего вывод контекстного меню. Т.е. когда и как загрузить меню и вывести его. У меня почему-то оно выводится узкой вертикальной полозкой, причём количество строк такое-же, как я и в загружаемом мной меню и только пункты длиной в ноль символов. Наверное неверно загружаю или вывожу. Вообщем, если кому не жалко подкинте пример.
С уважением, Luc.
Вопрос отправлен: 29.11.2003, 22:56
Отправитель: Luc (luc@netman.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает never_again
Добрый день, Luc!
зайди на www.wasm.ru и покопайся в туториалах Iczelion'а.
Ответ отправлен: 29.11.2003, 23:04
Отправитель: never_again
Отвечает Евгений Иванов
Здравствуйте, Luc!
Пожалуйста:
mov esi,ofs pt
Call GetCursorPos,esi
Call GetSubMenu,[hMenuMain],0
Call TrackPopupMenuEx,eax,TPM_LEFTALIGN,[(t POINT esi).x],[(t POINT esi).y],
ebx,0
;--------
Call LoadMenu,[hInst],ofs szAppName
mov [hMenuMain],eax
;------
Bell MENU
{
POPUP "Файл"
{
MENUITEM "История...", IDM_HISTORY
MENUITEM "Настройки...", IDM_OPTIONS
MENUITEM "Описание", IDM_HELP
MENUITEM "О программе", IDM_ABOUT
MENUITEM SEPARATOR
MENUITEM "Выход", IDM_EXIT
}
}
* EMan: -=- Любовь существует! =-=
Ответ отправлен: 30.11.2003, 02:50
Отправитель: Евгений Иванов
Отвечает Artemy
Доброе время суток, Luc!
см. рассылку попрос №4437
Ответ отправлен: 02.12.2003, 15:20
Отправитель: Artemy
Вопрос № 4546 |
Ув. эксперты понимаю что вопрос не по теме НО все-таки ПОЖАЛУЙСТА не поленитесь и помогиоте,
как правильно доказать теоремы или где найти подсказку,
Спасибо
Prove that any integer N, the number N3 - N is divisible by 3.
Prove that if the square of an integer is divisible by 6 then the integer is itself divisible by 6.
Prove that the square root of 6 is irrational.
Вопрос отправлен: 30.11.2003, 01:04
Отправитель: Alex (felistovihs@rambler.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает never_again
Приветствую Вас, Alex!
вот единственно правельный метод:
подойти к преподу разорвать на груди рубаху и прокричать:"Гадом буду если не так! Зуб даю!"
Ответ отправлен: 30.11.2003, 03:52
Отправитель: never_again
Отвечает vitya
Добрый день, Alex!
1. Доказывается по индукции : База N = 1, N^3 - N = 0, что делится на 3. Далее предполагается, что для N доказанно, соответственно надо доказать для (N + 1)
(N + 1) ^ 3 - (N + 1) = N ^ 3 + 3N^2 + 3N + 1 - N - 1 =
(N^3 - N) + 3(N^2 + N). Первое слагаемое по индуктивному предположению делится на 3, второе очевидно так же делится на 3. Следовательно для любого N теорема доказана.
2. Если число делится на 6, значит оно делится на 2 и на 3. Но если число есть квадрат другого целого числа, то в нем 2 и 3 не могут быть по одной штуке. Их будет четное число. Следовательно наш квадрат имеет форму a^2 * 4 * 9 - отсюда следует, что исходное число имело форму а * 2 * 3, что очевидно делится на 6.
3. Следует из того, что 6 = 2 * 3, а квадратные корни и из 2 и из тройки иррациональны. Доказательство для двойки элементарно, для тройки ищи сам, и так много помогли.
Ответ отправлен: 30.11.2003, 13:35
Отправитель: vitya
Вопрос № 4547 |
>Отвечает never_again
>
>Приветствую Вас, Igor!
>я так понял - ты числа вносил вручную и они в файле ввиде
>ASCII сидят. если так то у тебя два пути. либо переделать
>массив в из строк в числа, как ты и просишь, либо
>работать со строками т.е. сравнивать строки. выбирай
>какой тебе лучше и пиши сюда. помогу чем смогу.
>а ещё можно генерировать случайные числа и хранить их в
>первый файл уже в готовом виде и тогда проблеммы с
>трансформированием сами отпадут
Мне нужно их перевести в числа. Спасибо заранее.
Вопрос отправлен: 30.11.2003, 02:07
Отправитель: Igor
[Следующий вопрос >>] [Список вопросов]
Отвечает never_again
Здравствуйте, Igor!
значит так,
числа как я помню у тебя разделены пробелом.
lea si,твой массив
xor ax,ax ; в ах будет конечный результат
mov bx,10 ; будем умножать на 10
xor ch,ch ; пусь лучше будет обнулено, а то...
lp:
mov cl,[si] ; кладём в cl символ ASCII из массива
cmp cl,20h ; это пробел?
je stop ; если да, то закончить преобразование
and cl,0cfh ; отсекаем 30h и получаем hex-число 0-9
xor dx,dx ; можна и не обнулять так как значения
; больше чем word в твоей задаче на
; встречаются
mul bx ; x=x*10+y
add ax,cx ;
inc si
jmp lp
stop: ; завершить преобразование одного числа
; просто вставь этот цикл в ещё один
; который будет бежать до конца массива
пояснения:
x=x*10+y -> самый простой способ перевести строку в число
если, скажем строка = 65535, то
х=0
х=х*10+6=6
х=х*10+5=65
х=х*10+5=655
х=х*10+3=6553
х=х*10+5=65535
Ответ отправлен: 30.11.2003, 03:48
Отправитель: never_again
Форма отправки вопроса |
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
(C) 2002-2003 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (25) C / C++ (22) Perl (3) Builder / Delphi (16) Pascal (18) Basic / VBA (4) Java / JavaScript (9) PHP (13) Криптография (4) WinAPI (9) |
Пользователю Windows 95/98/Me (42) Windows NT/2000/XP (55) "Железо" (31) Поиск информации (18) |
Администратору Windows NT/2000/XP (31) Linux / Unix (13) |
Юристу Гражданское право (11) Семейное право (8) Трудовое право (9) КоАП (6) |
Отправить вопрос всем экспертам выбранной рассылки.
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||