Возможно ли написать программу используя только двоичный или hex код

Практическое ознакомление с отдельными БИС микропроцессорного комплекта серии К580, методикой построение МП-систем на его основе и структурой программного обеспечения.

Описание рабочего стенда.

Лабораторный стенд ТУМ1 предназначен для изучения функциональных возможностей и внутренней структуры (организации) МП различных типов, а так же для изучения системы команд (микрокоманд) этих МП и принципов проектирования и отладки микроконтроллеров на основе МП.

Функционально структура лабораторного стенда (рис.1) представляет собой схему обычной МП-системы или микроЭВМ, включающей в себя центральный процессор (ЦП), память, устройство ввода (клавиатура для ввода исходных данных и программ) и устройство вывода (блок светодиодных индикаторов, позволяющий визуально контролировать вводимую информацию и результаты выполнения программ).

В стенде использованы два клавишных регистра входной информации. Первый клавишный регистр предназначен для ввода данных, а второй клавишный регистр выполняет функции регистра микрокоманд для микропроцессоров с микропрограммным управлением или функции регистра адреса для микропроцессоров с фиксированной разрядностью. Кроме того, на панели управления так же размещен ряд переключателей отдельными режимами работы. Светодиодные индикаторы выведены на вертикальную лицевую панель стенда. Независимо от типа исследуемого МП стенд может работать либо в пошаговом режиме, либо в автоматическом.

Почему МАШИНЫ говорят на ДВОИЧНОМ КОДЕ? — Научпок #shorts

На плате памяти размещены БИС ОЗУ. Применение оперативных запоминающих устройств в качестве программной (микропрограммной) памяти определено спецификой использования стенда, предназначенного для решения разнообразных задач различных пользователей. В качестве памяти МП-системы на основе микропроцессора К580 использована БИС статического ОЗУ К565РУ2А емкостью 1024х1 бит. Параллельное включение восьми БИС этого типа позволило организовать программную память и память данных объемом 1024 восьми разрядных слов.

При исследовании модульных (секционных) МП используется плата памяти, основу которой составляет две секции по 5 параллельно включенных БИС ОЗУ типа К155РУ2 емкостью 16х4 бит. Использование десяти БИС ОЗУ обеспечило реализацию памяти микропрограмм объемом в 32 двацатиразрдных слова.

Управление режимами работы ОЗУ (Чтение, Запись или хранение информации) в стенде осуществляется с помощью управляющих клавиш ЗУ/КЛАВ и ЗАП, которые соединены с управляющими входами БИС ОЗУ «Выбор кристалла» и «Запись». В общем случае при работе с ЗУ необходимо переключить тумблер ЗУ/КЛАВ в положение ЗУ. При этом информация (данные, команда, микрокоманда), записанная по индицируемому адресу, автоматически считывается и высвечивается на соответствующих одноименных индикаторах. Для записи требуемой информации, предварительно набранной на клавишном регистре данных (микрокоманд), необходимо нажать на клавишу ЗАП. Алгоритм и органы управления памятью конкретных МП-устройств могут несколько отличатся от рассмотренных и будут представлены дополнительно при описании соответствующих режимов работы лабораторного стенда.

Как на самом деле работает двоичный код?

В состав микроЭВМ (рис.2) на базе МПК входит:

-плата центрального процессора, включающая кроме БИС К580ИК80А (К580ВМ80А) ряд БИС и СИС, с помощью которых реализованы тактовый генератор двухфазных последовательностей импульсов Ф1и Ф2, системный контроллер, формирующий внешние сигналы управления обменной информации в МП-системе, и шинные формирователи адреса и данных, предназначенные для повышения нагрузочной способности шин адреса и данных;

-плата памяти, включающая оперативное ЗУ емкостью 1024 восьмиразрядных слова на основе БИС К565РУ2А, предназначенное для записи хранения учебных программ и данных, а так же результатов выполнения программ;

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

С помощью двух внешних разъемов, расположенных на торцевых стенках стенда, предусмотрена возможность подключения двух модулей программируемого параллельного интерфейса ввода-вывода К580ВВ55, обеспечивающий двунаправленный обмен с внешними устройствами.

Основным режимом работы микроЭВМ является режим ВЫПОЛНЕНИЕ ПРОГРАММЫ. Однако, прежде чем приступить к работе, микроЭВМ необходимо запрограммировать. Поэтому наряду с основным режимом микроЭВМ также предусмотрен режим записи и коррекции программ (команд), который в соответствии с одноименным режимом работы МП КР580ВМ80 назван режимом ПРЯМОГО ДОСТУПА К ПАМЯТИ (ПДП).

Читайте также:
Программа на компьютер чтобы скачивать с контакта

Режим ПДП предназначен для записи информации в ОЗУ, а также использования системной шины другими внешними устройствами.

Режим ВЫПОЛНЕНИЯ ПРОГРАММЫ обеспечивает работу микроЭВМ по программе, предварительно записанной в память, в шаговом или автоматическом режиме.

Для организации указанных режимов работы на передней панели стенда устройства ввода размещен ряд элементов управления, назначение которых следующее:

ЗУ/КЛАВ – переключатель (тумблер), определяющий источник данных и команд. В положении ЗУ осуществляется чтение команд и данных из памяти или в память, в положении КЛАВ – с клавиатуры (без обращения к содержимому ЗУ);

ЗПД – тумблер, с помощью которого обеспечивается формирование сигнала «Запрос прямого доступа к памяти». Реагируя на этот сигнал, МП переходит в режим ПДП, при котором ША и ШД МП отключается от системных шин. Благодаря этому, появляется возможность непосредственного обращения к элементам ОЗУ микроЭВМ с помощью клавишных регистров адреса и данных. Установление режима ПДП необходимо контролировать по светодиодному индикатору ППД (подтверждение прямого доступа). Если при включенной клавише ЗПД индикатор ППД не горит, необходимо нажать кнопки НУ и ПУСК;

КЦ/МЦ – тумблер, задающий работу МП по командным или машинным циклам в пошаговом режиме.

Тумблер НЕПР/ШАГ и кнопка ПУСК обеспечивают работу МП в непрерывном или пошаговом режиме при выполнении программы. При этом зависимости от положения переключателя КЦ/МЦ в пошаговом режиме реализуется выполнение одного командного или машинного цикла.

Р
ис. 2

Изучение простейших технических средств организации интерфейса микропроцессорных систем выполняется на стенде ТУМ1 с помощью четырех- или шестиразрядного дисплеев на семи сегментных индикаторах (ДСИ).

В большинстве МП-систем обмен информации между МП и периферийными устройствами осуществляется через специальные схемы сопряжения (интерфейсные схемы), выполненные на основе интегральных схем малой степени интеграции или в виде специальных БИС. В простейшем случае роль промежуточного устройства сопряжения между МП и устройством ввода-вывода выполняет регистр часто называемый портом.

Работу подобного порта можно изучить с помощью четырехразрядного дисплея, в состав ДСИ входят четыре восьмиразрядных регистра с соответствующими схемами управления и четыре семи сегментных индикатора. К системным шинам адреса, данных и управления МП-системами ДСИ подключается через внешний разъем. Семи сегментные индикаторы позволяют отображать все десятичные цифры и ряд букв русского и латинского алфавитов. Кодирование отображаемых символов осуществляется восьмиразрядным двоичным кодом: сегменту b0 соответствует установка в «1» разряда d0 аккумулятора, сегменту b1 – установка в «1» d1 и т.д. принцип кодирования показан на рис. 3.Вывод информации осуществляется по команде Out Port, т.е. вывода содержимого аккумулятора.

Р
ис. 3

В общем случае в качестве буферного устройства сопряжения между МП и устройствами ввода-вывода используют БИС программируемого параллельного интерфейса КР580ВВ55 (ППИ). Программируемое устройство ввода-вывода параллельной информации КР580ВВ55 представляет собой набор из трех 8-разрядных двунаправленных портов (каналов) А, В и С, предназначенных для подключения периферийных устройств к системным шинам (Рис. 4)

Структурная схема ППИ включает в себя двунаправленный буфер ШД, три информационных регистра каналов А, В, С и схему выбора канала и управления, содержащую регистр управляющего слова. Связь БИС с ШД МП-системы осуществляется через тристабильный 8-разрядный буфер ШД. Входы А0 и А1 подключаются к одноименным линиям шины адреса и используются для выбора внутреннего регистра ППИ

Р
ис. 4

1.Выполнение типовых заданий 1-12 из методических указаний

Загрузка в регистры B и C данных 010 и 001

Адреса Команды Мнемоника команд Комментарии

L=000 041 LXIH Загрузка начального

001 200 B2 мл. байт памяти.

002 000 В3 ст. байт памяти.

003 001 LXIB Запись исходных данных

в регистры В и С

Читайте также:
Схемы плат телефонов программа

006 160 MOV M,B Запоминание (В)

007 043 INX H Формирование следующего

010 161 MOV M,C Запоминание (С)

011 166 HLT Останов.

После выполнения программы сегмент данных будет иметь следующий

Позволяет занести содержимое регистров В и С в стек(выбранный участок памяти).

Адреса Команды Мнемоника команд Комментарии

000 061 LXI SP Установка указателя

001 202 В2 мл.байт адреса.

002 000 В3 ст.байт адреса.

003 001 LXI B Запись исходных данных

в регистры В и С.

006 305 PUSH B Запоминание содержимого

регистров В и С в стеке.

007 166 HLT Останов.

Содержимое ячеек после выполнения программы:

Извлечение данных из стека, их изменение и занесение обратно в стек.

Запишем в стек (H=000, L=200 и H=000, L=201 ) числа 001 и 200 .

Адрес Команды Мнемоника команд Комментарии

003 301 POP B Извлечение данных

из стека и загрузка их

в регистровую пару В и С

004 004 INR B Увеличение на единицу

005 015 DCR C Уменьшение на единицу

содержимого регистра С

006 305 PUSH B Запоминание в стеке

Содержимое ячеек до выполнения программы:

Источник: kazedu.com

Можно ли программировать в двоичном коде?

название действительно говорит все это. Мой друг сказал мне, что знает кого-то, кто может программировать в двоичном коде. Я никогда не слышал о ком-то программировании в двоичном формате, и несколько быстрых поисков Google не вернули ничего полезного. Поэтому я решил обратиться к сообществу SO.

У кого-нибудь есть информация о программировании в двоичном формате и, если возможно, быстрый пример Hello World. Спасибо заранее.

автор: Adam P

6 ответов

конечно. Его чаще называют код. Это в основном язык ассемблера без мнемонических устройств. Кто-то, кто очень хорошо знает сборку, может запрограммировать машинный код с дополнительными усилиями, ссылаясь на списки кодов операций (например,x86) по мере необходимости.

сделал бы я это? Нет. Даже сборка полезна только в редких случаях, и нет причин (помимо демонстрации ваших навыков) отклонять сборщик’ы помочь.

Так как вы спросили о hello world, вы должны проверить в этой статье. Он показывает, как он написал, а затем оптимизировал программу x86 ELF для ее вывода. Первоначально он был написан в в NASM изменить в hex редакторе.

автор: Matthew Flaschen

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

Apple II 6502 ROM Monitor

  • на рисунке виден монитор 6502 ROM, где шестнадцатеричный код и мнемоника сборки показаны бок о бок.

второй навык, который вам понадобится, — это перевести шестнадцатеричный код в двоичный из ума, что очень легко с трюком, который я объясню немного. Но очень легко запомнить двоичный эквивалент всех шестнадцатеричных цифр, из которых есть 16 из них, в конце концов (не так много, не так ли это?).

предположим, что это 1988 год, и мы потратили почти десятилетие на портирование 8-битных видеоигр на разные платформы для жизни, и, следовательно, запомнили следующее 6502 код — инструкции это соответствует инструкциям по сборке:

OPCODE HEX LDA # 0xA9 0x44 STA 0x85 0x44 STA (),Y 0x91 0x44 LDY # 0xA0 0x44

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

0xA9 0x00 0x85 0x01 0xA9 0x02 0x85 0x02 0xA0 0x00 0xA9 0x01 0x91 0x01

на самом деле выше, является следующее ассемблерный код в мнемонической форме:

LDA #00 STA LDA #02 STA LDY #00 LDA #01 STA (), Y

  • приведенный выше код помещает белый пиксель в левом верхнем углу экрана в 6502asm.com ассемблер / эмулятор, продолжайте и попробуйте!
Читайте также:
Идеи для анимационных программ

если вы запомнили каждая шестнадцатеричная цифра в двоичном виде, вы могли бы написать весь код в двоичном формате.

но если вы их не запомнили или не знаете, что такое двоичная форма, их легко преобразовать со следующим трюком:

1 1 1 1 | | | | v v v v 8 + 4 + 2 + 1 | | | +—> 2^0 * 1 Ex: 13 is 8 + 4 + 0 + 1 | | +——-> 2^1 * 1 1 1 0 1 -> 1101 (0xD) | +————> 2^2 * 1 Ex: 7 is 0 + 4 + 2 + 1 +—————> 2^3 * 1 0 1 1 1 -> 0111 (0x7)

который помогает писать код в двоичном формате на лету:

LDA #00 -> 0xA9 0x00 -> 10101001 00000000 STA -> 0x85 0x01 -> 10000101 00000001 LDA #02 -> 0xA9 0x02 -> 10101001 00000010 STA -> 0x85 0x02 -> 10000101 00000010 LDY #00 -> 0xA0 0x00 -> 10100000 00000000 LDA #01 -> 0xA9 0x01 -> 10101001 00000001 STA (),Y -> 0x91 0x01 -> 10010001 00000001

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

автор: neuro_sys

ну, конечно, вы можете написать двоичный файл для машинного кода, а затем ввести машинный код через шестнадцатеричную клавиатуру в компьютер. Я собрал компьютер на основе TMS1100.

простая программа для отображения 5 на шестнадцатеричном светодиоде будет 0001000 0000101 0000001, написанная в двоичном формате, преобразованном в машинный код, который будет 8 5 1 . Затем эта программа запустится и отобразит 5 на светодиоде.

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

на самом деле, я думаю, что это очень сытно и полезно если вы заинтересованы в математике и программировании.

автор: Winston Willow

Hexadecimal code

для храбрых сердца: вы можете попробовать получить изображение mikeos floppy и запустить монитор.программа бин. Он позволяет вводить шестнадцатеричные опкоды вручную и выполнять их. Например (как указано в документах), введите следующие инструкции: BE0790 E8FD6F C3 4D00$ произведет одиночный M на экране.

автор: Zebrastorm

для этого больше нет необходимости, но это было сделано. Было время,когда код можно было ввести в систему в двоичном формате с передней консоли. Он был подвержен ошибкам.

У меня была очень короткая программа uudecoe, закодированная в ASCII, которая могла быть префиксом файла UUEncoded. Полученный файл будет самораспаковывающимся и может быть отправлен по электронной почте. Я ожидал, что машинный код был сделан вручную. Я не могу найти его, и он мне не нужен, даже если я мог.

автор: BillThor

есть некоторые эзотерические языки программирования. Они используются в качестве экспериментов и довольно непрактичны, но один, называемый BrainF**k (да, это действительно реальная вещь), использует восемь разных символов для изменения значений байтов. Эти языки настолько близки, насколько это возможно.

Источник: askdev.ru

А где можно программировать в двоичных и 16-ричных системах?

Есть разные компиляторы и т.д. А где для двоичных и 16-ричных систем программы чтобы на них программировать ? Просто не пойму как для калькулятора в 50-х годах програамировали на этих системах(с помощью чего они туда запизивали?) И как это можно сделать (написать и запихнуть сейчас?знаю есть программаторы,но вот для компа допустим написать чего нить в двоичной системе или 16-ричной, как её активировать?)

  • Вопрос задан более трёх лет назад
  • 495 просмотров

1 комментарий

Простой 1 комментарий

Любой компилятор на выходе имеет циферки в двоичной системе. Можете заняться реверс инженеренгом и посмотреть во что преобразует ваш компилятор обычный hello world. Если вы хотите с нуля писать команды нулями и единицами,то вам придется еще адаптировать вашу программу чтобы виндовс принял её за экзешник и запустил, а для этого придется еще изучить из чего состоит исполняемый файл в виндовс.

Источник: qna.habr.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru