Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на Assembler

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133

Открыть новую тему     Написать ответ в эту тему

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Обсуждаются все вопросы, связанные с программированием на Ассемблере как общего так и конкретного характера.
 
важное примечание
для тех кто считает, что здесь место халявных исполнений курсовых и лабораторных работ.
тут обычно помогают тем, кто сам хоть что-то пытается понять и сделать, но что-то не понимает, что-то не получается...
ведь ассемблер изучают и задачки на нём дают обычно не менеджерам по продажам и даже не всем физ.-мат. специальностям
вы сами избрали этот путь? вот и идите по нему сами, ножками... с ручками и с головой...
 
короче, тут не сборище придурков-альтруистов, которым нечего делать и они ждут-не дождутся когда вы их попросите
что-то сделать _за_ вас
если позарез надо и вы даже готовы заплатить, тогда вам сюда
удачи
 
некоторые ресурсы
http://www.wasm.ru/ Самый популярный русскоязычный ресурс. https://wasm.in/
Ассемблер - книги (ASM, Assembler)
 
Просьба все большие листинги оформлять тегом more.
 
если вам вдруг не отвечают или ответ вас не устраивает
и вообще полезно прочитать всем спрашивающим

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 01:42 29-11-2006 | Исправлено: akaGM, 17:44 11-06-2020
getwellsoon

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Извините за ламерский вопрос. Надо скомпилировать одну готовую программу, а она не хочет. На ассемблерном файле ругается "error A2070:invalid instruction operands", строка кода:
movd    mm1,[ecx+8]
 
Там полно ошибок на подобных строках кода. Компилируется ассемблером ml.exe. Заранее спасибо за ответ.

Всего записей: 382 | Зарегистр. 26-07-2008 | Отправлено: 15:36 06-08-2010
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
getwellsoon
я никогдане использовал movd, но вот тут глянь
http://forum.developing.ru/showthread.php?15448

Цитата:
 
Во-первых, multIn объявлен как unsigned char, т.е. 1 байт. Т.е. такая инструкция недопустима
Код :
movd mm5, multIn
В вашем случае можно сделать так
Код :
movzx eax, multIn
movd mm5, eax
 
 

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 16:09 06-08-2010
getwellsoon

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Напишу чуть подробнее. Код такой:

Код:
 
  push  ebp
  push  edi
  push  esi
  push  ebx
 
  mov  eax,count
  shr  eax,2
  mov  count,eax
 
  mov  eax,ARGB1_pointer
  mov  ebx,ARGB2_pointer
  mov  ecx,Y1_pointer
  mov  edx,Y2_pointer
  mov  esi,U_pointer
  mov  edi,V_pointer
 
xloop:
  mov    ebp,UV_up
 
  prefetchnta  [ecx+7]
  prefetchnta  [edx+7]
 
  movd    mm0,[esi]      ;<- Здесь ругается "invalid instruction operands"
  movd    mm6,[esi+ebp]  ;<- Здесь ругается "invalid instruction operands"
  pavgb    mm6,mm0
  pavgb    mm0,mm6
  ...
 

 
Код, скорее всего, компилировался под VS6, а сейчас под VS2008 не хочет.

Всего записей: 382 | Зарегистр. 26-07-2008 | Отправлено: 17:19 06-08-2010
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
не самая посещаемая тема. по ассемблеру. есть более живые форумы не найду щас ссылок но гугла их легко найдет.

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 17:42 06-08-2010
conty9



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzzz, ну ты разошёлся!
По поводу ярлыков - давно сидит такая мыслишка (как ты, наверное, заметил, в Микре подобное сделано), но есть нюансы. Впрочем, в этой теме это оффтоп.  
Ещё раз спасибо.

Всего записей: 1700 | Зарегистр. 27-11-2006 | Отправлено: 20:10 06-08-2010
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
 
 
Добавлено:
так как старт.екзе не передающая путь - передает свой путь порождаемому процессу то впринципе задав ей любой рабочий путь можно и процессу любой задать.  
 
Добавлено:
@ECHO OFF
CD C:\MYPATH\
C:\START\START.EXE MYPROG.EXE
 
 
для программы C:\MYPATH\MYPROG.EXE
 
Добавлено:
или в ярлыке тута
   
та которая путь передает тоже так будет работать, но еще и будет работать если рабочий путь не указать.

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 20:19 06-08-2010 | Исправлено: bomzzz, 08:20 07-08-2010
aspis

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
getwellsoon

Цитата:
movd    mm1,[esi]  

Все нормально компилируется под masm 10.
Для использования MMX расширений в начале ассемблерного файла необходимо указать директиву .mmx и иногда .586 или .686.
 
или так попробовать movd mm1, dword ptr [esi], если используете movd
movq mm1, qword ptr [esi] если используете movq
 
Команды movd и movq

Всего записей: 87 | Зарегистр. 27-08-2007 | Отправлено: 09:35 07-08-2010
getwellsoon

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
aspis
Спасибо! "dword ptr" помогло. Еще есть проблемы на след. строке "error A2022:instruction operands must be the same size":

Код:
 
  SSE2_Ylow  dq  000FF00FF00FF00FFh, 000FF00FF00FF00FFh
  ...
  pand    xmm3,SSE2_Ylow    ;xmm4 = YE|YC|YA|Y8|Y6|Y4|Y2|Y0 <--!!!
 

Здесь word ptr/dword ptr/qword ptr не помогают.

Всего записей: 382 | Зарегистр. 26-07-2008 | Отправлено: 12:20 07-08-2010
aspis

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
getwellsoon
Регистры MMX расширения 64 битные и команда movd загружает 32 битное (4 байта или двойное слово DWORD), movq 64 битное (8 байт - учетверенное слово QWORD) значение, поэтому необходимо дополнительно указывать размер с помощью ptr (хотя под masm10 все нормально без дополнительных указаний компилировалось).

Код:
 
 SSE2_Ylow  dq  000FF00FF00FF00FFh, 000FF00FF00FF00FFh
  ...
  pand    xmm3,SSE2_Ylow    ;xmm4 = YE|YC|YA|Y8|Y6|Y4|Y2|Y0 <--!!!  
 

 
Только что попробовал - masm компилирует без выдачи ошибок.
Вы чем компилируете?
Вообще про программирование MMX/SSE можно почитать в книге Магда - Ассемблер для процессоров Intel Pentium, и других его книгах.

Всего записей: 87 | Зарегистр. 27-08-2007 | Отправлено: 15:29 07-08-2010
getwellsoon

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
aspis
 
Спасибо за помощь. Больше спрашивать не буду, а то, наверное, уже надоел. На ассемблере я давно программировал еще на i8080 процессоре. За современном состоянием ассемблерного языка давно не следил, за не надобностью. Оказалось, что жизнь идет своим чередом - много в ассемблере поменялось. Надо скилсы подтягивать.
 
Компилирую стандартным ассемблером в VS2008 SP1. Через Custom Build Step запускается строка "ml /nologo /c /coff /Zi /Fo"$(IntDir)\$(InputName).obj" "$(InputPath)"". По-идее должен запускаться Microsoft (R) Macro Assembler Version 9.00.30729.01. В "Visual Studio 2008 Command Prompt" когда набираю "ml", то он запускается.

Код:
 
C:\Program Files\Microsoft Visual Studio 9.0\VC>ml
Microsoft (R) Macro Assembler Version 9.00.30729.01
Copyright (C) Microsoft Corporation.  All rights reserved.
 
usage: ML [ options ] filelist [ /link linkoptions]
Run "ML /help" or "ML /?" for more info
 
C:\Program Files\Microsoft Visual Studio 9.0\VC>ml /nologo /c /coff /Zi /Fo"C:\temp\a_yuv2rgb.obj" "c:\temp\a_yuv2rgb.asm"
 Assembling: c:\temp\a_yuv2rgb.asm
c:\temp\a_yuv2rgb.asm(2012) : error A2022:instruction operands must be the same size
 

 
Сейчас я поправил код, теперь все компилируется кроме двух инструкций:

Код:
 
  movdqu  mm0,[ecx]
 
  pand  xmm3,SSE2_Ylow
 


Всего записей: 382 | Зарегистр. 26-07-2008 | Отправлено: 16:34 07-08-2010 | Исправлено: getwellsoon, 16:46 07-08-2010
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
никому ты не надоел - тут не бывает никого. кто проффесионально програмирует у того вопросов не возникает. а так только студентов перед сесией наплыв небольшой

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 18:09 07-08-2010
aspis

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
getwellsoon
Книжки я посоветовал именно для того, что там гораздо больше теории и, главное, примеров, чем тут можно написать (в книгах Ю. Магды так же есть много полезных примеров по использованию встроенного ассемблера в языках высокого уровня аля C++).
 
Я вообще эти примеры компилировал связкой RadASM (как IDE)+masm32 (компилятор)+OllyDbg (отладчик).
Для справки
Про RadASM можно тут почитать ru.wikipedia.org/wiki/RadASM; про masm32 тут http://www.masm32.com/masmdl.htm; про отладчик OllyDbg - http://www.ollydbg.de/

Всего записей: 87 | Зарегистр. 27-08-2007 | Отправлено: 21:39 07-08-2010
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
у меня вопрос такой возможно идиотский. пособий чтоб окошко нарисовать много, в основном тупые, но понять суть можно методом тыка. а вот куда потом код программы то вставлять? ну код который суть программы выполняет.  
если в процедуру обработки - окно зависает напрочь
если в прроцедуру окна - жутко медлено работает
второй процесс запустить - ну точно не так делается
дочернее окно запустить консольное невидимое? или может какая другая апи фукция есть которая быстрее сообщения обрабатывает... может посылать сообщения окну на выполнение следующего цикла из цикла???
 
надоело в слепую тыкаться как делать то надо?
 
Добавлено:
посылать сообщения тоже не получилось - окно вообще не появляется, и программа останавливается на пол дороги

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 08:09 12-08-2010 | Исправлено: bomzzz, 08:13 12-08-2010
aspis

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
надоело в слепую тыкаться как делать то надо?

В. Юров, Assembler, глава 16 Создание Windows-приложений на ассемблере - описано программирование оконных и консольных приложений
Уроки Iczelion'а, http://wasm.ru/publist.php?list=1 - программирование оконных приложений
В принципе достаточно, что бы дальше самому разбираться, полезное можно найти в
Ю. Магда, Ассемблера, разработка и оптимизация Windows-приложений
В. Пирогов, Ассемблер для Windows

Всего записей: 87 | Зарегистр. 27-08-2007 | Отправлено: 09:52 12-08-2010
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
макулатура
 
Добавлено:
из всех произведений единственное достойное внимания - труды кулакова, потому что он преподаватель в вузе, и не смотря на то что его труды грешат ошибками - он по крайней мере задумывается о тех кто его читает. остальные жуют сопли и расчитывают на читательскую телепатию.
 
 
 
Добавлено:
CreateThread  - все понятно

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 10:13 12-08-2010
aspis

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
надоело в слепую тыкаться как делать то надо?

То есть, вы не знаете ассемблера, под Windows с использованием WinAPI уж точно, но смело утверждаете, что эти книги

Цитата:
макулатура  


Цитата:
из всех произведений единственное достойное внимания - труды кулакова, потому что он преподаватель в вузе, и не смотря на то что его труды грешат ошибками

 
Так что же вы хотите и чему хотите научится? Остается только одно вам посоветовать - первоисточник по разработке Windows-приложений - http://msdn.microsoft.com и программированию на ассемблере вообще - http://software.intel.com.
Ознакомитесь и задавайте уже конкретные нормальные вопросы, а не

Цитата:
у меня вопрос такой возможно идиотский


Всего записей: 87 | Зарегистр. 27-08-2007 | Отправлено: 12:19 12-08-2010
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
моск не парь, если вопросов не понимаешь, смотри картинку слушай пластинку

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 12:21 12-08-2010
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
оверпостер и флудер...

Всего записей: 24114 | Зарегистр. 06-12-2002 | Отправлено: 13:44 13-08-2010
karakurt2



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вот понравившаяся мне статья, каким-то боком касающаяся программирования на ассемблере
 
Moving to Windows Vista x64

Всего записей: 733 | Зарегистр. 06-12-2003 | Отправлено: 20:04 13-08-2010
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
сам нашел у меня в справочнике не все параметры были почему то, наверно из за того что это от фреймворка
Подробнее...

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 01:12 14-08-2010 | Исправлено: bomzzz, 03:17 14-08-2010
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на Assembler


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru