Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ASM - с чего начать? 
:(
    Опции темы
cardinal
Дата 8.1.2006, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 1
Всего: 99



Гость_Merlin, эта тему создана не для этого! Создай отдельную тему (в разделе "центр помощи" или "работа", если готов платить)!


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
ctranik
Дата 4.3.2006, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 25.12.2005

Репутация: нет
Всего: нет



neutrino, привет

А где можго скачать эту книгу "Programmirovanie v Turbo Assembler"

И кстати перевод на русский имеется ?
PM MAIL   Вверх
peter789
Дата 19.3.2006, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 19.3.2006

Репутация: нет
Всего: нет



поиск файла по маске smile
PM MAIL   Вверх
oleg1973
Дата 19.3.2006, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: нет
Всего: 34



peter789,
os какая?


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
darthnick
Дата 12.6.2006, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 3.5.2006

Репутация: нет
Всего: нет



привет, я только начал асм изучать и возник вопрос.. к примеру:
somevar dw 0
; ...
mov ax,23
mov [somevar],ax
;...

почему в последней строчки испл. [] ? ведь компилируется без них нормально и непрямая адресация не испл. 
З.Ы. сорри если не по теме smile 

Это сообщение отредактировал(а) darthnick - 12.6.2006, 13:03
PM MAIL   Вверх
Chingachguk
Дата 13.6.2006, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: 11
Всего: 18



В данном случае все равно, как писать. Лично мне больше нравится mov word ptr SomeVar[...],ax например - mov word ptr SomeVar[bx+di],ax и т.п. 


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
daniel
Дата 20.6.2006, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 13.6.2006

Репутация: нет
Всего: нет



Огромное спасибо за уроки! smile
    Расскажите пожалуйста побольше о циклах! 
PM MAIL   Вверх
setty
Дата 20.6.2006, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 8.6.2006
Где: Украина

Репутация: нет
Всего: нет



в книгах же все расписано хорошо
есть несколько видов loop ов
можно циклы устраивать последовательностью cmp/test и  jne/je
 
PM MAIL   Вверх
Chingachguk
Дата 24.6.2006, 00:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: 11
Всего: 18



daniel

Спасибо ;)

Циклы... ранее я писал ориентируясь на то, что изучающий будет использовать вставки на языке Паскаль для DOS. Времена меняются... возможно, будет лучше использовать вставки на языке Делфи или СИ (VC6). Пусть это будет язык Делфи. Здесь программа - WIN32 приложение, никаких сегментов больше нет (почти нет, но бывают иногда). Все указатели на любые данные или параметры в большинстве случаев - 32 битные значения. Используются 32-х разрядные регистры: EAX (ранее был AX/AL), EBX, ECX, EDX, ESI, EDI, EBP. Регистры EBX, ESI, EDI лучше сохранять.

Предполагаем простую задачу: программа принимает указатель на массив байт и размер самого массива и ищет в нем заданный байт. Если находит, то возвращает номер байта (нумерация от 1), иначе возвращает 0:

Цитата

function Get_BytePosition(Mas: array of byte; MasSize: integer; ByteToScan: byte): integer;
  begin
  { Начинаем писать на ассемблере }
  { Делфи уже сделало пролог процедуры и можно }
  { обращатся к параметрам через их имена }
  asm
    push ebx
    mov  ebx,Mas { Получаем  адрес массива }
    mov  ecx,1 { Номер проверяемого байта }
    mov  al,byte ptr ByteToScan
    xor  edx,edx { Номер найденного байта - по умолчанию 0 }
@@FindByte:
    { Проверка конца массива }
    cmp  ecx,MasSize
    ja   @@FindByteDone
    { Проверяем очередной байт }
    cmp  byte ptr [ebx],al
    jnz  @@NextByte
    { Если байт найден, сохраняем его номер в edx и break }
    mov  edx,ecx
    jmp  @@FindByteDone
@@NextByte:
    { Переходим к следующему байту и увеличиваем номер текущего байта }
    inc  ebx
    inc  ecx
    jmp  @@FindByte

@@FindByteDone:
    pop  ebx
    mov  @Result,edx { Возвращаем результат }
  end;
  end;


Надо сказать, что код выше я не проверял ;) Главное - попробовать самому его использовать, может быть даже модифицировать.

Также на тему циклов. В свое время я был участником одного соревнования по написанию программки с максимально коротким размером. Задача была в следующем:

- Написать программу под DOS, com-файл с максимально коротким размером;

- Получить время от DOS следующим образом:

Цитата

INT 21 - DOS 1+ - GET SYSTEM TIME
    AH = 2Ch
Return: CH = hour
    CL = minute
    DH = second
    DL = 1/100 seconds
Note:    on most systems, the resolution of the system clock is about 5/100sec,
   so returned times generally do not increment by 1
    on some systems, DL may always return 00h


- После этого вывести текущее время на экран в формате: HH:MM:SS. Например, если время сейчас 23 часа 24 минуты 25 секунд, то на экране будет 23:24:25

Ниже мой пример. Попробуй разобрать его и понять как он работает. Там есть несколько циклов.

Код

.286
text segment byte public
    assume cs:text,ds:text    
    org 100h
begin:
      mov  ah,2Ch
      int  21h
      mov  al,ch
      mov  bl,11011011b
@DecChar:
      aam
@CharNext:
      xchg al,ah
      add  al,'0'
      int  29h
      mov  al,':'-'0'
      shl  bl,1
      jnz  @Next
      ret
@Next:
      jc   @CharNext
      mov  al,cl
      mov  cl,dh
      jmp  short @DecChar
Text Ends
    end begin


Добавлено @ 00:20 
Мда, int 29h - это вывод байта на консоль (экран):

Цитата

INT 29 C - DOS 2+ - FAST CONSOLE OUTPUT
    AL = character to display
Return: nothing
    BX may be destroyed by some versions of DOS 3.3
 


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
nerezus
Дата 5.11.2006, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: нет
Всего: 43



А ссылочку на справочни по коммандам можно? Учебники не нужны =(


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Роман
Дата 6.11.2006, 04:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 279
Регистрация: 9.7.2006

Репутация: нет
Всего: 1



Да, не помешал бы справочник по asm-командам, особенно электронный и оперативный! Чтобы можно было найти описание конкретной команды, а также быстро подобрать команду из определенной категории.


--------------------
Жизнь -  это последствия от последствий.
user posted image
PM ICQ   Вверх
Damarus
Дата 7.11.2006, 08:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 671
Регистрация: 6.5.2006

Репутация: нет
Всего: 29



Цитата(Роман @  6.11.2006,  04:21 Найти цитируемый пост)
Да, не помешал бы справочник по asm-командам, особенно электронный и оперативный! Чтобы можно было найти описание конкретной команды, а также быстро подобрать команду из определенной категории.

Intel® 64 and IA-32 Architectures Software Developer's Manuals
PM MAIL ICQ Jabber   Вверх
Snik
Дата 20.11.2006, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 16.8.2006

Репутация: нет
Всего: нет



Привет! 
Очень хорошо подан матерьял, а можно гдето в подобном стиле изложения поучиться для чистого assembler(a) , а точнее Turbo Assembler  Version 4.1  Copyright © 1988, 1996 Borland International
PM MAIL   Вверх
Роман
Дата 20.11.2006, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 279
Регистрация: 9.7.2006

Репутация: нет
Всего: 1



Intel® 64 and IA-32 Architectures Software Developer's Manuals - вещь конечно хорошая, но хочется чего-нибудь на русском языке! 


--------------------
Жизнь -  это последствия от последствий.
user posted image
PM ICQ   Вверх
Роман
Дата 21.11.2006, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 279
Регистрация: 9.7.2006

Репутация: нет
Всего: 1



Вот нашел интересную ссылку по теме: http://vas-unn.narod.ru/
Вот еще: http://212.176.41.3:777/archive/66/38978/asm-abc.zip (25КБ)

Но нужно искать дальше!

Это сообщение отредактировал(а) Роман - 21.11.2006, 16:53


--------------------
Жизнь -  это последствия от последствий.
user posted image
PM ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для начинающих | Следующая тема »


 




[ Время генерации скрипта: 0.0979 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.