OSDev http://osdev.su/ |
|
Самое главное в жизни! http://osdev.su/viewtopic.php?f=18&t=431 |
Страница 1 из 2 |
Автор: | 418ImATeapot [ 12 июл 2011, 10:19 ] |
Заголовок сообщения: | Самое главное в жизни! |
Перечислите, пожалуйста 8 самых необходимых арифметических операций (без которых вы жить не можете) + 2, без которых жизнь для вас станет подобна Brainfuckу. Я думаю, так:
|
Автор: | Yoda [ 20 июл 2011, 23:45 ] |
Заголовок сообщения: | Re: Самое главное в жизни! |
Вообще-то можно жить всего-навсего с одной инструкцией, – SUBLEQ. А если без брейнфака, то одной арифметикой не обойтись. Самая распространённая и часто исполняемая инструкция – MOV. |
Автор: | 418ImATeapot [ 21 июл 2011, 11:31 ] |
Заголовок сообщения: | Re: Самое главное в жизни! |
С mov, jmp, hlt, lgtd, rmsw, pushad, into, cli, rep, lodsb, enter, leave понятно. Я спрашиваю именно об арифметике. Ljgecnbv, разрабатывается новая архитектура. У нее должно быть 64 инструкции. Причем, есть 4 варианта для каждой арифметической инструкции: byte, word, dword, bword. И как миниум 24 инструкци - mov, jmp, hlt, cli |
Автор: | ZarathustrA [ 21 июл 2011, 17:08 ] |
Заголовок сообщения: | Re: Самое главное в жизни! |
могу предложить попробовать подойти к вопросу со стороны статистики: вскройте пару тройку крупных программ и подсчитайте частотность различных инструкций. В итого вы сможете примерно определить наиболее часто используемые инструкции. Можно предположить, что наиболее часто используемые инструкции являются наиболее нужными. |
Автор: | Yoda [ 21 июл 2011, 17:17 ] |
Заголовок сообщения: | Re: Самое главное в жизни! |
Тогда MUL/DIV. Ибо программно они реализуются очень медленно, при любой возможности их надо аппаратизировать. INC и DEC не обязательно, это лишь короткая запись от ADD 1 и SUB 1. Если разрабатывается архитектура для сигнального процессора, настоятельно рекомендуется задуматься о 32-битных чисел в формате с плавающей точкой и инструкции Fused Multiply and Add. И почему NOR, а не OR? Это ведь не базовый логический элемент, в жизни OR встречается чаще, чем NOR. И что такое BWORD? 64 бита принято называть QWORD. |
Автор: | ZarathustrA [ 21 июл 2011, 17:22 ] |
Заголовок сообщения: | Re: Самое главное в жизни! |
Примерная статистика по ntkrnlpa.exe из Windows 7 mov 20972 push 9750 cmp 4705 call 4120 jz 3675 test 2980 pop 2910 jnz 2779 lea 2518 jmp 2438 xor 2222 and 2076 add 1772 ! inc 1350 ! retn 1070 sub 894 ! movzx 886 imp 774 lock 694 dec 656 ! jb 543 shr 503 ! jnb 390 jbe 389 ja 307 shl 295 ! jl 265 xadd 240 ! cmpxchg 135 movsd 132 bts 128 jge 124 sbb 89 stosd 87 |
Автор: | Yoda [ 21 июл 2011, 17:26 ] |
Заголовок сообщения: | Re: Самое главное в жизни! |
Классная статистика! Я кстати, почти уверен, что XOR забрался так высоко из-за использования для очистки регистра. |
Автор: | 418ImATeapot [ 21 июл 2011, 19:09 ] |
Заголовок сообщения: | Re: Самое главное в жизни! |
За статистику - спасибо. С XOR все понятно. А вот почему так далеко ушел CALL? Из-за того, что писано в C? |
Автор: | SII [ 21 июл 2011, 20:39 ] |
Заголовок сообщения: | Re: Самое главное в жизни! |
Yoda писал(а): И что такое BWORD? 64 бита принято называть QWORD. Не знаю, что под Б имел в виду автор сего обозначения, но вот насчёт "принято называть" Вы погорячились. Принято для платформы ИА-32, но на других платформах сие может быть совсем другим. Например, у ИБМовских мэйнфреймов и у АРМов слово -- это 32 бита, а 64, соответственно, двойное слово (а 16 бит -- полуслово). |
Автор: | ZarathustrA [ 21 июл 2011, 21:03 ] |
Заголовок сообщения: | Re: Самое главное в жизни! |
Вы только эту статистику за абсолют не принимайте. :) Это только одна программа. |
Страница 1 из 2 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |