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

User Tag List

Страница 4 из 8 ПерваяПервая 12345678 ПоследняяПоследняя
Показано с 31 по 40 из 79

Тема: Ассемблер. Первые шаги.

  1. #31
    Banned Аватар для psndcj
    Регистрация
    22.02.2005
    Адрес
    triebkraft
    Сообщений
    712
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    rst #10 выводит символ в канал/поток (ну в данном случае на экран) и видимо в процедуре регистры по ходу портятся... надо просто переставить местами операторы:

    print:
    ld a,(de)
    inc de
    and a
    ret z
    rst #10
    jr print

    выглядит конечно неочень красиво такая конструкция...

    а такто если уж печатать с помощью ПЗУ, то проще пользоваться готовой процедурой по адресу 8252 - в регистрах DE - адрес текста, в BC - длина строки. Длину строки може посчитать сам ассемблер:

    message1 db 'пример'
    message1_len equ $-message1

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

  3. #32
    Activist Аватар для Retrograd
    Регистрация
    29.12.2006
    Адрес
    Одесса
    Сообщений
    435
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    2 Mig'95
    Для безопасного вызова функции. Грешу, забыл в конце, перед RET добавитб pop.

    2 psndcj
    Спасибо! Все стало ясно.

    Добавлено через 1 минуту
    Цитата Сообщение от psndcj Посмотреть сообщение
    а такто если уж печатать с помощью ПЗУ, то проще пользоваться готовой процедурой по адресу 8252
    А какие способы печати еще есть?
    Последний раз редактировалось Retrograd; 08.07.2007 в 11:24. Причина: Добавлено сообщение
    ZXM-Phoenix 1024 + ZXKit1, Sinclair ZX Spectrum+, АТМ 2 TURBO+, PentEVO rev. C, Speccy2007, Commodore C64, Amiga A1200, Amiga A500, MSX2, Atari 800XL, Atari 130XE + SDrive, Atari ST, Atari Jaguar, Altera DE1,

    +Небольшая стоечка в серверной комнате.

  4. #33
    --- Аватар для Shadow Maker
    Регистрация
    01.03.2005
    Адрес
    Саранск
    Сообщений
    5,824
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    239
    Поблагодарили
    101 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В смысле? Вот там у тебя LD D,40H;(2) Вот XPOS поставь 0, и будет у тебя печатать с 4000, с самого начала экрана.
    Свирепый агрессивно-депрессивный мордовец!
    Не уверен - не напрягай!

    Не сдавайся. Дыши?

    Virtual TR-DOS

  5. #34
    Activist Аватар для Retrograd
    Регистрация
    29.12.2006
    Адрес
    Одесса
    Сообщений
    435
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    а с точки зрения оптимизации кода и быстродействия: разве через RST печатать не красИвее?
    ZXM-Phoenix 1024 + ZXKit1, Sinclair ZX Spectrum+, АТМ 2 TURBO+, PentEVO rev. C, Speccy2007, Commodore C64, Amiga A1200, Amiga A500, MSX2, Atari 800XL, Atari 130XE + SDrive, Atari ST, Atari Jaguar, Altera DE1,

    +Небольшая стоечка в серверной комнате.

  6. #35
    Activist Аватар для Retrograd
    Регистрация
    29.12.2006
    Адрес
    Одесса
    Сообщений
    435
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А как можно взглянуть через STS что происходит при вызове RST#10?
    ZXM-Phoenix 1024 + ZXKit1, Sinclair ZX Spectrum+, АТМ 2 TURBO+, PentEVO rev. C, Speccy2007, Commodore C64, Amiga A1200, Amiga A500, MSX2, Atari 800XL, Atari 130XE + SDrive, Atari ST, Atari Jaguar, Altera DE1,

    +Небольшая стоечка в серверной комнате.

  7. #36
    --- Аватар для Shadow Maker
    Регистрация
    01.03.2005
    Адрес
    Саранск
    Сообщений
    5,824
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    239
    Поблагодарили
    101 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от mig'95 Посмотреть сообщение
    Дык к моменту полного заполнения экрана там уже будет не LD D,40H, а LD D,50H.. При каждом переходе в следующий сегмент экрана туда будет засылаться значение равное текущему+8..
    Ой бедаааа...
    Вместо LD D,40H ;(2) пишем:
    Код:
    L1          LD A,#40
                CP #51
                JR C,L2
                LD A,#38
    L2          ADD A,8
                LD (L1+1),A
                LD D,A
    Добавлено через 5 минут
    Цитата Сообщение от Retrograd Посмотреть сообщение
    а с точки зрения оптимизации кода и быстродействия: разве через RST печатать не красИвее?
    Есть оптимизация по размеру, есть оптимизация по скорости. В зависимости от назначения и от требований, твоя меньше по размеру, но медленнее идет печать. Если уж пользоваться ПЗУ, то пользуйся процедурой, которую CJ сказал, вот уж реально оптимизация
    Последний раз редактировалось Shadow Maker; 08.07.2007 в 22:12. Причина: Добавлено сообщение
    Свирепый агрессивно-депрессивный мордовец!
    Не уверен - не напрягай!

    Не сдавайся. Дыши?

    Virtual TR-DOS

  8. #37
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,258
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    84
    Поблагодарили
    36 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Взять и протрассировать. Главное ловить момент физической записи на экран- может перезатираться обновлением экрана у СТСа и нифига не будет видно

  9. #38
    Banned Аватар для psndcj
    Регистрация
    22.02.2005
    Адрес
    triebkraft
    Сообщений
    712
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    лучше не смотреть как RST#10 работает =) уж больно жутко с точки зрения оптимальности... просто в ПЗУ совсем другая тема - эта процедура печатает символ в любой поток/канал открытый - учитывая что обычно ей пользуются только для вывода на экран смысла в ней особого нет (ну разве что для экономии памяти)... хотя тут тоже вопрос - учитывая что надо атрибуты, номер канала (или потока) устанавливать, нельзя в нижние 2 строки (по умолчанию) печатать... на любителя короче - лично я всегда использую хотя бы самую простейшую, но свою печаталка =)

    делал на minigame игрушку - CBOX 1k - там блочный экран (типа текстового, 7 видов спрайтов вроде) - так даже в 1к нет особого смысла использовать ПЗУ...

  10. #39
    --- Аватар для Shadow Maker
    Регистрация
    01.03.2005
    Адрес
    Саранск
    Сообщений
    5,824
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    239
    Поблагодарили
    101 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от mig'95 Посмотреть сообщение
    А разве в этом случае уже второй символ строки не уйдёт из позиции 4001H в позицию 4801H?
    И правда, беда какая-то..
    Ну блин, ты ж написал сам что буш проверять на переполнение A, я тебе и написал только ту часть, которая у тебя непонятки вызывала...
    Свирепый агрессивно-депрессивный мордовец!
    Не уверен - не напрягай!

    Не сдавайся. Дыши?

    Virtual TR-DOS

  11. #40
    Master Аватар для Splinter
    Регистрация
    04.07.2005
    Адрес
    Нижний Тагил
    Сообщений
    842
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Люди, дайте оптимизированую процедурку UP_HL 8)

Страница 4 из 8 ПерваяПервая 12345678 ПоследняяПоследняя

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

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

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

Похожие темы

  1. SjASMPlus Z80 кросс ассемблер
    от Aprisobal в разделе Программирование
    Ответов: 1663
    Последнее: 19.06.2021, 01:36
  2. Первые итоги
    от CityAceE в разделе Форум
    Ответов: 25
    Последнее: 15.07.2005, 08:03
  3. sjasm - первые глюки
    от breeze в разделе Программирование
    Ответов: 9
    Последнее: 24.03.2005, 10:51
  4. ZX ассемблер (и не только?) с библиотеками
    от shade в разделе Программирование
    Ответов: 24
    Последнее: 04.03.2005, 19:43

Ваши права

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