User Tag List

Показано с 1 по 10 из 88

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

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

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

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

    По умолчанию

    Цитата Сообщение от SegaBoy Посмотреть сообщение
    F809 это вывод одиночного символа из регистра C. Там не требуется никаких стоп-кодов.

    0E это не управляющий код - это символ стрелка вправо. Можно заменить 0E 21, на 0E 0E и убедиться в этом.
    В эмуляторе вывод портится из-за последней команды C9 - ret. После неё стек налазит на экран, но программа переходит на адрес 0000 и выполняет новый цикл. С каждым разом всё дальше наезжая стеком на экран. Если в эмуляторе нажать ресет, то программа будет исполняться как и на реале - выведет один символ ‘!’ На экран и повиснет - улетит куда-то в неизвестность.

    Непонятно что хотел топикпастер. Если вывести символ ‘!’ в бесконечном цикле на экран, то последняя команда должна быть не C9 (ret), а C3 0000 (jmp 0000). Если же вывести один раз символ и вернутся в монитор, то C3 F86C - переход к приглашению командной строки.
    Периодически не дает мне покоя данная железка. По итогу откопал в журнале Радио статью про ассемблер и посмотрел как надо. Ну в общем-то мне тут и ответили, а только я прочитать не сумел. Слабак )))
    Смутило другое: в приведенном примере (не суть важно каком) вызов всех подпрограмм, в т.ч. из ПЗУ происходит командой JMP. Так задумано или я опять чего-то не понял?

    Этот РК - прямо как наркотик.. Один раз попробуешь, уже не слезешь так просто...
    Последний раз редактировалось Zidane; 26.10.2023 в 18:49.

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

  3. #2

    Регистрация
    11.04.2023
    Адрес
    г. Ташкент, Узбекистан
    Сообщений
    180
    Спасибо Благодарностей отдано 
    57
    Спасибо Благодарностей получено 
    80
    Поблагодарили
    39 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Zidane Посмотреть сообщение
    Смутило другое: в приведенном примере (не суть важно каком) вызов всех подпрограмм, в т.ч. из ПЗУ происходит командой JMP.
    Если программировать/отлаживать код в Visual Studio, те же CreateWindowEx, SelectObject и т.д. - те же CALL на локальную таблицу из кучи JMP'ов, а JMP'ы уже и ведут в недры Win-API. То есть, принципиально, всё то же самое как в РК, так и в Windows.

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

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

Эту тему просматривают: 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

Ваши права

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