|
Страницы: (17) Все « Первая ... 12 13 [14] 15 16 ... Последняя »
( Перейти к первому непрочитанному сообщению ) |
|
mr666 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 28.3.2006 Репутация: нет Всего: нет |
Я вот только начал вникать в ассемблер. Читаю калашникова, возник вопрос,
mov es: [di],ax Не пойму что за [], толи они напрямую пишут по адресу, что тоневъеду никак. |
|||
|
||||
Shaggie |
|
|||
Опытный Профиль Группа: Завсегдатай Сообщений: 570 Регистрация: 21.12.2006 Где: outer space Репутация: нет Всего: 72 |
mr666, все правильно. Значение, содержащееся в регистре ax, пишется не в сам регистр di, а по адресу, содержащемуся в нем.
Если в ax лежит 005E, а в di лежит 27B3, то значение регистра di не изменится, а значение ячейки памяти по адресу es:27B3 станет равным 005Е Это сообщение отредактировал(а) Shaggie - 15.2.2007, 16:19 |
|||
|
||||
mr666 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 28.3.2006 Репутация: нет Всего: нет |
Shaggie,
там вроде es (сигментный регистр) а что значит [di] di это вроде указатель. Запутался я. |
|||
|
||||
Shaggie |
|
|||
Опытный Профиль Группа: Завсегдатай Сообщений: 570 Регистрация: 21.12.2006 Где: outer space Репутация: нет Всего: 72 |
mr666, ой, прошу простить, это я виноват - запутал. Щас поправлю.
Регистр di используется в основном как указатель на ту область памяти, в которую мы будем писать информацию. Когда регистр берется в квадратные скобки [], то этим мы указываем процессору писать (или читать) информацию не в сам регистр, а по адресу памяти, которое содержится в этом регистре.
Это сообщение отредактировал(а) Shaggie - 15.2.2007, 16:26 |
|||
|
||||
MAKCim |
|
|||
Воін дZэна Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 1 Всего: 207 |
в реальном режиме эквивалентно записи слова из регистра AX по абсолютному адресу 'слово в ES << 4 + слово в DI' -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Metixa |
|
||||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 29.10.2006 Репутация: нет Всего: нет |
Добрый день!!! Я не давно начал асм. помогите понять почему в случии:
нет а так:
получаем большой исполняемый модуль? |
||||
|
|||||
W4FhLF |
|
|||
found myself Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 1 Всего: 121 |
Metixa, потому что в первом случае инициализация массива идёт в секции неициниализированных данных, т.е. этих данных не будет в исполняемом exe, они будут выделены загрузчиком в момент запуска программы. А вот во втором случае ты говоришь компилятору записать в исполняемый exe массив состоящий из 1000 байт.
-------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
Metixa |
|
|||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 29.10.2006 Репутация: нет Всего: нет |
Прошу обьясните:
1. почему установливается флаг CF когда происходит напр. 1-2, когда все решаетсья в диапазоне до 255, и приомник регистр al? 2. мой масм по моему не видит разницу между sbyte и byte, sword и word, и т.д. почему..? благодарью...!!! |
|||
|
||||
Metixa |
|
|||
Новичок Профиль Группа: Участник Сообщений: 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 |
|||
|
||||
MAKCim |
|
|||
Воін дZэна Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 1 Всего: 207 |
у процессора нет никаких типов данных sbyte, имхо, просто надстройка для проверки транслятором диапозонов почему не работает - хз насчет перевода -x = neg(x) + 1 например -1 = neg(00000001) + 1 = 11111110 + 1 = 11111111 3 + (-1) = 00000011 + 11111111 = 00000010 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Metixa |
|
|||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 29.10.2006 Репутация: нет Всего: нет |
00000011 + 11111111 = 00000010 а где старшая 1? мне интересно старшая 1, которая не видно у вас, почему не установит CF=1? |
|||
|
||||
AET |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 171 Регистрация: 13.3.2007 Репутация: нет Всего: нет |
Shaggie,
Shaggie, народ помпгите кто может объеснит пошагово эту программу Присоединённый файл ( Кол-во скачиваний: 6 ) program.rar 8,58 Kb |
|||
|
||||
try_to_get |
|
|||
Опытный Профиль Группа: Участник Сообщений: 426 Регистрация: 19.3.2007 Где: Россия Репутация: нет Всего: 2 |
Ассемблер с нуля!
|
|||
|
||||
ne0n |
|
|||
PlayBoy Профиль Группа: Участник Сообщений: 733 Регистрация: 5.8.2005 Где: Н.Новгород Репутация: нет Всего: 11 |
Фигасе так этож не программа а IDAвсий листинг!!! врятли кто возьмется в нем капаться... |
|||
|
||||
StrikerX |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 17.5.2007 Репутация: нет Всего: нет |
Я асм немного знаю, по изучению в универе, но это как на уровне обезьяны с гранатой=)
Поэтому хочелось бы узнать кое-что по этим пунктам: 1. Какую бумажную литературу почитать по асму(с самого начала для полного ознакомления)? 2. Какие есть специализирующиеся сайты по этому языку? 3. Каким компилятором пользоваться? (тасм консольный однако не очень). |
|||
|
||||
Правила форума "Asm для начинающих" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm для начинающих | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |