Войти
ФлеймФорумЖелезо

Блеск и нищета 8/16-битных консолей и ПК (110 стр)

Страницы: 1107 108 109 110 111 112 Следующая »
#1635
12:20, 23 июля 2021
+ Показать
Система команд процессора совместима с семейством i80x86 на уровне ассемблера,
однако команды существенно переорганизованы, упрощены и расширены. Операции
работы со строками дополняются вычислительными действиями, достигая наибольшей
производительности при минимальном затрачивании машинного кода. Чтение длинных
слов в современных процессорах не сказывается на производительности, поэтому в
данном процессоре некоторые операции намеренно не описываются компактно, таким
образом резервируя значительную область для расширения системы команд. Система
команд базируется на префиксном уровне и многие из команд значительно изменяют
свою логику в зависимости от того, какие и сколько префиксов перед ними стоит.
Основными префиксами являются указатели приёмников и источников данных для той
цели, чтобы на время выполнения команды объявить нужные регистры/ячейки памяти
задействованными в вычислительном процессе операции. Запрещёнными комбинациями
некоторых инструкций указываются дополнительные префиксы и их модификации, что
позволяет более компактно использовать кодовое пространство системы команд.
Примеры:
0400:AC         |LODSB
0401:AA         |STOSB
0402:3C 00      |CMP     AL,0x00
0404:E0 FA      |LOOPNE  0x0400
--------<<< EQUALENCY >>>--------
0400:80 00      |MOV     AL,0x00
0402:25 FF 81   |REPNE MOVCMPSB  ;MOVE STRING WITH COMPARE

0400:3C ..      |CMP     AL,0xAA
0401:AA         |STOSB
0402:AC         |LODSB
0403:3C 00      |CMP     AL,0x00
0405:E0 FA      |LOOPNE  0x0401
0407:47         |INC     DI
0408:E2 F8      |LOOP    0x0402
--------<<< EQUALENCY >>>--------
0400:80 00      |MOV     AL,0x00
0402:25 FF 83   |REPNE CMPMOVSB  ;COMPARE AND MOVE STRING
0405:3F 28      |INC     DI
0407:23 F7      |LOOP    0x0400

0400:AC         |LODSB
0401:02(05/C4)  |ADD     AL,([DI]/AH)
0403:73 02      |JNB     0x0407
0405:1A C0      |SBB     AL,AL
0407:AA         |STOSB
0408:E2 F6      |LOOP    0x0400
--------<<< EQUALENCY >>>--------
0400:24 FF 94   |REP ADDSSB      ;MOVE STRING WITH SATURATION ADDING
    /3C 24 FF 94|REP ADDSS  AH   ;MOVE STRING WITH SATURATION ADDING REGISTER

0400:E4 AB      |IN      AL,0xAB
0402:EE         |OUT     DX,AL
--------<<< EQUALENCY >>>--------
0400:30 21 AB   |IN      AL,0xAB
0403:32 21      |OUT     DX,AL

#1636
16:26, 23 июля 2021

За что я люблю ассемблер?: https://habr.com/ru/post/569204/

#1637
16:43, 23 июля 2021

Alikberov
> Oчень удивительно, что Вы этим заинтересовались только сейчас.

Нельзя сказать что только сейчас - интересовало всегда, но либо не было материалов, либо они были неудобно изложены.

Хехе, помню где то году так в 96-ом +- 2 года мы с другом детства будучи тогда юношами уже увлёкшимися программированием на бейсике и паскале с глазами горящими купили книгу "Intel 386 в деталях" надеясь начать программировать на ассемблере IBM PC.
Однако вся книга оказалась просто пересказом Intel 386 Programming Manual где была куча скучнейших описаний дескрипторов защищённого режима, но ни намёка на то как программировать в ассемблере.
Короче мы серьёзно ошиблись по незнанию в том что это за книга и нужна ли она нам.
Так вот и по ней понять как где и зачем этот чёртов modR/M нужен было очень трудно и не было банальной таблицы по ссылке с прошлой страницы где было бы легко понять как устроена система команд с высоты птичьего полёта, а modR/M уже прикладывается уместно именно к этой картине.
И собственно мануалы от интела самого грешат тем же самым: чтобы уложить всё в систему надо это делать самому составляя такую же табличку.

В общем только недавно наткнулся на неё уже готовую и разглядывая всё понял что давно хотел понять.
И про Вашу систему помню, была уже в других темах. В целом и то и это тут оффтоп, я потом причешу и вынесу в другую статью в другой теме. Просто для тех кто хочет за 5 минут врубится в основы системы кодирования инструкций i386.

#1638
(Правка: 17:31) 17:08, 23 июля 2021

=A=L=X=
> Просто для тех кто хочет за 5 минут врубится в основы системы кодирования
> инструкций i386.
Начинать х86 понимать имело смысл с таких, в частности, книг :)
Дао Л.В. Программирование микропроцессора 8088. (1984): http://publ.lib.ru/ARCHIVES/D/DAO_Lenni_V/_Dao_L.V..html

P.S. А, 8080,8085, в частности
Левенталь Л. Введение в микропроцессоры: http://publ.lib.ru/ARCHIVES/L/LEVENTAL%27_Lens/_Levental%27_L..html

Скэнлон Л.Дж. Персональные ЭВМ IBM PC и XT. Программирование на языке ассемблера.: http://publ.lib.ru/ARCHIVES/S/SKENLON_Leo_Djon/_Skenlon_L.Dj..html

Григорьев В.Л: http://publ.lib.ru/ARCHIVES/G/GRIGOR%27EV_Vyacheslav_Leonidovich/… 7ev_V.L..html
(тоже хороший автор)
...

#1639
17:14, 23 июля 2021

KPG
> Начинать х86 понимать имело смысл с таких, в частности, книг :)

Позднее я успешно программировал на ассемблере 8086 и 386 с помощью подобных книг. Вот друг к тому времени уже этим перестал интересоваться, а я еще интересовался и получив нужную книгу быстро всё на TASM освоил что хотел.
Но это уже символьный ассемблер и понимания как машкоды устроены в отличие от спектрума где опкоды по книжке облизав палец чтобы перелистывать 3 страницы вперёд-назад наяривал только в путь уже не было. В общем дело было просто в сводной табличке с правильными пояснениями.

#1640
(Правка: 17:36) 17:20, 23 июля 2021

=A=L=X=
> Но это уже символьный ассемблер и понимания как машкоды устроены в отличие от
> спектрума где опкоды по книжке облизав палец чтобы перелистывать 3 страницы
> вперёд-назад наяривал только в путь уже не было. В общем дело было просто в
> сводной табличке с правильными пояснениями.
По табличке команд Z80  мне пригодился двухтомник за авторством Рафикузмана
http://publ.lib.ru/ARCHIVES/R/RAFIKUZAMAN_Mohamed/_Rafikuzaman_M..html

P.S. Переводили же  и издавали в СССР и такие прекрасные книги.
Вот что из последнего актуально-интересного перевели и издали по этому вопросу в России?

Из лично интересного с использованием x86 команд процессора сделал эмулятор процессора с командами  PDP-11  в связке с Форт. :)

#1641
19:50, 23 июля 2021

KPG
> Вот что из последнего актуально-интересного перевели и издали по этому вопросу
> в России?
https://dmkpress.com/files/PDF/978-5-97060-650-6.pdf

#1642
7:31, 24 июля 2021

У меня по спектруму была основная книга знаний - толстенький томик в мягкой обложке о котором помню только что обложка была голубого монотонного цвета без рисунков или обводок. Издание было явно дешевым и сердитым как и спектрум. И там была сборная солянка обо всём подряд - и о бейсике и таблица с машкодами и даже про Hisoft C с чего моё первое знакомство с Си и началось.
Но названия не помню и в гугл-картинках такую обложку найти не могу.

#1643
14:11, 24 июля 2021

=A=L=X=
> и таблица с машкодами и даже про Hisoft C с чего моё первое знакомство с Си и
> началось.
взаимно

#1644
15:27, 25 июля 2021

Ого, вот это костыли, так костыли (первые 8 минут ролика),...

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры
#1645
16:14, 25 июля 2021

0iStalker
> Ого, вот это костыли, так костыли (первые 8 минут ролика),...

Костыли там были и программные. Я об этом писал давно уже: https://gamedev.ru/flame/forum/?id=226622&page=16&m=4722712#m229
Если вкратце, то ПЗУ C64 в отличие от спектрума тоже не проектировалось изначально под дисководы. Даже в спектруме 16 в бейсике были неработающие команды CAT, ERASE и FORMAT - они в принципе не работали, но уже закладывались. И в будущем Microdrive из заюзал методом подмены ПЗУ в особых точках входа.
В C64 нифига подобного не было. Дисковод воспринимался как другой компьютер в школьной сети (распространённая схема работы для окучивания государственных учреждений).
Так вот чтобы посмотреть оглавление диска выполнялась команда LOAD "$", 8 - она как бы загружала с ведущего компьютера №8 (дисковод по умолчанию так себя представлял) программу на бейсике. А эта программа была невалидной программой, т.к. была просто отформатированным текстом с оглавлением диска. Т.е. после LOAD "$", 8 и вывода "ОК" надо было еще дать команду бейсика LIST чтобы узреть что мы там загрузили. Естественно текущая программа на бейсике уничтожалась.
А чтобы работать с файлами и диском командами операционной системы в бейсике открывался канал связи с этим компьютером (в бейсике это оператор OPEN #) и в него командами PRINT отправлялись текстовые строки с командами DOS.
Переименование файла в бейсике C64 выглядело в итоге вот так:

OPEN 1,8,15,"R:old=new" : CLOSE 1

#1646
9:42, 26 июля 2021

=A=L=X=
> Если вкратце, то ПЗУ C64 в отличие от спектрума тоже не проектировалось
> изначально под дисководы.

какие дисководы в начале 80х  для домашних компов? микродрайв был

> В C64 нифига подобного не было.

напомни цену C64 и Speccy

#1647
(Правка: 10:01) 10:00, 26 июля 2021

innuendo
> какие дисководы в начале 80х для домашних компов? микродрайв был

Микродрайв был очередной попыткой из говна сделать конфетку капиталистической акулы сэра Клайва.
А у одного из первопроходцев - Apple II дисководы появились в 1978 году. Еще до появления спектрума как такового.
Цены, правда, были эппловские. Воистену. Примерно $2k в современных доллАрах.

> напомни цену C64 и Speccy

C64 примерно в два раза дороже спектрума и примерно раза в два же и нафаршированнее (сравниваются базовые модели 64 vs 48).
Собственно тем страннее, что так.
Впрочем у спектрума в итоге тоже прижилась немного извратная схема подключения с RANDOMIZE USE magic:REM, в TR-DOS, но всё-равно писанины было меньше.

#1648
10:09, 26 июля 2021

0iStalker
> Ого, вот это костыли, так костыли

Жесть какая. 300 байт в секунду - да при таких скоростях можно было просто замедлить скорость вращения шпинделя и обрабатывать сигнал с головки прямо процессором компьютера, выкинув нахрен всю цифровую электронику из дисковода, оставив только усилители и единичные сигналы для шаговых двигателей выбора дорожки.

#1649
10:39, 26 июля 2021

=A=L=X=
> А у одного из первопроходцев - Apple II дисководы появились в 1978 году. Еще до
> появления спектрума как такового.
> Цены, правда, были эппловские. Воистену. Примерно $2k в современных доллАрах.

вот-вот, ты не сравнивай комп за 500$ и Speccy

Страницы: 1107 108 109 110 111 112 Следующая »
ФлеймФорумЖелезо