OSDev

для всех
Текущее время: 28 апр 2024, 12:20

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 12 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Самое главное в жизни!
СообщениеДобавлено: 12 июл 2011, 10:19 
Аватара пользователя

Зарегистрирован: 20 апр 2011, 10:54
Сообщения: 145
Перечислите, пожалуйста 8 самых необходимых арифметических операций (без которых вы жить не можете) + 2, без которых жизнь для вас станет подобна Brainfuckу.
Я думаю, так:
  1. ADD
  2. SUB
  3. SHL
  4. SHR
  5. NOR
  6. AND
  7. XOR
  8. NOT,
а дальше не могу решить, MUL/DIV или INC/DEC. С одной стороны, MUL/DIV можно и вручную...

_________________
Found a CPU. LAPIC ID: 00


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Самое главное в жизни!
СообщениеДобавлено: 20 июл 2011, 23:45 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
Вообще-то можно жить всего-навсего с одной инструкцией, – SUBLEQ.
А если без брейнфака, то одной арифметикой не обойтись. Самая распространённая и часто исполняемая инструкция – MOV.

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Самое главное в жизни!
СообщениеДобавлено: 21 июл 2011, 11:31 
Аватара пользователя

Зарегистрирован: 20 апр 2011, 10:54
Сообщения: 145
С mov, jmp, hlt, lgtd, rmsw, pushad, into, cli, rep, lodsb, enter, leave понятно. Я спрашиваю именно об арифметике. Ljgecnbv, разрабатывается новая архитектура. У нее должно быть 64 инструкции. Причем, есть 4 варианта для каждой арифметической инструкции: byte, word, dword, bword. И как миниум 24 инструкци - mov, jmp, hlt, cli

_________________
Found a CPU. LAPIC ID: 00


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Самое главное в жизни!
СообщениеДобавлено: 21 июл 2011, 17:08 

Зарегистрирован: 18 апр 2010, 15:59
Сообщения: 155
могу предложить попробовать подойти к вопросу со стороны статистики: вскройте пару тройку крупных программ и подсчитайте частотность различных инструкций. В итого вы сможете примерно определить наиболее часто используемые инструкции. Можно предположить, что наиболее часто используемые инструкции являются наиболее нужными.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Самое главное в жизни!
СообщениеДобавлено: 21 июл 2011, 17:17 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
Тогда MUL/DIV. Ибо программно они реализуются очень медленно, при любой возможности их надо аппаратизировать. INC и DEC не обязательно, это лишь короткая запись от ADD 1 и SUB 1.
Если разрабатывается архитектура для сигнального процессора, настоятельно рекомендуется задуматься о 32-битных чисел в формате с плавающей точкой и инструкции Fused Multiply and Add.
И почему NOR, а не OR? Это ведь не базовый логический элемент, в жизни OR встречается чаще, чем NOR.
И что такое BWORD? 64 бита принято называть QWORD.

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Последний раз редактировалось Yoda 21 июл 2011, 17:23, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Самое главное в жизни!
СообщениеДобавлено: 21 июл 2011, 17:22 

Зарегистрирован: 18 апр 2010, 15:59
Сообщения: 155
Примерная статистика по 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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Самое главное в жизни!
СообщениеДобавлено: 21 июл 2011, 17:26 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
Классная статистика!
Я кстати, почти уверен, что XOR забрался так высоко из-за использования для очистки регистра.

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Самое главное в жизни!
СообщениеДобавлено: 21 июл 2011, 19:09 
Аватара пользователя

Зарегистрирован: 20 апр 2011, 10:54
Сообщения: 145
За статистику - спасибо.

С XOR все понятно. А вот почему так далеко ушел CALL? Из-за того, что писано в C?

_________________
Found a CPU. LAPIC ID: 00


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Самое главное в жизни!
СообщениеДобавлено: 21 июл 2011, 20:39 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
Yoda писал(а):
И что такое BWORD? 64 бита принято называть QWORD.


Не знаю, что под Б имел в виду автор сего обозначения, но вот насчёт "принято называть" Вы погорячились. Принято для платформы ИА-32, но на других платформах сие может быть совсем другим. Например, у ИБМовских мэйнфреймов и у АРМов слово -- это 32 бита, а 64, соответственно, двойное слово (а 16 бит -- полуслово).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Самое главное в жизни!
СообщениеДобавлено: 21 июл 2011, 21:03 

Зарегистрирован: 18 апр 2010, 15:59
Сообщения: 155
Вы только эту статистику за абсолют не принимайте. :) Это только одна программа.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 27


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB