Важная информация

User Tag List

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 23

Тема: Основы программирования в ассемблере и машинном коде на 48 Kb памяти (для начинающих)

  1. #11

    Регистрация
    10.01.2010
    Адрес
    Смоленская обл.
    Сообщений
    556
    Спасибо Благодарностей отдано 
    187
    Спасибо Благодарностей получено 
    197
    Поблагодарили
    100 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от 0xDEAD Посмотреть сообщение
    А программирование чего-нибудь с нуля в машкоде в настоящее время не нужно, непродуктивно и бессмысленно. Почему оно раньше было популярно - да просто потому, что некоторые люди привыкли, после Радио-86РК или Микро-80, у которых первоначально не было ни ассемблера, ни дизассемблера, набивать программы побайтово в мониторе. И для журналов, которые публиковали эти "программы", (Радио, Моделист-Конструктор, етц) было более выгодным печатать таблицу с этим шестнадцатеричным бредом, которая была более компактной, и занимала меньше места журнальной площади, чем текст программы на Ассемблере. Которого, к тому же, не было в природе - поначалу, по крайней мере.
    Что-то очень сомнительно что программы для тех же Радио или Микро писались на машкоде. Скорее скомпилировали редактор и ассемблер на каком нибудь роботроне или писюхе (а может на ДВК благо их тогда было).
    Но даже если всётаки первый редактор/ассемблер и лепили с превозмоганием в машкоде (благо наши энтузиасты и не на то горазды) , то дальше уже был инструмент для программирования. А вот распостранять, да в формате кодов было удобнее и проще. В том же журнале "Радио" кассету не прилепишь, а пару страниц текста кодов запросто, тем более что и памяти в компе было всего ничего.

  2. #12

    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    1,691
    Спасибо Благодарностей отдано 
    302
    Спасибо Благодарностей получено 
    223
    Поблагодарили
    159 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Dart Alver Посмотреть сообщение
    Что-то очень сомнительно что программы для тех же Радио или Микро писались на машкоде.
    Писались вряд ли, а вот редактировались - запросто. Когда был мелким, тётя несколько раз меня водила к себе в институт. Так вот в случае ошибок в программе они вырезали кусок перфоленты, и вклеивали другой. А если ошибки были незначительные, то дырочки заклеивали узкой полоской бумаги, вставляли перфоленту в железяку напоминающую степлер, и пробивали байт за байтом правильные дырки при помощи маленького пробойника, похожего на гвоздь с удобной шляпкой-шариком.

    Если продолжать тему про дампы программ в журналах - они ещё и меньше места занимают, чем ассемблерный исходник.
    А вот самой программы-ассемблера, под рукой могло не быть. В то же время бейсиковая программа для ввода дампа на десяток строк прилагалась в начале цикла статей, её набрать было не проблемой даже каждый раз с нуля перед началом работы. Один из дампов в журнале как раз давал возможность настучать простенький ассемблер.
    Heavy on the disasm
    Eric and the disasm
    Mask 3: Venom strikes disasm
    Bard's disasm

  3. #13

    Регистрация
    18.07.2021
    Адрес
    г. Хмельницкий, Украина
    Сообщений
    105
    Спасибо Благодарностей отдано 
    12
    Спасибо Благодарностей получено 
    33
    Поблагодарили
    25 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    Этот пользователь поблагодарил 0xDEAD за это полезное сообщение:

    Barmaley_m(23.02.2023)

  4. #14

    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    1,691
    Спасибо Благодарностей отдано 
    302
    Спасибо Благодарностей получено 
    223
    Поблагодарили
    159 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от 0xDEAD Посмотреть сообщение
    Это если тот бейсик ещё был там.
    Я на Спеке вбивал прогу для ввода дампа, в неё - с журнала, и сохранял в файл.
    Heavy on the disasm
    Eric and the disasm
    Mask 3: Venom strikes disasm
    Bard's disasm

  5. #15

    Регистрация
    18.07.2021
    Адрес
    г. Хмельницкий, Украина
    Сообщений
    105
    Спасибо Благодарностей отдано 
    12
    Спасибо Благодарностей получено 
    33
    Поблагодарили
    25 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ну, правильно. А у простейших эта прога уже была в ПЗУ - называлась "Монитор". Нет, можно, конечно, было из монитора Бейсик загрузить (с кассеты), и набить коды в Бейсике - но это двойной расход памяти. Для небольших программ, это, разумеется, не так важно, а если программа килобайт так 30 - то или бейсик, или коды - для обеих места нет.
    Последний раз редактировалось 0xDEAD; 21.02.2023 в 22:58.

    Этот пользователь поблагодарил 0xDEAD за это полезное сообщение:

    Barmaley_m(23.02.2023)

  6. #16

    Регистрация
    10.09.2007
    Адрес
    Екатеринбург
    Сообщений
    22
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Проблемы с листингом в GENS

    Решил вспомнить книжку Капульцевича и ввести пару программ. Однако возникла проблема (которая по-моему возникала и когда-то ранее). Ввожу код для установки постоянных атрибутов в GENS3, пишу в tap файл (хочу с магнитофоном поработать). Однако в конце листинга, после повторной загрузки текста стали выводиться какие-то левые символы, причем записывал без RET, все ОК, добавляю RET и снова записываю - опять хрень, добавляю сразу после RET символ, записываю, норм. считывается. Если прочитать в уже введенную ранее программу, хоть одной строкой, все ОК. Может кто-то сталкивался с такой хренотенью?

    Ошибка: Нажмите на изображение для увеличения. 

Название:	bad.png 
Просмотров:	93 
Размер:	2.1 Кб 
ID:	78574Нажмите на изображение для увеличения. 

Название:	bad.png 
Просмотров:	93 
Размер:	2.1 Кб 
ID:	78574

    Текст программы:
    10 ORG #E000
    20 ENT $
    30
    40 LD DE, ATR
    50 LD BC, EATR-ATR
    60 CALL ATTRIB
    70
    80 RET
    90
    100 ATR DEFB 16,1
    110 EATR
    120
    130 ;ATTRIB.A
    140 ; Setup attribute by str.
    150 ;BC - length of string
    160 ;DE - start attr. string
    170
    180 ATTRIB PUSH BC
    190 PUSH DE
    200
    210 LD A,2
    220 CALL #1601
    230
    240 CALL #0D4D
    250
    260 POP DE
    270 POP BC
    280
    290 CALL #203C
    300
    310 CALL #1C96
    320
    330 RET


    Файл tap с ассемблером и программой (ATTRIB.A):devpack_etudes.zip

  7. #16
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #17

    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,869
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    110
    Поблагодарили
    66 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    1. Зачем оставляешь пустые строки?
    2. Не залез ли твой код на код GENS?
    3. Делаешь ли отступы вначале строки для меток?

  9. #18

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

    По умолчанию

    Соглашусь с тем, что программирование в кодах ( по сути "ручное" ассемблирование-дизассемблирование) это тренинг для начинающих хакеров. Ну или если надо код подправить слегонца в исполняемом файле, а дизассемблера(ассемблера) нет, а отладчик(или пульт) есть. Удел очень немногих.

    Еще пригодится в "минималистичных дизайнах". z80+2к ппзу например и компьютера нет под рукой. Правда и программатор "каменного века"(для "ручной прошивки") должен быть. Зато можно полностью погрузиться в какой-нибудь 1977 год в Ленинграде или Москве.

    Правда и тогда были(хотя и весьма ограниченно) доступны и СМ-3,СМ-4 и набить коды для микропроцессора можно было на терминале и распечатать на бумаге. Можно было сварганить и кросс-средства для разработки.
    Последний раз редактировалось andrews; 11.03.2023 в 11:51.

  10. #19

    Регистрация
    10.09.2007
    Адрес
    Екатеринбург
    Сообщений
    22
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    1. Зачем оставляешь пустые строки?
    Мне так нравится, позволяет визуально хоть как-то разделять код в GENS, на проблему это никак не влияет

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    2. Не залез ли твой код на код GENS?
    нет конечно

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    3. Делаешь ли отступы вначале строки для меток?
    разумеется в коде который я вставил в текстовом виде это не видно.

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

    Кажется сам разобрался. Причина появления бага непонятна, но нашел способ как это можно решить, вдруг у кого-то возникнет подобная странная ситуация.
    Сначала базовые сведения о структуре хранения текста программы в GENS. Начальный и конечный адрес текстового буфера, как указано в мануале, можно получить с помощью команды X. Адрес конца буфера хранится в ячейках начиная с адрес загрузки GENS + 54 (десят.). Мои "исследования" показали, что строка хранящаяся в буфере имеет следующий формат:
    номер строки (2 байта в обратном порядке, в числовом виде)
    [метка]
    код 09 (указатель начала строки кода)
    строка кода
    код 0D (конец строки)
    ...
    в конце буфера должна быть такая последовательность:

    строка
    код 0D
    любое число (в адресе посл. байта в буфере).

    ЗЫ
    В моем тексте в конце были какие-то левые байты, я просто скорректировал адрес конца буфера.

  11. #20

    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,821
    Спасибо Благодарностей отдано 
    273
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    95 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    janvier, в той тапке которую ты скинул - лютый дичь вообще, CLEAR сидит даже прям на коде, строка 6: есть тоже ересь, ты видимо извращенец тоже (явушка никому на пользу не шла ещё, вот я спек-бейсиком испорченый наглухо и тоже не могу переучится чтоб интерпритатор за руку не тащил пища бипером на 50 Гц)

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

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

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

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

Похожие темы

  1. Для начинающих
    от Viktor2312 в разделе Ириша
    Ответов: 73
    Последнее: 21.11.2025, 16:10
  2. Ответов: 22
    Последнее: 12.02.2023, 16:13
  3. Ответов: 6
    Последнее: 07.02.2016, 11:55
  4. КМБ для начинающих
    от yur в разделе Программирование
    Ответов: 0
    Последнее: 16.10.2012, 14:06
  5. Подпрограмма на ассемблере в памяти?
    от jimled в разделе Программирование
    Ответов: 1
    Последнее: 29.11.2009, 06:46

Ваши права

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