Текущий архив: 2003.10.16;
Скачать: CL | DM;
Вниз
Массив строк в asm Найти похожие ветки
← →
Daniel (2003-09-28 17:37) [0]Нужно по номеру месяца вывести строку его названия ("январь", "февраль" и т.д.). Как на ассемблере сделать это красиво? Есть или массивы строк в асм?
← →
Zacho © (2003-09-28 18:54) [1]Зачем на асме ? И куда именно вывести ?
> Есть или массивы строк в асм?
А любую документацию по системе команд intel x86 почитать не пробовал ? Похоже, ты вообще не представляешь, что такое ассемблер. Или просто прикалываешься.
← →
Daniel (2003-09-28 18:59) [2]Вывести в консоль.
Вопрос только в том, как сделать это _красиво_.
Единственная идея - располагать подряд в памяти строки фиксированной длины с этими словами, тогда встает проблем лишних пробелов.
← →
Zacho © (2003-09-28 19:17) [3]Вот несколько стандартных решений:
1.В первом байте каждой строки - ее длина. (как в Паскале)
2.Строка заканчивается байтом с некоторым спец. значением, например 0. (как в С)
3.Создается таблица с адресами и/или длинами строк.
А что по твоему красиво ?
← →
SergP © (2003-09-28 20:02) [4]
> Zacho © (28.09.03 19:17) [3]
> Вот несколько стандартных решений:
> 1.В первом байте каждой строки - ее длина. (как в Паскале)
> 2.Строка заканчивается байтом с некоторым спец. значением,
> например 0. (как в С)
> 3.Создается таблица с адресами и/или длинами строк.
> А что по твоему красиво ?
А тогда какой смысл делать это на ассемблере... Это же извращение полное.
А если уже на ассме то лучше делать все строки одинаковой длины, при этом не понадобится никакая таблица, да и лишней памяти это не займет, возможно даже короче будет из-за отсутствия таблицы и прочего хлама...
И работать быстрее будет...
← →
Zacho © (2003-09-28 20:44) [5]
> SergP © (28.09.03 20:02) [4]
> А тогда какой смысл делать это на ассемблере... Это же извращение
> полное.
Почему извращение ? Это стандартные способы работы со строками (или с любыми другими данными произвольного размера). Просто на язаках высокого уровня все то же самое за тебя сделает компилятор, а на асме - придется писать самому.
Можно и одинаковой длины строки делать, у каждого способа есть свои достоинства и недостатки, вопрос только в том, какие критерии "красивости" у автора вопроса.
← →
SergP © (2003-09-29 07:16) [6]
> Zacho © (28.09.03 20:44) [5]
>
> Почему извращение ? Это стандартные способы работы со строками
> (или с любыми другими данными произвольного размера). Просто
> на язаках высокого уровня все то же самое за тебя сделает
> компилятор, а на асме - придется писать самому.
> Можно и одинаковой длины строки делать, у каждого способа
> есть свои достоинства и недостатки, вопрос только в том,
> какие критерии "красивости" у автора вопроса.
Извращением я назвал только именно такую реализацию сабжа для 12 месяцев, а не для общего случая...
← →
MBo © (2003-09-29 07:28) [7]на asm сам переведи
procedure TForm1.Button1Click(Sender: TObject);
var
st:tsystemtime;
lc:Dword;
fmt:array[0..5] of Char;
DateStr:array[0..10] of Char;
begin
GetSystemTime(st);
lc := (SUBLANG_NEUTRAL shl 16) or LANG_RUSSIAN;
fmt:="MMMM";
GetDateFormat(lc,0,@st,fmt,DateStr,10);
ShowMessage(DateStr);
end;
← →
Е-Моё имя © (2003-09-29 07:47) [8]гыгыгыгыгыгы
Страницы: 1 вся ветка
Текущий архив: 2003.10.16;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.023 c