User Tag List

Страница 2 из 9 ПерваяПервая 123456 ... ПоследняяПоследняя
Показано с 11 по 20 из 88

Тема: Программирование в машинных кодах

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    23.10.2012
    Адрес
    г. Красноярск
    Сообщений
    206
    Спасибо Благодарностей отдано 
    47
    Спасибо Благодарностей получено 
    63
    Поблагодарили
    29 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я думал что ассемблер на Радио-86РК работает также как и в Специалисте. К слову, если попытаться запустить программу директивой G без параметров, то все тоже печально. Кроме того, в описании к монитору 86РК сказано, что можно не указывать адрес останова программы. Это, на мой взгляд, как бы подразумевает, что стартовый адрес указывать обязательно. Касательно адреса вывода символа на экран - в эмуляторе Специалиста это $C037. И все работает как часы, при этом все понятно, что весьма немаловажно. В конечном итоге имелся ввиду общий алгоритм, а не программа целиком. Ну в любом случае неважно. От темы отказался. Этот компьютер слишком не для меня.

    Всем спасибо за попытку помочь нубу ).

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

  3. #2

    Регистрация
    01.06.2005
    Адрес
    Москва
    Сообщений
    229
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    53
    Поблагодарили
    34 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    в Мониторе РК-шки также в стек кладется адрес теплого старта F86C, он же командный интерпретатор, так что возврат из программы командой RET является легальным способом завершения программы.
    Почему код не работает в эмуляторе -- надо спрашивать автора эмулятора.

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

    Хотя, директива G может и портит стек, надо бы проверить на реальном железе и эмулятор тут не причем.

  4. #3

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,390
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    38 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vital72 Посмотреть сообщение
    в Мониторе РК-шки также в стек кладется адрес теплого старта F86C
    Скриншот из отладчика после старта РК, когда монитор ждет нажатия клавиши и крутится в цикле FE63-FE67. Где здесь на стеке F86C?
    Цитата Сообщение от Vital72 Посмотреть сообщение
    директива G может и портит стек
    При выполнении G значение SP берется по адресам 761C-761D. По умолчанию монитор заносит туда 76СF. А по адресам 76CF-76D0 монитор записывает нули. Т.е. если не принять специальных мер, то выход после G0 по RET вернется в 0 и будет дальше разматывать стек в направлении видеопамяти.
    Цитата Сообщение от Zidane Посмотреть сообщение
    как и у специалиста вроде
    у специалиста не так

  5. #4

    Регистрация
    12.11.2009
    Адрес
    Москва
    Сообщений
    403
    Спасибо Благодарностей отдано 
    50
    Спасибо Благодарностей получено 
    90
    Поблагодарили
    66 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    … Т.е. если не принять специальных мер …
    Всё верно. Спецмерой в данном случае могут быть две команды dcx sp в виде первых двух строк программы. Тогда указатель стека сместится и на верхушке будет лежать правильный адрес возврата F86C.

    3B 3B 0Е 21 CD 09 F8 C9 - вот такой код работает корректно.
    Последний раз редактировалось SegaBoy; 29.08.2022 в 15:23.

  6. #5

    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    14,289
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    202
    Спасибо Благодарностей получено 
    1,456
    Поблагодарили
    946 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SegaBoy Посмотреть сообщение
    3B 3B 0Е 21 CD 09 F8 C9 - вот такой код работает корректно
    можно и сократить 3B 3B 0Е 21 С3 09 F8
    .................
    можно сократить и ещё на один байт - сделать вначале pop reg
    Последний раз редактировалось goodboy; 29.08.2022 в 16:59.

  7. #6

    Регистрация
    12.11.2009
    Адрес
    Москва
    Сообщений
    403
    Спасибо Благодарностей отдано 
    50
    Спасибо Благодарностей получено 
    90
    Поблагодарили
    66 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    можно сократить и ещё на один байт - сделать вначале pop reg
    Не выйдет, нам в другую сторону. Pop это аналог двух inx, что ещё дальше отодвинет нужный адрес.

  8. #7

    Регистрация
    05.04.2013
    Адрес
    Починки, Нижегородская обл.
    Сообщений
    1,371
    Спасибо Благодарностей отдано 
    401
    Спасибо Благодарностей получено 
    647
    Поблагодарили
    255 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  9. #8

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,390
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    38 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Pyk Посмотреть сообщение
    В стандартном Мониторе РК-шки адрес теплого старта в стек не кладется
    Цитата Сообщение от Pyk Посмотреть сообщение
    В Emu80 по умолчанию используется стандартный Монитор
    В rk86.rom есть фрагмент, который привел Vital72 и при нажатии ВК он выполняется. Другое дело, что этого недостаточно, чтобы просто вернуться по RET после G.

  10. #9

    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    14,289
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    202
    Спасибо Благодарностей получено 
    1,456
    Поблагодарили
    946 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    а как так получается что размещая программу с #0000 делаем вызов на #F809 ?
    (смущает общий объём памяти)

  11. #10

    Регистрация
    23.10.2012
    Адрес
    г. Красноярск
    Сообщений
    206
    Спасибо Благодарностей отдано 
    47
    Спасибо Благодарностей получено 
    63
    Поблагодарили
    29 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    а как так получается что размещая программу с #0000 делаем вызов на #F809 ?
    (смущает общий объём памяти)
    Ну так у 86РК (как и у специалиста вроде) монитор с адреса $F800 по моему. В любом случае руководствовался этой таблицей http://www.emuverse.ru/wiki/%D0%A4%D...-Tables-01.png

Страница 2 из 9 ПерваяПервая 123456 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 18
    Последнее: 09.12.2018, 12:32
  2. Растактовка машинных циклов intel 8080
    от NEO SPECTRUMAN в разделе Эмуляторы отечественных компьютеров
    Ответов: 2
    Последнее: 06.04.2017, 17:09
  3. Ответов: 10
    Последнее: 06.03.2015, 12:59
  4. Ответов: 4
    Последнее: 26.07.2014, 16:52
  5. Клинит башню от машинных систем счисления
    от Watt в разделе Программирование
    Ответов: 17
    Последнее: 04.05.2005, 14:40

Ваши права

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