Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Помогите написать 2 програмки(очень простые)я не могу не как  (Прочитано 11813 раз)
0 Пользователей и 1 Гость смотрят эту тему.
PaPa_CaRLO
Гость
« : 05-11-2004 18:24 » 

Люди очень надо помогите для профи вроде Вас это не сложно.
2 задания...
1 задание
В массиве слов (байтов) указанного размера над каждым элементом проде-
лать операцию: сбросить два старших бита в элементе, если в нём трижды
встречается образец из трёх битов.
(Пример: 101 три раза встречается в слове 1101011110111100, поэтому оно
превращается в 00010111101111100).
2 задание

Если обе строки чётной длины, то сцепить первую половину первой строки
со второй половиной второй строки. Из полученной строки удалить все
цифры и сосчитать количество удалений и длину новой строки.
("Первая строка пуста", "Вторая строка пуста", "Первая строка нечётной
длины", "Вторая строка нечётной длины", "В новой строке нет цифр").
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 08-11-2004 09:42 » 

1.
Код:

  mov dx,input_word ; input data
  mov cx,16 ; bits in word
loop{
  mov ax,dx
  xor ax,0005h ; match patern
  and ax,0007h ; patern mask
  jnz skip
  inc ch ; hits counter
  cmp ch,3
  jz ok
skip{
  shr dx
  dec cl
  jnz loop
fail{ ...

ok{ ...


2. Если первая задачка была интересной, то над этой ты уж сам поработай.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
PaPa_CaRLO
Гость
« Ответ #2 : 08-11-2004 13:56 » 

То есть получается это 1или2 задачка что то я не понял не множко??Первую вроде бы как сделал.........
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #3 : 08-11-2004 16:34 » 

RXL, Вот в этом отрывке:
Код:

  xor ax,0005h ; match patern
  and ax,0007h ; patern mask
  jnz skip

Если у тебя  ax=5 или ax=1 или ax=4 и даже ax=0 , будет один и тот же эффект работы. А задумка классная.

PaPa_CaRLO Это не полное решение первой задачи.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 08-11-2004 17:01 » 

Finch, поясни, пожалуйста, в чем у меня дефект?

101 XOR 101 = 000
001 XOR 101 = 100
100 XOR 101 = 001
000 XOR 101 = 101

Ну и что тут не так? При совпадении битов (первый пример) - все нули, иначе нет.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #5 : 08-11-2004 17:11 » 

RXL, Извини, я маленько не туда думал. Все верно.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 08-11-2004 17:27 » 

В принципе, можно сделать более понятно:

mov ax,dx
and ax,0007h
cmp ax,5
jnz skip

И немного соптимизировать:

mov cx,16-_длина_патерна_
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #7 : 08-11-2004 17:36 » 

Ну в принципе в cx нужно загонять не 16, а 14 потому что конечные два значения уже не будут иметь смысл. Так как они будут меньше 3 бит
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #8 : 08-11-2004 17:49 » 

Угу : mov cx,17-_patern_length_
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Mouse
Молодой специалист

ru
Offline Offline

« Ответ #9 : 09-11-2004 06:11 » 

PaPa_CaRLO, а ты случайно не из славного института МГИЭМ?  Ага
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines