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

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


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

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

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler

Выпуск № 326
от 27.12.2005, 10:21

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


Вопрос № 31928: Здравствуйте еще раз, уважаемые эксперты!У меня такая ситуация с ассемблированием. Набираю в cmd.exe пути до ml.exe и prog01.asm C:masm611inml.exe C:prog01.asm/AT И получаю ошибку fatal error A1000: cannot open file : C:prog01.asm/AT Но...
Вопрос № 31941: Здравствуйте уважаемые эксперты. Помогите разобраться со следующей заморочкой: - команда lea dx,mem эквивалентна mov dx,offset mem так вот, как понять такую команду: lea eax,[ecx+edx] эту команду я подсмотрел при отладке в делфи на vi...
Вопрос № 31962: Доброе время суток! Что-то я немного запутался, помогите разобраться... переведем числа в обратный код: (-64)+(+27) -----------> 11100100+10111111=110100011 (+38)+(-38) -----------> 01011001+11011001=100110010 А в д...
Вопрос № 31974: Уважаемые эксперты, как пользоваться утилитой LIB.EXE для создания библиотек( для 16-ти разрядного ассемблера)? Если можно напишите пожалуйста мне примерчик типа библиотечной функции (функция=x*y). И надо ли объявлять прототипы подобно MASM32 в основ...

Вопрос № 31.928
Здравствуйте еще раз, уважаемые эксперты!У меня такая ситуация с ассемблированием.
Набираю в cmd.exe пути до ml.exe и prog01.asm C:masm611inml.exe C:prog01.asm/AT
И получаю ошибку fatal error A1000: cannot open file : C:prog01.asm/AT Но созданный
батник "C:masm611inml.exe C:prog01.asm /AT" почему то работает нормально,в чем тут
проблемма?Папки BIN и BINR обьединил в BIN, прописал путь к папке C:MASM611BIN в PATH.
P.S опер. сист.WIN/XP.

приложение:

Приложение:

Отправлен: 21.12.2005, 11:10
Вопрос задал: Игорь Стариков Иванович (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Евгений Иванов
Здравствуйте, Игорь Стариков Иванович!
http://rusfaq.ru/?Step=info&Action=Question&ID=31569

---------
Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Отправлен: 21.12.2005, 11:29

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Игорь Стариков Иванович!
Евгений Иванов хотел сказать, что подобные вопросы ну очень часто повторяются.
И изрядно достали.
Ссылка верная, но там нет конкретного ответа на поставленный вопрос :(
Хотя и этот вопрос уже был и не раз.
Дело в том, что "тщательнее надо быть"... Параметр /AT надо бы отделять пробелом.
---------
Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: 10-ый класс)
Отправлен: 21.12.2005, 12:23
Оценка за ответ: 5


Вопрос № 31.941
Здравствуйте уважаемые эксперты. Помогите разобраться со следующей заморочкой:
- команда lea dx,mem эквивалентна mov dx,offset mem
так вот, как понять такую команду:
lea eax,[ecx+edx]
эту команду я подсмотрел при отладке в делфи на view cpu
сделал функцию с двумя параметрами типа integer и собственно функция возращает результат их суммы. Как бы логика понятна, но выглядит это как косвенная адресация чтоли...
странно все это...
Отправлен: 21.12.2005, 13:12
Вопрос задал: Solodov Evgeniy Vladimirovich (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Евгений Иванов
Здравствуйте, Solodov Evgeniy Vladimirovich!
LEA - вычисление эффективного адреса. Она не загружает ниоткуда никаких значений из памяти :)
---------
Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Отправлен: 21.12.2005, 13:25

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Solodov Evgeniy Vladimirovich
Начну с того, что lea dx,mem не эквивалентна mov dx,ofset mem.
У них только результат работы одинаков!
mov загружает непосредственный опеанд в регистр.
lea загружает эффективный адрес в регистр, в данном случае просто адрес переменной mem.
В случае lea eax,[ecx+edx], вычисляется эффективный адрес выражения [ecx+edx],
как сумма значений указанных регистров, и результат присваивается eax.
Это не только выглядит как косвенная адресация, это она и есть. :)
Так что, ничего странного тут нет.
---------
Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: 10-ый класс)
Отправлен: 21.12.2005, 14:46


Вопрос № 31.962
Доброе время суток!
Что-то я немного запутался, помогите разобраться...
переведем числа в обратный код:
(-64)+(+27) -----------> 11100100+10111111=110100011
(+38)+(-38) -----------> 01011001+11011001=100110010

А в дополнительном коде вообщее...
(-73)+(+54):
10110111+01001010=100000001
(+19)-(-38):
01101100+11011001=
1111111111111111111111111111111111111111111111111111111110010011
Что не так, как правильно?
Спасибо!
Отправлен: 21.12.2005, 17:20
Вопрос задал: T0XA (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Лысков Игорь Витальевич
Здравствуйте, T0XA!
Немного запутался, это мягко сказано...Такого намутил...
Давай сначала определимся в следующем:
1. В какой системе счисления числа записаны? Предположим, что в десятичной.
2. Что понимаем под обратным кодом? Лично я понимаю двоичную инверсию битов.
Например, 64d=40h=01000000b и тогда -64d = 0bfh = 10111111b
3. Что понимаем под дополнительным кодом? Лично я понимаю знаковую инверсию,
которая получится, когда к обратному коду добавить единицу.
Например, 73d=49h=01001001b и тогда -73d = 10110110b + 1 = 10110111b
Сложение положительного и отрицательного числа в дополнительном коде
должно дать ноль.
Когда разберешься с этим, тогда и со своими примерчиками сам справишься :)
---------
Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: 10-ый класс)
Отправлен: 21.12.2005, 18:05
Оценка за ответ: 5


Вопрос № 31.974
Уважаемые эксперты, как пользоваться утилитой LIB.EXE для создания библиотек( для 16-ти разрядного ассемблера)? Если можно напишите пожалуйста мне примерчик типа библиотечной функции (функция=x*y). И надо ли объявлять прототипы подобно MASM32 в основной программе?
Отправлен: 21.12.2005, 21:35
Вопрос задал: Яковлев Сергей Павлович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Яковлев Сергей Павлович!
Создаешь обычный модуль с одной функцией, обязательно объявляя ее имя как public . Ассемблируешь, получаешь obj-файл (в принципе, такой модуль может быть просто прилинкован обычным методом). Ну и формируешь библитотеку командой lib /out:<имя либы> <имя obj-файла>. И всех делов-то.
А вообще, если спросить lib /?, то можно увидеть описание всех параметров.

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


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

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

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

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

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Яндекс Rambler's Top100

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.faq
Архив рассылки
Отписаться Вебом Почтой
Вспомнить пароль

В избранное