Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Машинный язык программирования, что, как и где? 
:(
    Опции темы
gepard
Дата 18.8.2004, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2477
Регистрация: 29.2.2004

Репутация: 1
Всего: 40



Из темы "Смеёмся вместе" страница - 3, цитата поста Baa:
Цитата

Как оказалось, у нас пол института (научн. исслед.) знают ассемблер независимо от пола... и еще часть просто в машинных кодах пишут :\

Мне всегда было интересно: представляется ли возможным писать на машинных кодах?
Хотел спросить у вас: "Где я могу почитать инфу на эту тему? Попробовать самому писать. Может быть знаете ссылки на уроки. Или принципы какие-то?"


--------------------
Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным!
© Я, Берсерк, что значит - Неистовый. 
PM MAIL WWW ICQ   Вверх
Sardar
Дата 18.8.2004, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 2
Всего: 317



Ассемблер это инструкции процессора описанные мнемониками. К одной мнемонике может быть много различных опкодов(машинные команды) в зависимости от используемых регистров + данные рядом и т.д. Наверное писать в машинных кодах подразумвалось в hex редакторе набирать опкоды вручную smile.gif
Цитата(gepard @ 18.8.2004, 12:06)
"Где я могу почитать инфу на эту тему? Попробовать самому писать. Может быть знаете ссылки на уроки. Или принципы какие-то?"

Нет никаких принципов и т.п. ибо это полный изврат biggrin.gif Пиши на асме.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Akina
Дата 18.8.2004, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: нет
Всего: 454



gepard
Одно из двух - либо речь не о РС-совместимых машинах, либо чел не понимает чего написАл...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
gepard
Дата 18.8.2004, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2477
Регистрация: 29.2.2004

Репутация: 1
Всего: 40



Это Baa-то не понимает?


--------------------
Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным!
© Я, Берсерк, что значит - Неистовый. 
PM MAIL WWW ICQ   Вверх
GoodBoy
Дата 18.8.2004, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Главный джедай
****


Профиль
Группа: Модератор
Сообщений: 3886
Регистрация: 8.1.2003
Где: КМВ

Репутация: нет
Всего: 83



gepard
Как человек, писавший на машинных кодах могу тебе сказать - ПОЛНАЯ ЖОПА это!!!!! На асме - гемор писать, а в машкодах тем более!!!!!


--------------------
Чем дальше в лес, тем толще партизаны...

Цитата(igorold @  1.5.2016,  17:40 Найти цитируемый пост)
Индейцы не обратили внимания на поток беженцев из Европы… Теперь они живут в резервациях. 
PM MAIL   Вверх
oleg1973
Дата 18.8.2004, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: 1
Всего: 34



GoodBoy
как чел пишущий на асме могу сказать- никакой там жопы нету и небыло
а вот в машкодах жопа smile.gif
помнится был у меня компутер Радио86рк, так в журналах типа Радио публиковали програмки в виде дампа , нечто типа
00FA ED01 AC98

и так далее smile.gif
вот это была жопа набиваить их smile.gif в дебуге smile.gif
я представляю себе варез в таком виде smile.gif))))

//windows LongHorn final reliz:
MZ0E45AD 46829300 00FEEFAA
и так далее листов на 100000 smile.gif)))


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
gepard
Дата 19.8.2004, 06:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2477
Регистрация: 29.2.2004

Репутация: 1
Всего: 40



Меня, как программиста интересует этот способ написания программ.
GoodBoy
Может быть дашь пару уроков? Или линки?



--------------------
Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным!
© Я, Берсерк, что значит - Неистовый. 
PM MAIL WWW ICQ   Вверх
lynx_916
Дата 19.8.2004, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 13.6.2004
Где: Молдова

Репутация: нет
Всего: 1



gepard
у моего друга есть МОДЕЛИСТ КОНСТРУКТОР.
вот там я как-то видел.
прийду к нему, возьму, отсканирую, запостю. smile.gif


--------------------
Who dares, wins. (с) Solid Snake
PM MAIL ICQ YIM MSN   Вверх
oleg1973
Дата 19.8.2004, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: 1
Всего: 34



gepard
смысла нет писать в машкодах
смотри предположим код d90a заносит а регистр ax число 10
тоже самое будет mov ax,0a на асме после компиляции получим d90a
так что пиши на асме и не мучайся smile.gif


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
gepard
Дата 19.8.2004, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2477
Регистрация: 29.2.2004

Репутация: 1
Всего: 40



oleg1973
Я учить асм ещё не ьрался.
И ещё раз повторяю:
Цитата
Меня, как программиста интересует этот способ написания программ.

Я не собираюсь кодить на этом языке всерьёз. МНЕ ПРОСТО ИНТЕРЕСНО!


--------------------
Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным!
© Я, Берсерк, что значит - Неистовый. 
PM MAIL WWW ICQ   Вверх
oleg1973
Дата 19.8.2004, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: 1
Всего: 34



gepard
ну так в чем проблема?
идеш на интел.ком
качаеш оттуда opcodes list и вперед
там будет каждый опкод сопоставлен некой асм мнемонике


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
Sardar
Дата 19.8.2004, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 2
Всего: 317



gepard а оказывается ты знаешь толк в извращениях smile.gif


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
gepard
Дата 20.8.2004, 07:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2477
Регистрация: 29.2.2004

Репутация: 1
Всего: 40



oleg1973
Вот человеку обложку для диска доделаю и пойду поинтересуюсь у интелов на эту тему smile.gif

Цитата
gepard а оказывается ты знаешь толк в извращениях

smile.gif

Это сообщение отредактировал(а) gepard - 20.8.2004, 07:29


--------------------
Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным!
© Я, Берсерк, что значит - Неистовый. 
PM MAIL WWW ICQ   Вверх
Zandr
Дата 20.8.2004, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 433
Регистрация: 16.7.2004
Где: Новосибирск

Репутация: нет
Всего: 13



Писал когда-то для ZX Spectrum на asm'е (перед этим пробовал вбивать hex, но это было только в самом начале, когда о трансляторах с асма в код даже не подозревал.. smile.gif )...
Особенно весело относительные переходы в hex считать, путать старшие-младшие байты при забивании hex'a (кода). gepard, если хочешь попробовать, то как раз в машинный код лезть и не нада. Чтобы вбивать код, нужно знать асм (а еще иметь под рукой таблицу соответствия команд асма hex кодам, конвертер dec<->hex, еще че-нить), потому что асмовские команды однозначно отображаются в hex команды (и наоборот). Это одно и то же. Только код предназначен для процессора, а асмовские команды для человека. Блин, не знаю какие аналогии привести..

Off. Пытался без дизасма в досовской игрухе "вечную жизнь" сделать. Смотрел в hex редакторе код и заменял по очереди call xxx на nop'ы и пытался смотреть что переставало работать... Только, слезши со спектрума, не знал я бедный, что на x86 nop = 0x90 (если правильно помню) а не 0x00, как на Z80... smile.gif smile.gif smile.gif
PM MAIL   Вверх
GoodBoy
Дата 20.8.2004, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Главный джедай
****


Профиль
Группа: Модератор
Сообщений: 3886
Регистрация: 8.1.2003
Где: КМВ

Репутация: нет
Всего: 83



gepard
Цитата(gepard @ 19.8.2004, 07:08)
Может быть дашь пару уроков? Или линки?


К сожалению линков на такое у меня нет, а пару уроков дать не смогу по причине того, что писали мы под "Поиски" (теоритически это IBM-совместимый компьютер biggrin.gif ) все это, да и прошло с тех пор уже лет 5...

:-))))))))))))))))

А лет 10 назад пробовал как-то что-то писать в таких кодах для БК0010-01... Там было еще прикольнее, потому, что нужно было писать не в HEX а в OCT системе счисления...

:-))))))))))))))))))))))))))


--------------------
Чем дальше в лес, тем толще партизаны...

Цитата(igorold @  1.5.2016,  17:40 Найти цитируемый пост)
Индейцы не обратили внимания на поток беженцев из Европы… Теперь они живут в резервациях. 
PM MAIL   Вверх
CD20
Дата 19.8.2005, 07:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 18.8.2005

Репутация: нет
Всего: 1



Я вот тоже начал учить асм и решил разобраться в машинных кодах.
Стало ясно, что они вычисляются определённым образом. Вот, что я смог пронаблюдать:
Цитата

--------------------------INT--------------------------
|HEX|     |ASSEMBLER|
-------------------------------------------------------

CD X   int X

--------------------------INC--------------------------
|HEX|     |ASSEMBLER|
-------------------------------------------------------

40   inc ax
FE C0  inc al
FE C4  inc ah

43   inc bx
FE C3  inc bl
FE C7  inc bh

41   inc cx
FE C1  inc cl
FE C5  inc ch

42   inc dx
FE C2  inc dl
FE C6  inc dh

--------------------------ADD--------------------------
|HEX|      |ASSEMBLER|           |EXAMPLE|
-------------------------------------------------------

05 X X add ax, X (05 09 00  = add ax, 9)
04 X           add al, X (04 09   = add al, 9)
80 C4 X  add ah, X (80 C4 09    = add ah, 9)

83 C3 X X add bx, X (83 C3 09    = add bx, 9)
80 C3 X add bl, X (80 C3 09    = add bl, 9)
80 C7 X add bh, X (80 C7 09    = add bh, 9)

83 C1 X X add cx, X (83 C1 09    = add cx, 9)
80 C1 X add cl, X (80 C1 09    = add cl, 9)
80 C5 X add ch, X (80 C5 09    = add ch, 9)

83 C2 X X add dx, X (83 C2 09    = add dx, 9)
80 C2 X add dl, X (80 C2 09    = add dl, 9)
80 C6 X add dh, X (80 C6 09    = add dh, 9)

--------------------------SUB--------------------------
|HEX|      |ASSEMBLER|           |EXAMPLE|
-------------------------------------------------------

2D X X      sub ax, X (2D 09 00  = sub ax, 9)
2C X         sub al, X (2C 09   = sub al, 9)
80 EC X    sub ah, X (80 EC 09    = sub ah, 9)

83 EB X X  sub bx, X (83 EB 09    = sub bx, 9)
80 EB X     sub bl, X (80 EB 09    = sub bl, 9)
80 EF X     sub bh, X (80 EF 09    = sub bh, 9)

83 E9 X X  sub cx, X (83 E9 09    = sub cx, 9)
80 E9 X     sub cl, X (80 E9 09    = sub cl, 9)
80 ED X     sub ch, X (80 ED 09    = sub ch, 9)

83 EA X X  sub dx, X (83 EA 09    = sub dx, 9)
80 EA X     sub dl, X (80 EA 09    = sub dl, 9)
80 EE X     sub dh, X (80 EE 09    = sub dh, 9)

--------------------------MOV--------------------------
|HEX|      |ASSEMBLER|           |EXAMPLE|
-------------------------------------------------------

B8 X X mov ax, X (B8 09 00  = mov ax, 9)
B0 X           mov al, X (B0 09   = mov al, 9)
B4 X           mov ah, X (80 09    = mov ah, 9)

BB X X mov bx, X (BB 09 00    = mov bx, 9)
B3 X   mov bl, X (B3 09  = mov bl, 9)
B7 X           mov bh, X (B7 09     = mov bh, 9)

B9 X           mov cx, X (B9 09 00  = mov cx, 9)
B1 X   mov cl, X (B1 09  = mov cl, 9)
B5 X           mov ch, X (B5 09  = mov ch, 9)

BA X X       mov dx, X (BA 09 00    = mov dx, 9)
B2 X           mov dl, X (B2 09  = mov dl, 9)
B6 X           mov dh, X (B6 09       = mov dh, 9)

Но они меняются в различных ситуациях, хоть и не сильно.
Кто-нить знает по каким лагоритмам они меняются?!!!

Это сообщение отредактировал(а) CD20 - 19.8.2005, 07:25
PM MAIL   Вверх
CD20
Дата 19.8.2005, 07:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 18.8.2005

Репутация: нет
Всего: 1



PS
Наверное, лучше будет перенести это в раздел "асма и прочих вопросов."
PM MAIL   Вверх
setq
Дата 19.8.2005, 09:47 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











в intel та часть команды, в которой находится код операции может содержать в себе биты, которые говорят что-то об операндах. алгоритма не знаю, но это где-то описано 100 пд.
  Вверх
CD20
Дата 19.8.2005, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 18.8.2005

Репутация: нет
Всего: 1



Короче, пипл. Коды жёстко проставлены. То бишь: то, что я привёл таблицу - она верная!
Есесно только не полная.
PM MAIL   Вверх
Akina
Дата 19.8.2005, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: нет
Всего: 454



Код команды формируется по не самому простому принципу...

Перед командой может быть предикат - скажем переопределение сегмента операнда. Опкод команды может включать в себя биты, определяющие тип операнда и - для сегментных или битов флага - конкретное указание операнда. Затем идут данные - адреса и/или непосредственные значения.

Подробнее - шагай на сайт Интела (или, если хочешь, АМД) и качай офигенного размеру PDF с названием типа "Intel Pentium IV opcode Datasheet"... чтиво на ночь лет на несколько.

По сабжу. Я много написАл в свое врема программ в машинных кодах - для Электроники Д3-28. Однако там это было оправдано - набор команд весьма компактный (не RISC, но около того), нет такой развесистой клюквы регистров, плоская страничная память... АСМ-среды не было, а прилагаемый Барсик еле ворочался на самых простых вещах... даже ВТ-128С решал проблему лишь наполовину... а программы были такие, что обрабатывали массив данных по 3-4 месяца непрерывно - так что скорость работы была более чем критична.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Дрон
Дата 19.8.2005, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


Профиль
Группа: Участник Клуба
Сообщений: 3179
Регистрация: 29.12.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 93



Цитата(Akina @ 19.8.2005, 14:53)
Однако там это было оправдано

Года полтора назад в одной из своих программ на С++ для Windows реализовал code-injection машинных кодов -- просто создавался массив, в него записывались числа, устанавливалось разрешение на исполнение и вперёд smile

Там разбиралось математичекое выражение и по нему строилась подпрограмма его вычисления. А поскольку это выражение нужно было считать около 50 раз в секунду -- то решение вполне оправданно.
Добавлено @ 14:07
Как справочником пользовался описанием интеловского 486 процессора. Мне хватило smile

Особенно понравилось то, что, например, при перестановки некоторых независимых инструкций местами можно получать выигрышь в быстродействии аж до 10% !!! smile


--------------------
Да. Именно так.
PM   Вверх
Mayk
Дата 20.8.2005, 05:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 2
Всего: 134



Цитата
Особенно понравилось то, что, например, при перестановки некоторых независимых инструкций местами можно получать выигрышь в быстродействии аж до 10% !!!

У Зубкова в "Ассемблер для DOS, Win, Unix" указывается, что возможно до сделать ускорение на 200% smile Еще впечатляет, что ускорение можно получить добавив команду NOP smile.



--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
Mephistopheles
Дата 19.12.2005, 05:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегущий от света
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 15.11.2005
Где: Где нет света

Репутация: нет
Всего: 6



Команда - слово - 2 байта.
Формируется по битам. Вот, блин, где узнать: как?
--------------------
Ангелы и бесы кружат надо мной.Ангел или бес - делай выбор свой.Вспыхнуть огнём; вознестись до небесДелай выбор свой: ангел или бес?© Mephistopheles, бегущий от света.
PM MAIL WWW ICQ   Вверх
batigoal
Дата 20.12.2005, 09:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 4
Всего: 151



Цитата(Mephistopheles @ 19.12.2005, 06:14)
Команда - слово - 2 байта.
Формируется по битам. Вот, блин, где узнать: как?

В справочных материалах по процессорам, по всей видимости.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
rsm
Дата 20.12.2005, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 999
Регистрация: 16.3.2005

Репутация: 7
Всего: 62



Любителям мышинных кодов посвящается цикл статей "Заклинание кода": 1 2 3 4 5 6 7
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Религиозные войны | Следующая тема »


 




[ Время генерации скрипта: 0.1603 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.