![]() |
|
![]() ![]() ![]() |
|
xpamoi |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 8.6.2009 Где: Vladivostok city Репутация: нет Всего: нет |
Написать (на АСМ для Intel 80x86) подпрограмму очистки (обнуления) вещественного массива данных, расположенного в сегменте данных (Начало - в регистре SI, размер массива задан в регистре CX)
|
|||
|
||||
AndNot |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 28.2.2008 Репутация: нет Всего: нет |
Просто запиши в массив нули. И все.
|
|||
|
||||
iff |
|
|||
![]() Администратор ![]() ![]() Профиль Группа: Участник Сообщений: 949 Регистрация: 23.3.2007 Репутация: 5 Всего: 16 |
Это сообщение отредактировал(а) iff - 24.1.2010, 13:58 -------------------- DOS... Синей пеленой экран заполнил чистый DOS Мышь... Стала вдруг квадратной, потеряла форму мышь... Я разбил окно, девяностопятое мастдайное окно, И поставил DOS, и тогда увидел: Это счастье, — вот оно. |
|||
|
||||
Mikl_ |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 9.11.2007 Репутация: 6 Всего: 14 |
iff,
![]() и последний "финт ушами" mov byte ptr [si], 0 для чего? Размерность вещественного числа может быть 10 байтов (long), может быть 4 байта (double), может быть 2 байта (single) ![]() ![]() Это сообщение отредактировал(а) Mikl_ - 25.1.2010, 08:57 |
|||
|
||||
airyashov |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 284 Регистрация: 1.7.2008 Репутация: 2 Всего: 6 |
2 это врядли -------------------- icq:3(один)7748666 mail:airyashov( а )inbox.ru |
|||
|
||||
xpamoi |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 8.6.2009 Где: Vladivostok city Репутация: нет Всего: нет |
а что делает shr ?! почему и что он делит на 2 и куда девается остаток?!
![]() |
|||
|
||||
Mikl_ |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 9.11.2007 Репутация: 6 Всего: 14 |
![]() xpamoi
Это iff неудачно попытался оптимизировать -- поместил в CX количество байтов которое занимает массив вещественных слов поделил его пополам и если бы количество байтов оказалось нечетным то он бы mov byte ptr[si],0;Если да, то записываем в память ещё один нулевой байт Но во-первых там будет четное количество байтов а во-вторых команды jnc c20/mov byte ptr[si],0/c20: нужно поставить сразу после shr cx,1 чтобы последующие команды не испортили флаг CARRY остаток попадает в этот флаг твоя программа в четырех строках
Это сообщение отредактировал(а) Mikl_ - 25.1.2010, 14:25 |
||||||
|
|||||||
airyashov |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 284 Регистрация: 1.7.2008 Репутация: 2 Всего: 6 |
только не с вещественными, с целыми да -------------------- icq:3(один)7748666 mail:airyashov( а )inbox.ru |
|||
|
||||
iff |
|
||||||
![]() Администратор ![]() ![]() Профиль Группа: Участник Сообщений: 949 Регистрация: 23.3.2007 Репутация: 5 Всего: 16 |
Об этом я подумал. И додумался что не испортят: 1) mov word ptr [si], 0 - точно не испортит. 2) inc si - не испортит, если результат меньше 65535. А если результат болше 65535 то программа будет работать некорректно в любом случае (независимо от места нахождения shr) 3) loop c10 - тоже не вызовет переполнения.
Я ещё их не проходил. ![]()
Меня сбило, что там не число а их массив. (Не пишите, что всё-ровно чётное кол-во, я уже понял) -------------------- DOS... Синей пеленой экран заполнил чистый DOS Мышь... Стала вдруг квадратной, потеряла форму мышь... Я разбил окно, девяностопятое мастдайное окно, И поставил DOS, и тогда увидел: Это счастье, — вот оно. |
||||||
|
|||||||
Mikl_ |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 9.11.2007 Репутация: 6 Всего: 14 |
iff,
команды inc и dec не влияют на флаг переноса ![]() airyashov
Intel 8087, 80187, 80287, 80387 работают именно с вещественными, не путайте с 8086, 8088, 80186, 80286, 80386 ![]() Это сообщение отредактировал(а) Mikl_ - 26.1.2010, 03:57 |
||||
|
|||||
airyashov |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 284 Регистрация: 1.7.2008 Репутация: 2 Всего: 6 |
Mikl_ если не затруднит какой формат у вещественного 2-х байтового?
-------------------- icq:3(один)7748666 mail:airyashov( а )inbox.ru |
|||
|
||||
Mikl_ |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 9.11.2007 Репутация: 6 Всего: 14 |
airyashov,
Half-float Короткий 16-и битный формат, построенный по аналогии с IEEE 754. Знак – 1 бит, показатель степени – 5 бит (смещение 15), мантисса – 10 бит + 1 скрытый. Всего 16 бит. Используется в OpenGL и графических процессорах (в частности – для представления яркости пикселя). Немного более подробно можно почитать по ссылкам: http://home.earthlink.net/~mrob/pub/math/floatformats.htm (тут этот формат называется Minifloat) http://oss.sgi.com/projects/ogl-sample/reg...float_pixel.txt Но на самом деле я ступил ![]() ![]() Одинарная точность (single precision) real4 или dd Знак – 1 бит, показатель степени – 8 бит (смещение 127), мантисса – 23 бита + 1 скрытый. Всего 32 бита Двойная точность (double precision) real8 или dq Знак – 1 бит, показатель степени – 11 бит (смещение 1023), мантисса – 52 бита + 1 скрытый. Всего 64 бита Расширенная точность (extended precision) real10 или dt Знак – 1 бит, показатель степени – 15 бит, мантисса – 64 бита, скрытого бита нет. Всего 80 бит Соответственно для заполнения нулями массива вещественных чисел
Это сообщение отредактировал(а) Mikl_ - 27.1.2010, 04:12 |
||||
|
|||||
airyashov |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 284 Регистрация: 1.7.2008 Репутация: 2 Всего: 6 |
за ссылочку спасибо, однако... интересно -------------------- icq:3(один)7748666 mail:airyashov( а )inbox.ru |
|||
|
||||
xpamoi |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 8.6.2009 Где: Vladivostok city Репутация: нет Всего: нет |
Спасибо Mikl_, твой вариант кода очень помог=)) да и airyashov, и iff, тоже большое спасибо многое разъяснили=))
|
|||
|
||||
arcsupport |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 24.10.2008 Репутация: нет Всего: 2 |
Господа, Вы не забыли установить регистр флага?
Это сообщение отредактировал(а) arcsupport - 27.1.2010, 14:13 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Asm: Общие вопросы" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |