Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 376
от 27.09.2002, 00:40
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 1349 Отправлено ответов: 4234 Активность: 313.8 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
Broken Sword Статус: Профессиональный Общий рейтинг: 134.11 URL: моя рассылка по Protected Mode [Подробней >>] |
Bob Johnson Статус: Опытный Общий рейтинг: 143.69 [Подробней >>] |
igorash Статус: Профессиональный Общий рейтинг: 119.54 [Подробней >>] |
vitya Статус: Профессиональный Общий рейтинг: 110.47 [Подробней >>] |
ASMодей Статус: Опытный Общий рейтинг: 123.73 [Подробней >>] |
Kiss Статус: Опытный Общий рейтинг: 137.67 [Подробней >>] |
Dark_Lord Статус: Профессиональный Общий рейтинг: 133.51 [Подробней >>] |
Portnov Статус: Профессиональный Общий рейтинг: 120.62 URL: Мой сайтик... [Подробней >>] |
LIFO Статус: Опытный Общий рейтинг: 133.33 Телефон: 8 01710 24758 [Подробней >>] |
Топор Статус: Профессиональный Общий рейтинг: 116.81 URL: Хорошая Русская Металлическая команда Телефон: (8462)500298 [Подробней >>] |
masquer Статус: Профессиональный Общий рейтинг: 157.17 [Подробней >>] |
Biv Статус: Доверительный Общий рейтинг: 126.12 [Подробней >>] |
copycon Статус: Доверительный Общий рейтинг: 106.83 [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 1304. Я на счёт отрицательных чисел. Тогда получается что 1111 1111 равно 255 и тем же временем -1 . Вот ч... (ответов: 4)
Вопрос № 1305. Доброго здоровья уважаемые эксперты! Не сочтите за труд просветить неуча. Откуда вообще взялось назв... (ответов: 10)
Вопрос № 1306. Доброе время суток экперты! Почитываю я сейчас "Искусство программирования", и ловлю себя ... (ответов: 8)
Вопрос № 1307. Здрасьте! 2Bob Johnson:а не мог бы ты скинуть на мыло исходник сам знаешь чего :) В образовательных ... (ответов: 1)
Вопрос № 1308. Дарова! Обращение ко всем экспертам. Ну и чё что я АСМ позорил(как некоторые говорили мне "говн... (ответов: 3)
Вопрос № 1309. Здравствуйте, господа программисты! Есть такая замечательная штука - Keil-эмулятор для 8051. Я видел... (ответов: 2)
Вопрос № 1311. Нет вы меня не так поняли... Я говорю в тусу АСМа вообще, как бы в Российскую... Хотел бы передать о... (ответов: 1)
Вопросов: 7, ответов: 29
Вопрос № 1304 |
Я на счёт отрицательных чисел. Тогда получается что 1111 1111 равно 255 и тем же временем -1 . Вот чё я понять не могу!?.
Если 1111 1111 сделать коверцию и прибавить один то получится 0000 0001 т.е один по модулю - это я понял.
А как тогда узнать что за число скрывается н-р под этим:
11100010. 226 или 00011110 (30)? Ведь бит главный равет 1 !?
Вопрос отправлен: 22.09.2002, 01:30
Отправитель: soldier
[Следующий вопрос >>] [Список вопросов]
Отвечает Broken Sword
Добрый день, soldier!
блин... это случайно не ты асм гавном поливал?
процу абсолютно наплевать отрицательное число или положительное. На самом деле, когда ты более глубоко поймешь асм то и тебе уже будет абсолютно все равно...
Зачем нужны числа? Чтобы производить над ними операции, так? Ну вот, при операциях умножения и деления мы процу ЯВНО указываем, что числа - со знаком. Т.е. слева прибавляется буковка I (IMUL, IDIV). А при сложении/вычитании, ты конечно удивишься, но это действительно абсолютно пофигу. Результат в любом случае получиться правильный.
Ну смотри: 11100010. Действительно, это 226. Но с другой стороны - это -30. Допустим, прибавим число 30.
Что у нас в первом случае произойдет? 226+30=256
Ты наверно знаешь, что 256 в байт не влезет (т.к. FF-это 255), а 256 - это ноль (т.е. все опять начинается заново - 256=0, 257=1,258=2...). Вот это только пойми. -30+30 ТОЖЕ РАВНО нулю. Следовательно, -30=226, согласен?
Теперь ты спросишь, "а как же мне тогда получить, допустим, число 325, оно же не влазит в байт!!!". Ну на этот случай существуют уже слова. Здесь все происходит точно также, только "в ноль" все сбрасывается при переходе барьера FFFFh (т.е. 65536=0)
Ответ отправлен: 22.09.2002, 10:49
Отправитель: Broken Sword
Отвечает Bob Johnson
Добрый день, soldier!
Вот в этом то и фишка, что 1111 1111 равно 255 и -1 одновременно. В зависимости от того, каким ты его сам будешь считать - знаковым или беззнаковым.
Ответ отправлен: 22.09.2002, 19:02
Отправитель: Bob Johnson
Отвечает igorash
Доброе время суток, soldier!
поэтому там где надо операции над знаковыми и незнаковыми различают (div и idiv например)
Ответ отправлен: 22.09.2002, 01:42
Отправитель: igorash
Отвечает vitya
Здравствуйте, soldier!
Eсть числа со знаком (signed) есть числа без знака (unsigned). Для чисел со знаком самый сташий бит - бит знака. Для описания отрицательных чисел используется дополнительный код. Так что двоичная сумма
a + (-a) = 2^x, где x - разрядность сетки.
для чисел без знака - верний бит можно использовать просто так - соответственно количество чисел (положительных) удваивается минус 1.
Ответ отправлен: 22.09.2002, 14:36
Отправитель: vitya
Вопрос № 1305 |
Доброго здоровья уважаемые эксперты!
Не сочтите за труд просветить неуча.
Откуда вообще взялось название – “assembler”?
А то учить то учу – а что? - хоть интересно узнать…
Да пребудет с Вами чувство юмора в критической ситуации, завсегда спасибо!
P.S. в детстве у меня долго жили аквариумные рыбы, а сейчас – черная кошка…в вопросе про 8086 – Broken Sword – the best, even The Beast
“In God We Trust” – God HELP U.S.:) or US?
Lelik (№625) – давай дружить:)
Вопрос отправлен: 22.09.2002, 02:06
Отправитель: zoofish
[Следующий вопрос >>] [Список вопросов]
Отвечает Broken Sword
Приветствую Вас, zoofish!
За "Beast", конечно, спасибо, но наверно, ты имел ввиду другое...)
Открываю "Словарь по программированию" Борковского, 1991 года (очень редкая книга, кстати), и читаю:
Assembler - ассемблер, транслятор (с языка ассемблера), язык ассемблера
Ну вот. Едем дальше. Открываем англо-русский словарь Ахмановой, 1961 года :) - IMO, самый лучший. Смотрим:
Assemble - собирать.
Следовательно, assembler - собирающий.
Кстати, задумывался ли кто нибудь когда то о том, что слово ассамблея (генеральная ассамблея ООН, допустим) - это тоже все из этой оперы (ассамблея - собрание)? )
Короче, ассемблером можно назвать ТАСМ, МАСМ, НАСМ, А86 - это все ассемблеры. ЯЗЫК ЭТИХ АССЕМБЛЕРОВ - ЭТО команды MOV, DIV, LGDTR и т.п. Машинные коды - это НЕ АССЕМБЛЕР, машинные коды - это машинные коды :)
вообщем, разберешься, думаю...
Ответ отправлен: 22.09.2002, 10:49
Отправитель: Broken Sword
Отвечает ASMодей
Приветствую Вас, zoofish!
Действительно, а то еще научишься непонятно чему :)
Ассемблер происходит от английского "Assemble", то есть
"собирать, монтировать". Что именно он собирает или монтирует
я не знаю, но в итоге получаются программы.
Ответ отправлен: 22.09.2002, 18:23
Отправитель: ASMодей
Отвечает Kiss
Приветствую Вас, zoofish!
Вообще Assembler переводится как сборщик. Похоже название такое из-за его низкоуровневой работы с машиной!
Ответ отправлен: 22.09.2002, 11:13
Отправитель: Kiss
Отвечает Dark_Lord
Добрый день, zoofish!
Ассемблер, от англ. Assembly - собирать, объединять!
Ответ отправлен: 22.09.2002, 11:11
Отправитель: Dark_Lord
Отвечает Portnov
Доброе время суток, zoofish!
англ. to assemble - собирать. Так что ассемблер (изначально название программы-транслятора, а уж потом языка) - это собиратель. Собиратель мнемокодов в машинные инструкции.
С уважением, Portnov.
Ответ отправлен: 22.09.2002, 11:45
Отправитель: Portnov
Отвечает LIFO
Здравствуйте, zoofish!
От слова связывать, присоединять.
Просто стало возможным использование символики.
Ответ отправлен: 22.09.2002, 16:22
Отправитель: LIFO
Отвечает Топор
Доброе время суток, zoofish!
Assembler - значит "сборщик", это и было первым значением термина.
Ответ отправлен: 24.09.2002, 18:23
Отправитель: Топор
Отвечает igorash
Добрый день, zoofish!
assemble - собирать, компоновать, ассемблер - язык "сборщика", т.е. ассемблер - прога-сборщик, собирает прямо из текста на асме машинный код
з.ы. у меня рыбки долго не жили - я их забывал кормить, а щас у меня тоже есть черный кот, а при чем здесь это???
Ответ отправлен: 22.09.2002, 02:22
Отправитель: igorash
Отвечает masquer
Здравствуйте, zoofish!
От англ. assembly - собирать, монтировать. Соответственно - ассемблер - то или тот, кто собирает, в данном случае из текста - код, раньше ведь кроме ассемблера и языков других не было.
Ответ отправлен: 22.09.2002, 08:50
Отправитель: masquer
Отвечает Biv
Здравствуйте, zoofish!
С английского слово assemble переводится как собирать => assembler переводится как собиратель. Имеется в виду что он собирает код воедино, во имя альта контроля и делита. Ентер!
Ответ отправлен: 22.09.2002, 14:40
Отправитель: Biv
Вопрос № 1306 |
Доброе время суток экперты!
Почитываю я сейчас "Искусство программирования", и
ловлю себя на мысли, что эта книга давно уже морально устарела, вобщем хотел бы услышать ваши соображения по этому поводу.
Вопрос отправлен: 22.09.2002, 08:33
Отправитель: Кусссс (d_den@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Kiss
Доброе время суток, Кусссс!
Почитывай. Лишними знания не бывают, да и какая только хрень не случается все может пригодиться!
Ответ отправлен: 22.09.2002, 11:07
Отправитель: Kiss
Отвечает igorash
Добрый день, Кусссс!
эта книга вряд ли устареет скоро потому что в ней описаны математические алгоритмы, которые нужны везде
Ответ отправлен: 22.09.2002, 17:03
Отправитель: igorash
Отвечает Dark_Lord
Здравствуйте, Кусссс!
Соображения свои лучше держать при себе(из опыта). А вопрос Аднозначно не по ассемблеру!
Ответ отправлен: 22.09.2002, 11:12
Отправитель: Dark_Lord
Отвечает LIFO
Доброе время суток, Кусссс!
Ты на год посмотри...
НЕ только морально.
Ее просто почитывать нельзя, высшая математика все ж .
Ответ отправлен: 22.09.2002, 16:19
Отправитель: LIFO
Отвечает Biv
Здравствуйте, Кусссс!
Я так понимаю речь и дет о Кнуте. Так вот, Кнут гениальный человек. И теория, излагаемая им в своих книгах, устареет не раньше чем азбука для школьников.
P.S. А о каком томе идет речь?
P.S.S. А о Кнуте ли идет речь?
Ответ отправлен: 22.09.2002, 14:40
Отправитель: Biv
Отвечает masquer
Здравствуйте, Кусссс!
Ну, это как институтский курс - тебе все это в жизни может и не понадобится, но как основа для более специальных знаний. Недаром же Билл Гейтс комментарий написал к этим книгам.
Ответ отправлен: 22.09.2002, 08:54
Отправитель: masquer
Отвечает vitya
Приветствую Вас, Кусссс!
Отнюдь! Она актуальна, как всегда. Кроме того такого математического аппарата нигде на найти. Единственное, что конечно задалбливает это его MIX ассемблер, но зато это на самом деле оптимальный код.
Ответ отправлен: 22.09.2002, 14:30
Отправитель: vitya
Отвечает copycon
Добрый день, Кусссс!
Не совсем понял о какой книге идет реч, но если о этой:
"Knuth, Donald E., The Art of Computer Programming"
то ты глубоко заблуждаешся.
На чем-бы и под что-бы ты не писал, а алгоритмы не стареют
они разве только усовершенствуються.
А быструю сортировку я делал и на асме и на basic.com и на Delphi и на C++ :)
Удачи.
Ответ отправлен: 24.09.2002, 13:09
Отправитель: copycon
Вопрос № 1307 |
Здрасьте!
2Bob Johnson:а не мог бы ты скинуть на мыло исходник сам знаешь чего :) В образовательных целях.
2Ail:
> Но хочу тебя предупредить, что если речь идет по-прежнему
> о модуле, прикрепляющемся к любой COM-программе,...
ага
> ...то у тебя не получится делать уменьшение >памяти,
> выделенной программе. потому что неизвестно,
>собирается ли исходная программа использовать эту память
Я эту поблему решил сл. образом (см. придожение)
Приложение:
Вопрос отправлен: 22.09.2002, 10:39
Отправитель: Виталий (vitalikku@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Доброе время суток, Виталий!
Мог бы и уже сделал :-) Только смотри аккуратней, т.к. там много интересного (на друзьях не тестируй :-).
По поводу твоей проги - не помню, как ДОС работает точно, но по-моему ты тут ошибся (см. 2).
1. Если твой вирус (ну или что там) получает управление сразу же при запуске программы (т.е. ты изменил ее начало), то можешь вполне уменьшить ее блок памяти и выделить себе чуть-чуть, т.к. программа же не знает, сколько свободной памяти достанется ей при запуске. Далее самое то - это заменить начало программы на исходное и передать ей управление на cs:100h.
Более того, бывает так, что программе отводится память не до 0A0000h, а меньше, т.к. там (в самом верху обычной памяти) расположена какая-нибудь программа... Сам с таким столкнулся несколько лет назад, когда ошибочно думал, что смогу использовать всю память до экрана.
2. Мне кажется, что твоя программа работать правильно не будет - вот смотри, запускается ком-файл, вся свободная память отдается ему, далее ты этот блок памяти уменьшаешь
до 64к, и выделяешь себе сколько-то. Вот твой блок будет выделен сразу же за блоком 64к, предназначенном программе, а все остальное останется свободным. Далее ты пытаешься увеличить размер блока памяти программы до конца. Но как? Ведь ДОС не знает никакого страничного преобразования и не может соединить блоки памяти программы и свободный блок, который находится не рядом с первым... Вот и облом.
Правильно будет делать так: вначале уменьшить блок памяти программы на столько, сколько тебе нужно (ну, чуть больше, на 1 параграф, т.к. ДОСу требуется место под системную информацию), затем выделить себе память.
Вот так и ДОС вспомнишь...
Приложение:
Ответ отправлен: 22.09.2002, 19:01
Отправитель: Bob Johnson
Вопрос № 1308 |
Дарова!
Обращение ко всем экспертам. Ну и чё что я АСМ позорил(как некоторые говорили мне "говном обливал")? Я же вас проверял! Я бы так или и наче его стал изучать!
Так что , мазер факер, АСМ это крута!! И я вливаюсь в вашу тусу!!!
Вопрос отправлен: 22.09.2002, 14:09
Отправитель: Soldier
[Следующий вопрос >>] [Список вопросов]
Отвечает Kiss
Добрый день, Soldier!
Так ты че с нами теперь будешь? Ну ты какой крутой проверки устраиваеш, мы же тоже можем проверить:)))
Ответ отправлен: 22.09.2002, 17:55
Отправитель: Kiss
Отвечает igorash
Добрый день, Soldier!
Ваще-то тебя никто и не звал вливаться, поэтому не надо тут гнать, а таких мудаков-проверяльщиков тут и так хватает и я особой радости от твоего пребывания тут не испытываю и еще надо разобраться кто тут мазер факер, ксакеп.ру блин
Ответ отправлен: 22.09.2002, 16:54
Отправитель: igorash
Отвечает Bob Johnson
Приветствую Вас, Soldier!
На что интересно ты нас проверял?
Ответ отправлен: 23.09.2002, 13:30
Отправитель: Bob Johnson
Вопрос № 1309 |
Здравствуйте, господа программисты!
Есть такая замечательная штука - Keil-эмулятор для 8051.
Я видел, что можно написать программу на ANSI C под данную архитектуру, а потом дизассемблернуть ее, получит в на выходе что-то вроде:
; ASM1.SRC generated from: ASM1.C
NAME ASM1
?PR?_getserie?ASM1 SEGMENT CODE ;сегмент кода подпрограммы
?PR?main?ASM1 SEGMENT CODE ;сегмент кода тела программы
?DT?main?ASM1 SEGMENT DATA OVERLAYABLE ;сегмент данных программы
EXTRN CODE (?C?SCDIV) ;внешние подпрограммы (библ.)
EXTRN CODE (?C_STARTUP) ;имя сегмента(точка входа)
PUBLIC main ;доступные имена исх. прогр.
PUBLIC _getserie
RSEG ?DT?main?ASM1 ;размещение сегмента данных
?main?BYTE: ;метка для доступа к данным
x?142: DS 1 ;собственно имена переменных
f?143: DS 1
; char getserie(char xs) {
RSEG ?PR?_getserie?ASM1 ;размещение сегм. кода подпрограммы
USING 0
_getserie: ;имя (точка входа) подпрограммы
;---- Variable 'xs?040' assigned to Register 'R7' ----
...
из
char getserie(char xs) {
char fs;
xs=xs-100;
fs=xs*(100-xs*(50-xs*(33-xs/4)/100)/100)/100;
return fs;
}
void main() {
char x=10,f;
while (x<=90) {
f=getserie(x);
x=x+5;
}
}
...
Ессесна понятно, что комментариев на русском не будет, НО хочется, чтобы сохранились имена переменных и на какой строчке все это было в исходном .C-файле.
Покопавшись в инете, я нашел, что на старой борде (forum.kalashnikoff.ru/cgi-bin/...) эта тема уже поднималось, т.ч. расчитываю на Вашу помощь :)
С уважением...
Вопрос отправлен: 22.09.2002, 14:02
Отправитель: Владимир
[Следующий вопрос >>] [Список вопросов]
Отвечает masquer
Доброе время суток, Владимир!
Компилировать нужно с включением отладочной информации - тогда все будет
Ответ отправлен: 22.09.2002, 20:40
Отправитель: masquer
Отвечает Dark_Lord
Доброго времени суток!
К сожалению немного не туда попали! Я тогда только начинал программировать, а писал всё Калашников Олег (admin@RusFAQ.ru), попробуйте у него спросить, так как я лично такого не помню!
з.ы. Это его сайт (www.Kalashnikoff.ru)
Ответ отправлен: 22.09.2002, 14:25
Отправитель: Dark_Lord
Вопрос № 1311 |
Нет вы меня не так поняли... Я говорю в тусу АСМа вообще, как бы в Российскую...
Хотел бы передать отдельное ПАСИБА Biv 'у , который мне всё разъяснил с отрицаельными числами... Пасиба тебе Biv !
Вопрос отправлен: 22.09.2002, 18:16
Отправитель: soldier
[Следующий вопрос >>] [Список вопросов]
Отвечает masquer
Доброе время суток, soldier!
Причем здесь российскую?
А чтобы проверять - уровень соответсвующий иметь нужно, не так ли?
Ответ отправлен: 22.09.2002, 20:44
Отправитель: masquer
Форма отправки вопроса |
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
© 2002 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (38) C / C++ (28) Perl (7) Delphi (15) Pascal (23) Basic / VBA (12) Java / JavaScript (10) PHP (6) MySQL / MSSQL (9) |
Пользователю Windows 95/98/Me (39) Windows NT/2000/XP (30) "Железо" (35) Поиск информации (14) |
Администратору Windows NT/2000/XP (16) Linux / Unix (17) |
Юристу Гражданское право (8) Семейное право (4) Трудовое право (6) КоАП (5) |
Отправить вопрос всем экспертам выбранной рассылки.
© 2002 Россия, Москва. Авторское право: RusFAQ.ru |
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||