Эх.. a я честно ждал, когда Inspektor догадается o сути примера
mov si,offset hex_data
mov di,offset hex_string
mov ah,[si]
shr ax,4
shr al,4
cmp al,10
sbb al,69h
das
mov [di],al
inc di
shr ax,4
shr al,4
cmp al,10
sbb al,69h
das
mov [di],al
inc di
inc si
....
....
Оптимизация
Оптимизация
Последний раз редактировалось master 30 ноя 2019, 13:41, всего редактировалось 1 раз.
Причина: test
Причина: test
Оптимизация
Значит если и флаг A установлен и флаг C, то das вычитает 66h.. Я почему-то решил что вычитается только 6. Да и o влиянии флага C на команду sbb забыл... Короче ахтунг! Я увольняюсь .
З.Ы. A этот способ перевода нам не так долго юзать осталось, не за горами то время, когда microsoft "силком" заставит полностью передти на уникод(и по сути правильно сделает).
З.Ы. A этот способ перевода нам не так долго юзать осталось, не за горами то время, когда microsoft "силком" заставит полностью передти на уникод(и по сути правильно сделает).
Последний раз редактировалось qwertylol 30 ноя 2019, 13:41, всего редактировалось 1 раз.
Причина: test
Причина: test
Оптимизация
a_l_e_x86 писал(а):Source of the post
das
1. если младшая тетрада al больше 9 или флаг вспомогательного переноса установлен вычитаем из al 6
2. Если после этого флаг переноса установлен, или младшая тетрада больше 9, вычитаем еще 60h
Говоря более простым языком, это коррекция после операций вычитания в двоичнодесятичном коде... но этот "уникальный пример" мне кажется уникальным тем, что взгляд на традиционную суть команд мало помагает
Последний раз редактировалось master 30 ноя 2019, 13:41, всего редактировалось 1 раз.
Причина: test
Причина: test
Оптимизация
Операции для работы c BCD форматом часто ипользуют для других целей. Например команды AAD и AAM (коррекия после умножения и перед делением) позволяют (при некоторых ухищрениях делать "быстрое" умножение или деление на любое число
Последний раз редактировалось a_l_e_x86 30 ноя 2019, 13:41, всего редактировалось 1 раз.
Причина: test
Причина: test
Оптимизация
a_l_e_x86 писал(а):Source of the post
Операции для работы c BCD форматом часто ипользуют для других целей. Например команды AAD и AAM (коррекия после умножения и перед делением) позволяют (при некоторых ухищрениях делать "быстрое" умножение или деление на любое число
A быстрее работало для 8086?
Я обычно дивом пользовался...
Предлогаеш подумать над этим ухищрением? )))
Последний раз редактировалось master 30 ноя 2019, 13:41, всего редактировалось 1 раз.
Причина: test
Причина: test
Оптимизация
Хотя тасм последний раз запускал в году так 2001, асм ещё не совсем забыл...
Для публики суть приведённых a_l_e_x'ом комманд объясню более просто
aad
Традиционно применяется в двоичнодесятичных вычислениях и предпологает, что знаковые разряды не более 10. Два непакованых BCD числа в регистрах ah и al конвертирует в нрмальное двоичное и результат помещает в al. Или можно сказать ax, регистр ah обнуляется
aam
аналогично aad, используется в двоично десятичнгом вычислении. Противоположность aad - двоичное число из регистра al записывает как двоичнодесятичное в регистры ah и al. Разумеется значение al предпологается не более 100
Для публики суть приведённых a_l_e_x'ом комманд объясню более просто
aad
Традиционно применяется в двоичнодесятичных вычислениях и предпологает, что знаковые разряды не более 10. Два непакованых BCD числа в регистрах ah и al конвертирует в нрмальное двоичное и результат помещает в al. Или можно сказать ax, регистр ah обнуляется
aam
аналогично aad, используется в двоично десятичнгом вычислении. Противоположность aad - двоичное число из регистра al записывает как двоичнодесятичное в регистры ah и al. Разумеется значение al предпологается не более 100
Последний раз редактировалось master 30 ноя 2019, 13:41, всего редактировалось 1 раз.
Причина: test
Причина: test
Оптимизация
вот просто классный справочник по командам ассемблера.
Жаль, что у нас в ВУЗ'e асма не ожидается .
Жаль, что у нас в ВУЗ'e асма не ожидается .
Последний раз редактировалось qwertylol 30 ноя 2019, 13:41, всего редактировалось 1 раз.
Причина: test
Причина: test
Оптимизация
qwertylol писал(а):Source of the post
вот просто классный справочник по командам ассемблера.
Жаль, что у нас в ВУЗ'e асма не ожидается .
A зачем тебе ВУЗ? Зайди в яндекс. напиши "Скачать tasm", и вперёд! Я вот, пока был свободен в выборе, программирование небыло работой, кодил на асме, си даже не очень признавал ))) a сейчас вот приходится на языках высокого уровня писать... a по асму испытываю ностальгию
Последний раз редактировалось master 30 ноя 2019, 13:41, всего редактировалось 1 раз.
Причина: test
Причина: test
Оптимизация
Мне кажется, что Си не сильно уступает асму+ есть возможность вставлять код на нём после директивы _asm. Ho то, что асм надо знать это 100%.
Чтоб высшее образование получить . Просто не люблю паскаль, во всех его проявлениях.
З.Ы. Яндекс я использую только чтобы проверять работает ли интернет гугл рулит :yes: .
A зачем тебе ВУЗ?
Чтоб высшее образование получить . Просто не люблю паскаль, во всех его проявлениях.
З.Ы. Яндекс я использую только чтобы проверять работает ли интернет гугл рулит :yes: .
Последний раз редактировалось qwertylol 30 ноя 2019, 13:41, всего редактировалось 1 раз.
Причина: test
Причина: test
Оптимизация
qwertylol писал(а):Source of the postA зачем тебе ВУЗ?
Чтоб высшее образование получить . Просто не люблю паскаль, во всех его проявлениях.
З.Ы. Яндекс я использую только чтобы проверять работает ли интернет гугл рулит :yes: .
Я имел в виду "зачем тебе ВУЗ, для того чтобы асм учить"
Последний раз редактировалось master 30 ноя 2019, 13:41, всего редактировалось 1 раз.
Причина: test
Причина: test
Вернуться в «Computer Science»
Кто сейчас на форуме
Количество пользователей, которые сейчас просматривают этот форум: нет зарегистрированных пользователей и 11 гостей