|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.05.2013, 22:09 | #1 |
Пользователь
Регистрация: 11.04.2012
Сообщений: 15
|
Вставка Assembler.Работа с символами. Проблема с пересылкой символа
Доброго времени суток.
Пишем на C+ Builder 6 По заданию нужно постороить вторую строку символов из матрицы символов 3х4. Код: Код:
|
21.05.2013, 11:56 | #2 |
Форумчанин
Регистрация: 29.01.2013
Сообщений: 319
|
Код:
Последний раз редактировалось FataLL; 21.05.2013 в 12:08. |
21.05.2013, 18:11 | #3 |
Пользователь
Регистрация: 11.04.2012
Сообщений: 15
|
|
22.05.2013, 10:04 | #4 |
Форумчанин
Регистрация: 29.01.2013
Сообщений: 319
|
Фактически, можно просто прибавить edi 4. Но ошибка в другом
Код:
Код:
Код:
|
22.05.2013, 10:06 | #5 |
Форумчанин
Регистрация: 29.01.2013
Сообщений: 319
|
Кстати, зачем тебе ассемблер? Спортивный интерес?
Код:
|
22.05.2013, 22:51 | #6 | |
Пользователь
Регистрация: 11.04.2012
Сообщений: 15
|
Цитата:
ТОлько я что то не понял, почему с AnsiString проблем не было, а c char проблемы ? А насчет угловых скобок - насколько я понял в них указывается адрес, а в круглых само значение. |
|
22.05.2013, 22:55 | #7 | |
Пользователь
Регистрация: 11.04.2012
Сообщений: 15
|
Цитата:
Еще если не сложно объясни пожалуйста зачем SetLength. Насколько я понял это я просто обрезаю строку до 4ех символов для результата, что бы не было всякого мусора из ОЗУ. Еще момент с s[i][j]=Memo1->Lines->Strings[i][j+1]; зачем j+1 ? не могу понять. А так же еще не совсем понимаю команды pusha и popa. Это загрузка из стека в флаги, а в конце выгрузка - зачем это делать ? |
|
23.05.2013, 17:30 | #8 | |||
Форумчанин
Регистрация: 29.01.2013
Сообщений: 319
|
Цитата:
Про скобки: ты же не на чистом ассемблере пишешь, а на встроенном. Сначала эти строки обрабатываются компилятором С++. Поэтому есть некоторые расхождения с чистым ассемблером. В данном случае, ставишь скобки или нет - код генерируется один. Почему так? Точнее не могу сказать, экспериментируй. Цитата:
Цитата:
Эти две команды сохраняют (pusha) и восстанавливают (popa) содержимое всех регистров и состояние флагов в (из) стека. Видимо, это сделано для страховки, чтоб ничего не "испортить" для функции. На самом деле, без них можно обойтись, главное не испортить регистры bp и sp. Если предполагается менять их содержимое, то надо позаботиться о восстановлении, как было до входа в твой код. |
|||
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с символами. Проблема с пересылкой символа | Jawner | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 1 | 20.05.2013 18:16 |
Вставка символа | Waqq | Помощь студентам | 4 | 03.09.2011 21:11 |
Вставка символа:) | WizarD.89 | Microsoft Office Excel | 13 | 03.05.2011 21:47 |