Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите решить задание 
:(
    Опции темы
Geniy
  Дата 16.11.2005, 13:48 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Помогите пожалуйста сделать это задание

Некий программист 2-го курса, изучая язык С/С++ реализовал и откомпиллировал следующую программу:

#include <conio.h>

Код

void main ()
{
clrscr ();
textcolor (BLUE);
cprintf ("Hello, wordl!");
}


Некий программист 3-го курса, дизассемблировал соответствующий EXE-модуль и,
по совету учителя нашел в нем следующий участок:

Код

0000047B: BA5600 mov dx,00056 ;" V"
0000047E: 2E8E1E8D02 mov ds,cs:[0028D]
00000483: E8EAFF call 000000470 -------- (1)
00000486: B80300 mov ax,00003 ;" ♥"
00000489: 50 push ax
0000048A: E89A00 call 000000527 -------- (2)
0000048D: 0000 add [bx][si],al
0000048F: 0100 add [bx][si],ax
00000491: 55 push bp
00000492: 8BEC mov bp,sp
00000494: E86208 call 000000CF9 -------- (3)
00000497: 6A01 push 001
00000499: E88608 call 000000D22 -------- (4)
0000049C: 59 pop cx
0000049D: 68AA00 push 000AA ;" к"
000004A0: E8FE09 call 000000EA1 -------- (5)
000004A3: 59 pop cx
000004A4: 5D pop bp
000004A5: C3 retn
000004A6: 55 push bp
000004A7: 8BEC mov bp,sp
000004A9: 833EB80020 cmp w,[000B8],020 ;" "
000004AE: 7505 jne 0000004B5 -------- (6)


Задание: изменить цвет выводимого сообщения на зеленый.
  Вверх
Neitron
Дата 16.11.2005, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 580
Регистрация: 3.10.2005
Где: Москва

Репутация: нет
Всего: 5



Ты не в тот раздел обратился.
А вообще предполагаю что нужно
Эту строку
Код

00000497: 6A01 push 001

Заменить на эту
Код

00000497: 6A01 push 002

Тогда цвет станет зеленым.


--------------------
Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей.
Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ
PM MAIL   Вверх
vadims
Дата 16.11.2005, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 305
Регистрация: 8.6.2005

Репутация: нет
Всего: 17



Надо в строке

00000497: 6A01 push 001

заменить 001 на 002

PS

Пока писал уже ответили smile

Это сообщение отредактировал(а) vadims - 16.11.2005, 14:11


--------------------
Cpu not found ! Press any key for software emulation.
PM MAIL   Вверх
Geniy
Дата 16.11.2005, 19:37 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Большое вам спасиба за ответы!
Но не могли бы вы обяснить мне юному программисту
почему именно так?
  Вверх
sergejzr
Дата 16.11.2005, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: нет
Всего: 360



Модератор: Название темы должно отражать ее суть!


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Neitron
Дата 18.11.2005, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 580
Регистрация: 3.10.2005
Где: Москва

Репутация: нет
Всего: 5



Цитата(Geniy @ 16.11.2005, 19:37)
Большое вам спасиба за ответы!
Но не могли бы вы обяснить мне юному программисту
почему именно так?

Потому что это
Код
push 001 
call 000000D22

равносильно:
Код
textcolor (BLUE);
А вот это
Код
push 002 
call 000000D22
равносильно
Код
textcolor (GREEN);

За подробностями в хелп по ассемблеру и Си++


--------------------
Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей.
Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для начинающих | Следующая тема »


 




[ Время генерации скрипта: 0.0834 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.