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

User Tag List

Показано с 1 по 6 из 6

Тема: Что-то я Басиц подзабыл, расскажите плиз

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

    По умолчанию Что-то я Басиц подзабыл, расскажите плиз

    Вот Басиц-переменные во время работы, они вот где храняться? Ну то есть вот в программе где-то табличка этих переменных есть, а где соответствие переменной названию? Ну то есть грубо говоря вот работает у меня Басиц, как мне прямо в коде узнать не прерывая его чему у меня какая переменная равна. Типа она там в программе уже где-то определена например LET L=123, вот как мне просматривая память узнать что именно L равен 123.
    Свирепый агрессивно-депрессивный мордовец!
    Не уверен - не напрягай!

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

    Virtual TR-DOS

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

  3. #2

  4. #3
    Master Аватар для GM BIT
    Регистрация
    27.11.2008
    Адрес
    Красноярск
    Сообщений
    747
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Shadow Maker Посмотреть сообщение
    Вот Басиц-переменные во время работы, они вот где храняться? Ну то есть вот в программе где-то табличка этих переменных есть, а где соответствие переменной названию? Ну то есть грубо говоря вот работает у меня Басиц, как мне прямо в коде узнать не прерывая его чему у меня какая переменная равна. Типа она там в программе уже где-то определена например LET L=123, вот как мне просматривая память узнать что именно L равен 123.
    Сразу за бейсик-программой располагаются переменные Бейсика. Их начало можно определить, прочитав значение системной переменной VARS по адресу 23627/23628.

  5. #4
    Guru Аватар для Addison
    Регистрация
    07.01.2006
    Адрес
    г. Москва
    Сообщений
    3,442
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    12
    Поблагодарили
    6 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Shadow Maker Посмотреть сообщение
    Давайте все таки учиться отвечать на вопрос
    Привожу один из вариантов решения твоей задачи, может пригодиться в других подобных случаях.

    И так, у меня нет литературы или мне лень в ней копаться, тогда поступаю просто - пишу простенькую тест программу и проверяю, как организуются переменные.
    Вот для примера листинг такой программы:



    Первые строки 10-30 задают для теста переменные, строка 40 вычисляет адрес начала размещения бейсик переменных, который нам любезно подсказали форумчани, в строках 50-70 в цикле печатается область ОЗУ где размещены переменные.
    Вот результат выполнения программы:



    Думаю не нужно иметь семь пядей во лбу, чтобы понять, что каждый 7 байт - это имя переменной, вернее код символа переменной 97=a, 98=b, 99=c, там встречается 110 - это n, которую мы помимо тестовых переменных задали при вычислении адреса. Далее после имени идут пять байт, в этих байтах значение переменной для числовых оно, наверное, в 5-ти байтной форме, так как мы выбрали целые числа, не превышающие 255, мы их видим напрямую - это 1, 2, 3. Про организацию 5-ти байтной формы представления чисел можно прочесть в любой книжке или поэкспериментировать с заданием переменных и самому разобраться, также можно поступить и со стринговыми значениями переменных.
    Последний раз редактировалось Addison; 18.01.2009 в 23:09.

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

    По умолчанию

    Так, хорошо, теперь пишем длину переменной например 3 символа, и теперь у нас почему-то название переменной получается совсем не такое, как надо, а буквы b и с совсем даже не 98 и 99. Как же поступить пользователю в этом случае, учитывая тот факт, что пользователь-то не знает, какие именно нормальные названия у переменных, он их подгрузил вместе с сохраненной басиц-программой, где нет их задания?
    Свирепый агрессивно-депрессивный мордовец!
    Не уверен - не напрягай!

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

    Virtual TR-DOS

  7. #6
    Guru Аватар для Addison
    Регистрация
    07.01.2006
    Адрес
    г. Москва
    Сообщений
    3,442
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    12
    Поблагодарили
    6 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Shadow Maker Посмотреть сообщение
    Как же поступить пользователю в этом случае?
    Для числовых переменных все просто, перебираешь каждый 7-й байт, а для стринга надо подумать там получается разная длина , щас я задам две переменные посмотрю, покумекаем.

    Добавлено через 4 минуты
    Ха-ха все просто, как на паскале прям...

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

    В тест программу задал:
    a="123456"
    b="1234567"




    Вся задача, жду пятерку по информатике

    Добавлено через 50 минут
    1. Если код символа имени лежит в области заглавных букв - это стринг.
    2. Если код символа имени лежит в области прописных букв - это числовая переменная.

    Для стринга все просто у него имя только однобуквенное, поэтому 2, 3 байт - это длина, зная длину вычисляешь адрес следующей переменной.

    Для числовой переменной известно, что сразу после имени идет либо 0, либо +/-, по ним определяешься сколько символов в имени переменной, делается это путем последовательной проверки, дальше все ясно...
    Последний раз редактировалось Addison; 19.01.2009 в 00:04. Причина: Добавлено сообщение

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

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

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

Похожие темы

  1. Расскажите о ЛУТ
    от Alexey1979 в разделе Для начинающих
    Ответов: 172
    Последнее: 19.01.2015, 21:07
  2. Расскажите о ZX Next
    от dhau в разделе Несортированное железо
    Ответов: 338
    Последнее: 24.01.2014, 01:02
  3. Расскажите мне о тайлах
    от icebear в разделе Графика
    Ответов: 33
    Последнее: 16.06.2006, 05:21
  4. Расскажите мне немного о VGA
    от icebear в разделе Изображение
    Ответов: 12
    Последнее: 01.09.2005, 07:00
  5. Ответов: 2
    Последнее: 11.06.2005, 00:07

Ваши права

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