User Tag List

Страница 3 из 5 ПерваяПервая 12345 ПоследняяПоследняя
Показано с 21 по 30 из 42

Тема: x80: CISC - уже не i8080, ещё не i8086

  1. #21

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,505
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    712
    Поблагодарили
    594 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Не фига - придётся или запоминать - куда перемещаем, или взглядом возвращаться - прерывается плавность восприятия. Это примерно как в немецком, где отрицание ставится в конце - радостно так - Вы здоровы - а потом хлобысь - думаете вы

    - - - Добавлено - - -

    Логичней выглядит так R1 := R0 - куда - операция - что

  2. #22

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,926
    Спасибо Благодарностей отдано 
    105
    Спасибо Благодарностей получено 
    290
    Поблагодарили
    216 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Hunta Посмотреть сообщение
    Логичней выглядит так R1 := R0 - куда - операция - что
    Ну или так. Главное, куда - это налево

  3. #23

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,505
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    712
    Поблагодарили
    594 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Дело, конечно, привычки, но язык ассемблера PDP-11 выглядит гораздо продуманней и дружественней для программиста. Когда я с ним столкнулся (после Фортрана) - мне хватило пяти минут, что бы въехать в принцип, а дальше было дело только в том, что бы запомнить редкие(!) команды, потому что часто использовавшиеся легли сразу. И помню, когда начал читать про язык ассемблера для XT - первая мысль - мля, как это всё в памяти удержать. В этом плане система команд 8080 (с ней столкнулся раньше XT) была даже понятней, хотя и не настолько логичней, как у PDP-11

    - - - Добавлено - - -

    Цитата Сообщение от b2m Посмотреть сообщение
    Ну или так. Главное, куда - это налево
    Главное - плавность восприятия, а не скакание по тексту вперёд назад

    - - - Добавлено - - -

    Именно поэтому пакет макросов для ассемблера PDP-11 воспринялся сразу, несмотря на то, что там

    MOV R0, R1

    выглядит как

    LET R1 := R0

  4. #24

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,926
    Спасибо Благодарностей отдано 
    105
    Спасибо Благодарностей получено 
    290
    Поблагодарили
    216 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Когда я начинал (на 8080), я вообще без мнемоник писал - прямо кодами

    - - - Добавлено - - -

    Пишешь процедуру в хексе, а после неё несколько нулей, на случай если её исправлять придется. Во как.

  5. #25

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,505
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    712
    Поблагодарили
    594 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Система команд PDP-11 тоже хорошо ложится на коды, только восьмеричные. Сейчас вожусь с отладкой FPGA части, в принципе, более сложный код можно прям в FPGA RAM|ROM загнать, но есть пульт - и не слишком сложное прям из головы в пульт, даже на бумаге не пишу. И да - шпаргалки по командам под рукой нет

  6. #26

    Регистрация
    20.04.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,870
    Спасибо Благодарностей отдано 
    521
    Спасибо Благодарностей получено 
    251
    Поблагодарили
    225 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от b2m Посмотреть сообщение
    Когда я начинал (на 8080), я вообще без мнемоник писал - прямо кодами

    - - - Добавлено - - -

    Пишешь процедуру в хексе, а после неё несколько нулей, на случай если её исправлять придется. Во как.
    а у меня на МСУВТ В7 пультовом мониторе по другому вообще никак нельзя было ввести программу при открывании из коробки с завода. Чтобы подключить кассетный магнитофон пришлось колдовать над схемой 8251, а набивать ленту на телетайпе РТА-80 тоже еще-то удовольствие. Особенно весело было перемещать код вручную с заменой всех адресов на бумаге( из головы не получалось). И еще вывод текста на семисегментном индикаторе веселое занятие.

    - - - Добавлено - - -

    Цитата Сообщение от Hunta Посмотреть сообщение
    Система команд PDP-11 тоже хорошо ложится на коды, только восьмеричные. Сейчас вожусь с отладкой FPGA части, в принципе, более сложный код можно прям в FPGA RAM|ROM загнать, но есть пульт - и не слишком сложное прям из головы в пульт, даже на бумаге не пишу. И да - шпаргалки по командам под рукой нет
    в 23 года я запомнил все коды команд 8080 где-то через 3 месяца тырканья на пультовом мониторе( мембранная клавиатура+8 семисегментных индикаторов), но если бы и кнопок не было и пульт как у СМ-4, то точно бы пришлось голову лечить
    Последний раз редактировалось andrews; 16.05.2020 в 14:09.

  7. #27

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,505
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    712
    Поблагодарили
    594 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от andrews Посмотреть сообщение
    и пульт как у СМ-4, то точно бы пришлось голову лечить
    И и щас могу с переключателей простую прогу набрать. Типа загрузчика.

  8. #28

    Регистрация
    20.04.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,870
    Спасибо Благодарностей отдано 
    521
    Спасибо Благодарностей получено 
    251
    Поблагодарили
    225 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Время разное. Для пульта с шестнадцатиричными цифрами на кнопках пусть даже пластиковых мембранных вертикальных(МСУВТ В7) одно нажатие -тетрада. Адрес вводится за 3 нажатия в пределах 2Кбайт, команда 3 байтная 6 нажатий(прикосновений). У клавишного пульта СМ-4 клавиши с фиксацией( и по моему даже с 3 состояниями?), 1 манипуляция - 1бит. Набрать программу даже на десять команд уже уйма времени. А с другой стороны терминалы штатно включены в заводской конфигурации, на МСУВТ В7 фрязинский дисплей приходилось подумать куда включать и как. Да и на самом терминале нужно было выставить правильные настройки для обмена, на абы каких он за комп не цеплялся. Но потом конечно небо и земля. Для МСУВТ В7 бытовой кассетный магнитофон и ввод с/на него через монитор и никаких дисков( хотя памяти можно набрать 64к озу с затеняемым пзу, но батарею твари забыли подключить( да и на 565ру3 пришлось бы большую батарею иметь), операционка только RMX-80, а в пзу только ассемблер и строчный редактор. А на СМ-4 любые носители и под каждого пользователя индивидуальный том 5 мбайтная "кастрюля". В 1982-83 гг это реально КРУТО! Ну и систем с разными ЯВУ у наших пронырливых сисадминов было любых!
    Последний раз редактировалось andrews; 16.05.2020 в 15:42.

  9. #29

    Регистрация
    05.03.2010
    Адрес
    Ташкент
    Сообщений
    160
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    66
    Поблагодарили
    41 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Lightbulb

    Цитата Сообщение от Hunta Посмотреть сообщение
    Но даже в этом случае понятней, чем извращение A4 - LOAD R4
    Прояснитe момент?
    Почему «A4» - извращение?
    Если оглядеть многие архитектуры, то зубрить машинный код нужно везде.
    Понимаю, если пользователь начал с Бейсика, потом перешёл на Паскаль и дальше - в Си, то машинный код - до лампочки!
    А вот потом идёт Ассемблер, когда слишком узкие места.
    Но здесь не надо смотреть с высока современных достижений!

    Например, если забыть про файлы, дампы и даже перфоленту, а также убрать из процессора блок автоматической выборки команд, как это было в самом начале, то можно представить нечто, как пульты прошлого века:

    Вот тут бинарное представление команды очень сильно влияет на скорость разработки кода и количество опечаток/ошибок.

    Понятно, что в RISC систему команд гуманизировать сложно. А вот CISC бинарно можно за уши притянуть к человеку.
    Раз критика сосредоточилась вокруг кода «A4», то разберу пример с ним.

    Если в 70-х популярна было восьмеричная система счисления, то в i8080 она и прослеживается:
    • 0000…0077 - группа загрузки и инкрементов (0000 - NOP)
    • 0100…0177 - группа команд пересылок MOV (0166 - HLT)
    • 0200…0277 - группа операций АЛУ
    • 0300…0377 - группа управления ходом исполнения
    Система команд i8080 достаточно проста (для детей 80-х с РАДИО-86РК / ЮТ-88) и чем-то походит даже на RISC: Бывают трюки написания алгоритмов из одних однобайтовых команд в «спортивных задачах»…

    У меня ушли долгие годы на переработку команд i8080, чтобы человеком машинный код читался легче.

    • 0x12 - загрузить R1 в R2: Варианты - «T12», «MOVE R1,R2», «LD R2,R1», «MOV CH,BH»
    • 0x1A - сложить R1 к Аккумулятору: Варианты - «ADD R1», «ADD A,R1», «ADD AL,BH»
    • 0x1B - Вычесть R1 из Аккумулятора: Варианты - «SUB R1», «SUB A,R1», «SUB AL,BH»
    • 0x1C - конъюнкция R1 над Аккумулятором: Варианты - «CONJUNCT R1», «AND A,R1», «AND AL,BH»
    • 0x1D - дизъюнкция R1 с Аккумулятором: Варианты - «DISJUNCT R1», «OR A,R1», «OR AL,BH»
    • 0x1E - эксклюзивное ИЛИ R1 с Аккумулятором: Варианты - «EOR R1», «EOR A,R1», «XOR AL,BH»
    • 0x1F - флаги по сравнению R1 с Аккумулятором: Варианты - «SUB F,A,R1», «FLAGS A,R1», «CMP AL,BH»
    • 0xA2 - Аккумуляция Аргумента в R2: Варианты - «APLY R2,BYTE», «ACCUMULATE R2,BYTE», «ARGUMENT R2,BYTE», «MOV R2,ARG»
    • 0xAA - Аргумент сложить к Аккумулятору: Варианты «ADD ARG», «ADD A,ARG», «ADD AL,ARG»
    • 0xAB - Аргумент Вычесть из Аккумулятора: Варианты - «SUB ARG», «SUB A,ARG», «SUB AL,ARG»
    • 0xAC - конъюнкция Аргумента над Аккумулятором: Варианты - «CONJUNCT ARG», «AND A,ARG», «AND AL,ARG»
    • 0xAD - дизъюнкция Аргумента с Аккумулятором: Варианты - «DISJUNCT ARG», «OR A,ARG», «OR AL,ARG»
    • 0xAE - эксклюзивное ИЛИ Аргумента с Аккумулятором: Варианты - «EOR ARG», «EOR A,ARG», «XOR AL,ARG»
    • 0xAF - флаги по сравнению Аргумента с Аккумулятором: Варианты - «SUB F,A,ARG», «FLAGS A,ARG», «CMP AL,ARG»
    • 0xB8 - безусловное Ветвление с 8-битным смещением: Варианты - «BRANCH $±127», «JMP $±127»
    • 0xBC - условное Ветвление по CF: Варианты - «BRCS LABEL», «BCS LABEL», «JC LABEL»
    • 0xBE - условное Ветвление по ZF (EF): Варианты - «BREQ LABEL», «BEQ LABEL», «JE LABEL»
    • 0xBF - условное Ветвление по Фиктивному ZF (EF): Варианты - «[B]BRNE LABEL», «BNE LABEL», «BRFE LABEL», «JNE LABEL»
    • 0xC1 - инкремент R1: Варианты - «INC R1», «INC BH»
    • 0xC2 - инкремент R2: Варианты - «INC R2», «INC CH»
    • 0xC3 - инкремент R3: Варианты - «INC R3», «INC DH»
    • 0xCB - инкремент указателя: Варианты - «INC B
    • 0xCC - инкремент указателя: Варианты - «INC C
    • 0xCD - инкремент указателя: Варианты - «INC D
    • 0xD4 - декремент R4: Варианты - «DEC R4», «DEC AL»
    • 0xD5 - декремент R5: Варианты - «DEC R5», «DEC BL»
    • 0xD6 - декремент R6: Варианты - «DEC R6», «DEC CL»
    • 0xDB - декремент указателя: Варианты - «DEC B
    • 0xDC - декремент указателя: Варианты - «DEC C
    • 0xDD - декремент указателя: Варианты - «DEC D
    • 0xF1 - прерывание на Функцию #1: Варианты - «RST 1», «FN 1», «INT 1»
    • 0xF2 - прерывание на Функцию #2: Варианты - «RST 2», «FN 2», «INT 2»
    • 0xF3 - прерывание на Функцию #3: Варианты - «RST 3», «FN 3», «INT 3»
    • 0xF9 - прерывание на Функцию #9: Варианты - «RST 9», «FN 9», «INT 9»
    Тем самым, просто прочитав этот список, Вы уже научились кодировать весь машинный код x80!
    Сколько времени у человека уйдёт на заучивание машинного кода любого другого процессора?
    Чтобы дампом написать свою первую программу, Вам потребуются считанные минуты!
    На одном форуме задумку так и обозвали - Процессор Акына: Что вижу, то и значит…
    Это ли ни тот самый WYSYWYG-Процессор?

    То есть, любой из Вас с лёгкостью уже может понять, что делает этот программный код:
    Код:
    x80: .0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
    0000 A1 76 A5 D0 A4 4E CB D4 BF FC 00

    Если лень думать…

    Код:
    Z80: .0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
    0000 26 76 2E D0 3E 4E 23 3D 20 FC 76
    [свернуть]

    P.S.: Тем самым, в своём минимальном исполнении мой x80 - тот же i8080, но с WYSYWSYG-машинным кодом.
    А с другой, как я вижу, здесь критикуете именно синтаксис Ассемблера, а не мою концепцию организации системы команд…
    Последний раз редактировалось Радио-86РК; 16.05.2020 в 16:16.

  10. #30

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,505
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    712
    Поблагодарили
    594 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Радио-86РК Посмотреть сообщение
    Если оглядеть многие архитектуры, то зубрить машинный код нужно везде.
    И нахера ориентироваться на сложности?

    Цитата Сообщение от Радио-86РК Посмотреть сообщение
    Это ли ни тот самый WYSYWYG-Процессор?
    Это лично ваше мнение.

    Цитата Сообщение от Радио-86РК Посмотреть сообщение
    А с другой, как я вижу, здесь критикуете именно синтаксис Ассемблера
    Синтаксиса ассемблера не бывает, ассемблер - это программа, которая понимает ЯЗЫК ассемблера.
    Фиговый он потому что

    Цитата Сообщение от Радио-86РК Посмотреть сообщение
    не мою концепцию организации системы команд
    как и система команд

Страница 3 из 5 ПерваяПервая 12345 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Програмная эмуляция i8086 в ДВК
    от MM в разделе ДВК, УКНЦ
    Ответов: 21
    Последнее: 06.03.2019, 13:04
  2. Мнемоники i8080 vs Z80
    от Vladimir_S в разделе Разное
    Ответов: 153
    Последнее: 20.12.2016, 13:02
  3. Квадратный корень на i8080
    от shoorick в разделе Разное
    Ответов: 31
    Последнее: 25.08.2016, 14:04
  4. Код эмуляции i8080 на С
    от medvdv в разделе Эмуляторы отечественных компьютеров
    Ответов: 15
    Последнее: 27.03.2015, 03:43
  5. Эмулятор i8080
    от Higgins в разделе Разное
    Ответов: 2
    Последнее: 20.05.2011, 11:43

Ваши права

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