Поиск:

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


Новичок



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

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



Я вот только начал вникать в ассемблер. Читаю калашникова, возник вопрос,  
mov es: [di],ax
Не пойму что за [], толи они напрямую пишут по адресу, что тоневъеду никак.
PM MAIL   Вверх
Shaggie
Дата 15.2.2007, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 570
Регистрация: 21.12.2006
Где: outer space

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



mr666, все правильно. Значение, содержащееся в регистре ax, пишется не в сам регистр di, а по адресу, содержащемуся в нем.

Если в ax лежит 005E, а в di лежит 27B3, то значение регистра di не изменится, а значение ячейки памяти по адресу es:27B3 станет равным 005Е

Это сообщение отредактировал(а) Shaggie - 15.2.2007, 16:19


--------------------
Цитата(alina3000 @  6.3.2014,  10:47 Найти цитируемый пост)
Сорри что не по теме 
PM MAIL ICQ GTalk Jabber   Вверх
mr666
Дата 15.2.2007, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Shaggie,
там вроде es (сигментный регистр) а что значит [di] di это вроде указатель. Запутался я. 
PM MAIL   Вверх
Shaggie
Дата 15.2.2007, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 570
Регистрация: 21.12.2006
Где: outer space

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



mr666, ой, прошу простить, это я виноват - запутал. Щас поправлю.

Регистр di используется в основном как указатель на ту область памяти, в которую мы будем писать информацию.

Когда регистр берется в квадратные скобки [], то этим мы указываем процессору писать (или читать) информацию не в сам регистр, а по адресу памяти, которое содержится в этом регистре.

Код

mov di,2cdeh
; загружаем в регистр di адрес, куда писать информацию
; в регистре di содержится число 2cde
; в сегменте памяти по адресу es:2cde находится... неважно

mov [di],5
; загружаем в ячейку памяти, на которую указывает di, число 5
; в регистре di содержится число 2cde
; в сегменте памяти по адресу es:2cde находится число 05


Это сообщение отредактировал(а) Shaggie - 15.2.2007, 16:26


--------------------
Цитата(alina3000 @  6.3.2014,  10:47 Найти цитируемый пост)
Сорри что не по теме 
PM MAIL ICQ GTalk Jabber   Вверх
MAKCim
Дата 15.2.2007, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


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

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



Цитата(mr666 @  15.2.2007,  15:26 Найти цитируемый пост)
mov es: [di],ax
Не пойму что за [], толи они напрямую пишут по адресу, что тоневъеду никак. 

в реальном режиме эквивалентно
записи слова из регистра AX по абсолютному адресу 'слово в ES << 4 + слово в DI'


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Metixa
Дата 10.3.2007, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Добрый день!!! Я не давно начал асм. помогите понять  почему в случии:
Код

.data?
bigArray dword 1000 dup(?)


нет
а так:
Код

.data
bigArray dword 1000 dup(?)


получаем большой исполняемый модуль?

PM MAIL   Вверх
W4FhLF
Дата 10.3.2007, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


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

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



Metixa, потому что в первом случае инициализация массива идёт в секции неициниализированных данных, т.е. этих данных не будет в исполняемом exe, они будут выделены загрузчиком в момент запуска программы. А вот во втором случае ты говоришь компилятору записать в исполняемый exe массив состоящий из 1000 байт. 


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
Metixa
Дата 14.3.2007, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Прошу обьясните:
1. почему установливается флаг CF когда происходит напр. 1-2, когда все решаетсья в диапазоне до 255, и приомник регистр al?
2. мой масм по моему не видит разницу между sbyte и byte,  sword и word, и т.д. почему..? 
благодарью...!!! 

PM MAIL   Вверх
Metixa
Дата 16.3.2007, 02:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



--------------------------------------------------------------------------------

вот как я думаю:

когда происходит 1-2 машина работает так:
0000 0001

0000 0010

т.е. 0000 0010 инвертируется и прибавляется 1, значит

0000 0001
+
1111 1110
---------------
1111 1111 а где нам понпдобилься добовочная 1? только когда прибавляли 1 инвертированного 1111 1101 в младшем регистре, ????
Но сейчас я лучше запутался:
постарался представить что происходит бинарно кагда 3-1 (когда CF=0) но у меня почему то понадобился вирт. 1.. вот так:

0000 0011 -- 3 

0000 0001 --1 
=

0000 0011 --3
+
1111 1111 "-1"
-----------------------
1 0000 0010 --2
поможете?
а что касается типу sbyte, в книжке прочитал, что когда обьявляем со знаком т.е. sbyte (signbyte) тогда диапазон -128 - +127 , но если запишу:

.data
x1 sbyte 130
.code
mov al, x1

почему не выдается ошибка???? al же 8 регистровый что тратится на 256 число с -128 до +127, жду ответа и очень благодарью!!!!!!!!!!

Это сообщение отредактировал(а) Metixa - 16.3.2007, 02:14
PM MAIL   Вверх
MAKCim
Дата 16.3.2007, 09:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


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

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



Цитата(Metixa @  16.3.2007,  02:12 Найти цитируемый пост)
почему не выдается ошибка???? al же 8 регистровый что тратится на 256 число с -128 до +127, жду ответа и очень благодарью!!!!!!!!!!

у процессора нет никаких типов данных
sbyte, имхо, просто надстройка для проверки транслятором диапозонов
почему не работает - хз   smile 
насчет перевода
-x = neg(x) + 1
например -1 = neg(00000001) + 1 = 11111110 + 1 = 11111111
3 + (-1) = 
00000011
+
11111111
=
00000010


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Metixa
Дата 16.3.2007, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(MAKCim @ 16.3.2007,  09:20)
Цитата(Metixa @  16.3.2007,  02:12 Найти цитируемый пост)
почему не выдается ошибка???? al же 8 регистровый что тратится на 256 число с -128 до +127, жду ответа и очень благодарью!!!!!!!!!!

у процессора нет никаких типов данных
sbyte, имхо, просто надстройка для проверки транслятором диапозонов
почему не работает - хз   smile 
насчет перевода
-x = neg(x) + 1
например -1 = neg(00000001) + 1 = 11111110 + 1 = 11111111
3 + (-1) = 
00000011
+
11111111
=
00000010

00000011
+
11111111
=
00000010

а где старшая 1?

мне интересно старшая 1, которая не видно у вас, почему не установит CF=1?
PM MAIL   Вверх
AET
Дата 21.6.2007, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Shaggie
Shaggie, народ помпгите кто может объеснит пошагово эту программу

Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  program.rar 8,58 Kb
PM MAIL   Вверх
try_to_get
  Дата 13.7.2007, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ассемблер с нуля!


--------------------
Алгоритм не роскошь, а средство достижения цели!
user posted image
PM MAIL   Вверх
ne0n
Дата 18.8.2007, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PlayBoy
**


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

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



Цитата(AET @  21.6.2007,  13:22 Найти цитируемый пост)
Shaggie, народ помпгите кто может объеснит пошагово эту программу 


Фигасе smile  так этож не программа а IDAвсий листинг!!! врятли кто возьмется в нем капаться...
PM MAIL ICQ   Вверх
StrikerX
Дата 5.9.2007, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Я асм немного знаю, по изучению в универе, но это как на уровне обезьяны с гранатой=)
Поэтому хочелось бы узнать кое-что по этим пунктам:

1. Какую бумажную литературу почитать по асму(с самого начала для полного ознакомления)?

2. Какие есть специализирующиеся сайты по этому языку?

3. Каким компилятором пользоваться? (тасм консольный однако не оченьsmile).

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

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

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


 




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


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

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