Скидки и подарки всем подписчикам рассылки Dr. Pierre Ricaud! | ||||||||||||||||||||||||
| ||||||||||||||||||||||||
| ||||||||||||||||||||||||
Хостинг портала RFpro.ru: РАССЫЛКИ ПОРТАЛА RFPRO.RU
Чемпионы рейтинга экспертов в этой рассылке
/ КОМПЬЮТЕРЫ И ПО / Программирование / Assembler (Ассемблер)
Вопрос № 177755: Здравствуйте! Помогите пожалуйста решить задачку по низкоуровневой работе с мышью: Написать программу, которая бы реализовывала установку курсора в правый нижний угол экрана. Предпочтителен - TASM, но буду рад и другим вариантам. ... Вопрос № 177764: Добрый день! Вопрос о модификации адресов. Почему запись mov ax,120h mov [bx],ax правильна, а просто одна команда mov [bx],120h (без предыдущей команды mov ax,120h) неправильна и пишется invalid instruction operands? Однако, если заменит... Вопрос № 177755: Здравствуйте! Отправлен: 08.04.2010, 23:46 Отвечает Лысков Игорь Витальевич, Модератор : Здравствуйте, Гальцов Андрей. Вот Вам программка, сделанная на основе Вашей. Хочу только обратить внимание, что запускать программу надо только из текстового режима (т.е. нажать Alt-Enter на окне CMD) Приложение: Ответ отправил: Лысков Игорь Витальевич, Модератор Оценка ответа: 5
Вопрос № 177764: Добрый день! Вопрос о модификации адресов. Почему запись Отправлен: 09.04.2010, 03:31 Отвечает Alex_S, 8-й класс : для генерации кода команды компилятору необходимо четко знать размер операнда в данном случае мы имеем дело с косвенной адресацией, т.е. адрес операнда содержится в регистре mov [bx],ax - поместить значение регистра AX по адресу, который содержится в регистре BX здесь размер операнда известен (разрядность AX = 16 бит), поэтому будет сгенерирована команда для записи слова рассмотрим такой пример: 1) mov byte ptr [bx],1 2) mov word ptr [bx],1 эти две команды похожи, но имеют разный код это разные команды первая строка - "записать байт со значением 1 по адресу, который содержится в регистре BX" вторая строка - "записать слово со значением 1 по адресу, который содержится в регистре BX" если в роли операнда мы указываем константу, то необходимо явно задавать размер данных в случае mov [bx],ax неявно подразумевается mov word ptr [bx],ax mov [bx],ax = mov word ptr [bx],ax смотрим дальше mov byte ptr [bx],120h дело в том, что 120h = 288 = 100100000b не влезает такое большое значение в 1 байт (8 бит), вот беда какая максимальное значение байта равно FFh = 255 = 11111111b а вот mov word ptr [bx],120h компилируется без ошибок, 255 в шестнадцати битах уместится без проблем Хоть ответ по сути и правильный, но спрашивалось-то несколько о другом. Будьте внимательны. ----- • Отредактировал: Лысков Игорь Витальевич, Модератор • Дата редактирования: 11.04.2010, 02:01 (время московское) ----- йо-хо-хо! Ответ отправил: Alex_S, 8-й класс Оценка ответа: 4
Отвечает Лысков Игорь Витальевич, Модератор : Здравствуйте, Adsorores. Хоть уважаемые мной эксперты и поддержали ответ эксперта Alex_S, мне кажется, что на вопрос все-таки не был дан ответ... Сказано то, с чем автор вопроса и так согласен ... Так понял, речь идет о masm-е. Именно он выдает такую ошибку. Видать, это ошибка самого masm-а. Та же ошибка будет, если дать операндом байт! Т.е. masm в обоих случаях считает неопределенной разрядность операнда. Что неверно. Чтобы не было ошибки, надо явно указывать разрядность word ptr или byte ptr. А mov byte ptr+1 [bx],20h - просто ошибка, после byte ptr нельзя писать +1 Но можно записать mov byte ptr 1[bx],20h Кстати, tasm команду mov [bx],120h обрабатывает корректно и никаких сообщений не выводит. ----- Удачи! Ответ отправил: Лысков Игорь Витальевич, Модератор Оценка ответа: 5
Оценить выпуск »
Задать вопрос экспертам этой рассылки »Скажите "спасибо" эксперту, который помог Вам!Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТАна короткий номер 1151 (Россия) Номер ответа и конкретный текст СМС указан внизу каждого ответа. * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов) © 2001-2010, Портал RFpro.ru, Россия Авторское право: ООО "Мастер-Эксперт Про" Автор: Калашников О.А. | Программирование: Гладенюк А.Г. Хостинг: Компания "Московский хостер" Версия системы: 2010.6.14 от 03.03.2010 | ||||||||||||||||||||||||
Как вам этот выпуск ? Дайте свой отзыв или Оцените 5 4 3 2 1, можно письмом: 5 4 3 2 1 | ||||||||||||||||||||||||
| ||||||||||||||||||||||||
| ||||||||||||||||||||||||
|
среда, 14 апреля 2010 г.
RFpro.ru: Ассемблер? Это просто! Учимся программировать
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий