Поиск:

Ответ в темуСоздание новой темы Создание опроса
> help please 
:(
    Опции темы
Nestap
  Дата 17.11.2009, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



привет всем,

что тут не провельно?
еррор нету..

дожен быть такой резултат :

S3="AB123C"


Код

.MODEL    SMALL
.STACK    100h
.DATA 
         S1 DB 3,"ABC"
         S2 DB 3,"123"
         S3 DB 6 DUP(?)
         I DB 2 ; eto index o kuda doljen s2 stavitsa
.CODE
      start:
               mov  ax,@data
               mov  ds,ax
               mov  es,ax
               mov  bx,1
       
mov si,OFFSET S1
mov di,OFFSET S3
mov cx,3
inc si
push bx
mov bx,offset I; vot I
muta:
mov al,[si]
mov [di],al
inc si
inc di
cmp di,si
jz next
loop muta
next:
push si
mov si, offset S2
inc si
muta1:
mov al,[si]
mov [di],al
inc si
inc di
loop muta1
muta2:
pop si
mov al,[si]
mov [di],al
inc si
inc di
loop muta2

pop bx
mov  dx,OFFSET S3
mov  ah,40h
mov cx,6
int  21h 
   END  start


Это сообщение отредактировал(а) Nestap - 17.11.2009, 15:32
--------------------
<?    echo "Nestap";?>
PM WWW ICQ Skype Jabber   Вверх
Pitlord
Дата 17.11.2009, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



А зачем стоят inc si на 18-й и 32-й строчках? Зачем нужен код на 26-й и 27-й строчках (по-моему, условие там никогда не выполнится)? Перед циклом muta1 в CX Вы вроде бы должны снова указать количество loop'ов (равно как и перед muta2).

Я язык ассемблера уже плохо помню, так что извините, если что не так.

Это сообщение отредактировал(а) Pitlord - 17.11.2009, 16:27
PM MAIL   Вверх
Nestap
Дата 17.11.2009, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Pitlord

18 i 32 doljni stob pereiti c "ABC" i "123"

         S1 DB 3,"ABC"
         S2 DB 3,"123"

esli bez inc si togda on pervii raz budet  3 i 3 a eta LENGTH S1 i S2

a stroka 26 27 
eta cmp dlea tavo stob srovniti s I

  I DB 2 ; eto index o kuda doljen s2 stavitsa


--------------------
<?    echo "Nestap";?>
PM WWW ICQ Skype Jabber   Вверх
Pitlord
Дата 17.11.2009, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(Nestap @  17.11.2009,  18:36 Найти цитируемый пост)
eta cmp dlea tavo stob srovniti s I

Что сравнить с I? У Вас там сравнение DI с SI.

Мне кажется, первая ошибка на 17-й строке, там должно быть типа
Код

MOV CX, [I]

т.е. сначала скопировать в S3 первые I символов.

Потом, думаю, перед 33-й строкой должно быть типа
Код

MOV CX, 3

т.е. Вы копируете S2 в S3

И, наконец, перед 39-й должно быть 
Код

XOR CX, CX
MOV CL, [S1]
SUB CL, [I]

т.е. длина S1 минус индекс

Вроде как-то так, но возможности проверить сейчас нет.

Это сообщение отредактировал(а) Pitlord - 17.11.2009, 19:23
PM MAIL   Вверх
Nestap
Дата 17.11.2009, 23:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Pitlord


ups

doljen biti :


cmp si,bx

20 : mov bx,offset I; vot I 

a etot cod:

Код

XOR CX, CX ; clear cx
MOV CL, [S1] ; copy s1 to cl ?
SUB CL, [I] ; i eta shto dast? eta v цыкл весь код?

--------------------
<?    echo "Nestap";?>
PM WWW ICQ Skype Jabber   Вверх
Pitlord
Дата 18.11.2009, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(Nestap @  17.11.2009,  23:16 Найти цитируемый пост)
cmp si,bx

Это бессмыслица какая-то. Зачем сравнивать SI с адресом, где лежит значение индекса?

Цитата(Nestap @  17.11.2009,  23:16 Найти цитируемый пост)
i eta shto dast? eta v цыкл весь код?

Изучите что такое 
Код

LOOP метка

В CX перед циклом должно лежать количество итераций (повторений) цикла.

Это сообщение отредактировал(а) Pitlord - 18.11.2009, 19:15
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

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

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


 




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


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

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