Форум
» Назад на решение задач по физике и термеху
Регистрация | Профиль | Войти | Забытый пароль | Присутствующие | Справка | Поиск

» Добро пожаловать, Гость: Войти | Регистрация
    Форум
    Информационные технологии
        Решение задач по Ассемблеру
Отметить все сообщения как прочитанные   [ Помощь ]
» Добро пожаловать на форум "Информационные технологии" «

Переход к теме
<< Назад Вперед >>
Несколько страниц [ 1 2 3 4 5 6 7 8 9 10 11 12 ]
Модераторы: paradise, KMA
  

MnBMnB


Новичок

всем спасибо, задачу я решил

Всего сообщений: 2 | Присоединился: январь 2010 | Отправлено: 18 янв. 2010 13:56 | IP
sharkid


Новичок

Ребят помогите решить задачу не понимаю ни черта в этом языке.
Задача: дан массив из 20 чисел.Найти в этом массиве все числа,содержащие четное число единиц и создать из них новый массив.

Всего сообщений: 1 | Присоединился: январь 2010 | Отправлено: 20 янв. 2010 19:29 | IP
Splain


Новичок

ОГРОМНАЯ просьба помочь-сделать надо совсем чут ьчуть-испарвить маленькие недочёты!вобщем вот задача-С клавиатуры вводится 5 символов. Нужно посчитать в регистре DX, сколько среди них в сумме точек и запятых.

я решил её следующим образом-
;===[ Начало сегмента кода ]============================================
mycode segment 'code'
org 100h ; Обязательная директива ТОЛЬКО для COM-файлов
START: ;---[ Точка старта ]---------------------------------------------------------------------

; обнуляем dx
mov dx, 0

; вводим 5 символов
 
mov ah, 01h
int 21h
mov byte[DS:0], al

mov ah, 01h
int 21h
mov byte[DS:1], al

mov ah, 01h
int 21h
mov byte[DS:2], al

mov ah, 01h
int 21h
mov byte[DS:3], al

mov ah, 01h
int 21h
mov byte[DS:4], al

mov bx, 0
mov cx, 5

MYLOOP:

 cmp byte[bx], 2Eh        ;   если введённый символ ','    
 jnz METKA    
 inc dx                   ;   то увеличиваем dx на 1    

 METKA:

 
 cmp byte[bx], 2Ch        ;   если введённый символ '.'  
 jnz METKA2    
 inc dx                   ;   то увеличиваем dx на 1  

 METKA2:
  inc bx
 
LOOP MYLOOP

;---[ Стандартное завершение программы ]----------------------------------------
mov AX, 4C00h
int 21h

;===[ Начало сегмента данных ]==========================================
; ...




на что препод ответил-
В целом все работает корректно, но есть замечания:
1) если понадобится вводить не 5, а 125 символов, вы будете каждый раз переписывать программу? нужно сделать один раз универсально.1

2) у вас присутствуют некие константы, с которыми вы проводите сравнение. А что если на какой-то машине будет установлена иная кодировка символов? Здесь тоже нужно делать универсально.



большая просьба помочь исправить недочёты-от этого решается экзамен!)
сделать это надо до 7-8 утра!!вот такая сложная ситуация)))поэтому буду очень благодарен за помощь..!



(Сообщение отредактировал Splain 23 янв. 2010 2:05)

Всего сообщений: 6 | Присоединился: январь 2010 | Отправлено: 23 янв. 2010 1:40 | IP
Splain


Новичок

всё спасибо не надо

Всего сообщений: 6 | Присоединился: январь 2010 | Отправлено: 23 янв. 2010 10:14 | IP
SergioVelaskes



Новичок

всем привет... помогите плиз.....задача в принципе легкая...но переклинило и все тут....ни строчки не могу написать........

задача:

напишите программу заменяющую в строке каждый символ "*" на символ "-"

Всего сообщений: 1 | Присоединился: февраль 2010 | Отправлено: 3 фев. 2010 13:46 | IP
banderlog



Новичок

программа позволяет менять местами группы массива состоящая из 20 элементов


uses crt;
const
NA = 20;
var
a: array[1..NA] of integer;
 N,i: byte;
begin
N:= NA;
 clrscr; randomize;
 writeln('Array:');
 for i:=1 to N do
 begin
 a:= random(10);
   write(a:4);
 if i mod 5 = 0 then writeln;
 end;
 writeln; writeln;
 textcolor(lightgray);
 writeln('Result array:');

 asm
   lea si,a
   xor dx,dx
   mov dl,N
 shr dl,1 {v dl smeshenie dlya 1 gruppi}
   add si,dx
   add si,dx{smeshaemsya na 2 gruppu}
   mov cx,dx{v cx N/4}
   shr cx,1
   @cycle1:
   sub si,2
     mov ax,[si]
     push ax {pomeshaem gruppu v stack}
   inc ch
     cmp ch,cl
   jne @cycle1

   lea si,a
   add si,dx
   add si,dx
   add si,dx
   add si,dx {smeshaemsya na 4 gruppu}
   mov cx,dx
   shr cx,1
   @cycle2:
   sub si,2
     mov ax,[si]
     push ax    {pomeshaem gruppu v stack}
   inc ch
     cmp ch,cl
   jne @cycle2

   lea si,a
   add si,dx {smeshaemsya na 1 gruppu}
   mov cx,dx
   shr cx,1
   @cycle3:
   sub si,2
     mov ax,[si]
     push ax {pomeshaem gruppu v stack}
   inc ch
     cmp ch,cl
   jne @cycle3

   lea si,a
   add si,dx
   add si,dx
   add si,dx {smeshaemsya na 3 gruppu}
   mov cx,dx
   shr cx,1
   @cycle4:
   sub si,2
     mov ax,[si]
     push ax {pomeshaem gruppu v stack}
   inc ch
     cmp ch,cl
   jne @cycle4

   lea si,a
   xor cx,cx
   mov cl,N {prohodim ves massiv}
   @cycle5:
     pop ax {kladem v massiv zna4eniya iz stack'a}
     mov [si],ax
   add si,2
   inc ch
     cmp ch,cl
   jne @cycle5
end;

 for i:=1 to N do
 begin
 write(a:4);
 if i mod 5 = 0 then writeln;
 end;
 readkey;
end.

Всего сообщений: 3 | Присоединился: ноябрь 2009 | Отправлено: 3 фев. 2010 13:57 | IP
banderlog



Новичок

если кому надо у меня есть файловый менеджер на определенные темы написанный на асм. Там вообщем такое решение
1) написан файловый менеджер на 4 задачи
2) первая задача написана на паскале,
   вторая на начало паскаль потом асм,
   третья начало асм потом паскаль,
   четвертая полностью на асм
3) есть 3 варианта задач


если кому надо пишите могу скинуть ну или вот моя почта пишите туда gostuhinav@mail.ru

Всего сообщений: 3 | Присоединился: ноябрь 2009 | Отправлено: 3 фев. 2010 14:06 | IP
Konung


Новичок

Всем привет! Прошу помочь решить две задачи по Ассемблеру (было три, одну сам уже сделал, с остальными маюсь).

Задача адын:
Дана матрица [4,4]. Найти среднеарифметическое элементов третьей строки. Результат вывести на экран.

Задача вторая:
Задан массив целых чисел: 200,300,15,1,12,5,27,14,30,4
Сформировать новый массив, в котором элементы расположены по возрастанию. Исходный массив и сформированный вывести на экран с соответствующим текстом.

Третья написанная задача:
Задан массив целых чисел из 10 элементов: 100,200,130,12,15,60,50,70,80,90
Найти разность между первым и последним элементом массива.
Результат с сообщением вывести на экран. (сказали вроде правильно сделал)

С первыми двумя запутался по самое не могу. Теперь туплю и пытаюсь из одной задачи подставить в другую...блин преподаватель посмотрел и ужаснулся.

Знающий народ, помогите пожалуйста. Буду премного благодарен.

Всего сообщений: 1 | Присоединился: март 2010 | Отправлено: 11 марта 2010 21:38 | IP
Sevand



Новичок

люди помогите плиз, в ассамблере начинающий,можно сказать полный нубнемогу решить эти задачи
заранее оч благодарен

{y = |x-5|, если x > 0
{y = x(в квадрате)+4x-3, если x <=(меньше либо равно)0

x - должен быть в регистре C
y - должен быть в регистре D

а так же  

{y = (x-1)(в квадрате), если x > 1
{y = (x+1)(в квадрате), если x <=(меньше либо равно)1

x - должен быть в регистре C
y - должен быть в регистре D

Всего сообщений: 1 | Присоединился: март 2010 | Отправлено: 18 марта 2010 19:51 | IP
Krestokril


Новичок

Здравствуйте. Можете помочь решить задачу к сессии.  Заданны три числа X,Y,Z.  Если вычислить L=X-Y*Z*B.  В противном случае вычислить  L=(X конъюнкция Y) дизъюнкция Z.  помогите пожалуйста!!!! Заранее спасибо.))

Всего сообщений: 1 | Присоединился: март 2010 | Отправлено: 24 марта 2010 18:50 | IP

Отправка ответа:
Имя пользователя   Вы зарегистрировались?
Пароль   Забыли пароль?
Сообщение

Использование HTML запрещено

Использование IkonCode разрешено

Смайлики разрешены

Опции отправки

Добавить подпись?
Получать ответы по e-mail?
Разрешить смайлики в этом сообщении?
Просмотреть сообщение перед отправкой? Да   Нет
 

Переход к теме
<< Назад Вперед >>
Несколько страниц [ 1 2 3 4 5 6 7 8 9 10 11 12 ]

Форум работает на скрипте © Ikonboard.com