Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на Assembler

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133

Открыть новую тему     Написать ответ в эту тему

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Обсуждаются все вопросы, связанные с программированием на Ассемблере как общего так и конкретного характера.
 
важное примечание
для тех кто считает, что здесь место халявных исполнений курсовых и лабораторных работ.
тут обычно помогают тем, кто сам хоть что-то пытается понять и сделать, но что-то не понимает, что-то не получается...
ведь ассемблер изучают и задачки на нём дают обычно не менеджерам по продажам и даже не всем физ.-мат. специальностям
вы сами избрали этот путь? вот и идите по нему сами, ножками... с ручками и с головой...
 
короче, тут не сборище придурков-альтруистов, которым нечего делать и они ждут-не дождутся когда вы их попросите
что-то сделать _за_ вас
если позарез надо и вы даже готовы заплатить, тогда вам сюда
удачи
 
некоторые ресурсы
http://www.wasm.ru/ Самый популярный русскоязычный ресурс. https://wasm.in/
Ассемблер - книги (ASM, Assembler)
 
Просьба все большие листинги оформлять тегом more.
 
если вам вдруг не отвечают или ответ вас не устраивает
и вообще полезно прочитать всем спрашивающим

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 01:42 29-11-2006 | Исправлено: akaGM, 17:44 11-06-2020
Ravenice



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день, есть задача:
"Даны два массива A и B различной размерности.
Сформировать третий массив С по правилу: сначала поместить в него элементы
Ci=MaxA-Bi, а затем поместить в массив C элементы Ck=MaxB-Ai"
 
Всё это сделать с помощью процедур Т__Т
 
Тест такой:
Пусть а имеет значение 1,4,8,3
Пусть b имеет значение 2,5,6
Результат:  
с=(8-2),(8-5),(8-6),(6-1),(6-4),(6-8),(6-3), т.е. с=6,3,2,5,2,-2,3
 
Код двух массивов, размерность и элементы задаёт пользователь:
Подробнее...
 
А максимальное число из одного массива:
Подробнее...
Как код с определением максимума слить с предыдущим, для двух массивов, причём максимум должен непременно быть отдельной процедурой?
Я сначала думал подставить к процедуре ввода, но сказали неправильно
По идее сначала вводим данные, потом определяем максимум и заносим в отдельную переменную, после чего считается Ci и Ck, а потом вывод, но соображалки не хватает уже)

Всего записей: 20 | Зарегистр. 30-08-2006 | Отправлено: 08:51 13-02-2008 | Исправлено: Ravenice, 09:00 13-02-2008
Abs62



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ravenice

Цитата:
Как код с определением максимума слить с предыдущим, для двух массивов, причём максимум должен непременно быть отдельной процедурой?

Ну, примерно так:

Код:
Max   proc   near
; Вход:
;   ds:si - адрес массива
;   cx - размер массива
; Выход:
;   al - максимальное значение
   cld
   lodsb
   mov    bl,al
   sub    cx,1
   jle    @@3
@@1:
   lodsb
   cmp    bl,al
   jle    @@2
   mov    bl,al
@@2:
   loop    @@1
@@3:
   mov    al,bl
   ret
Max   endp
 
 
 
PS.
Код:
loop met22  
jmp met23  
met22: jmp met21  
met23: ret  
 
 
Это всё специально вместо "loop met21" написано, чтобы сложнее читать было?


----------
0 программистов ругал сердитый шеф
Потом уволил одного, и стало их FF

Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 19:40 13-02-2008
Ravenice



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Abs62
Это всё специально вместо "loop met21" написано, чтобы сложнее читать было?

Сорь, нет, это результат сидения перед моником на 7 паре
з.ы. А разве можно так далеко прыгать?
 
Благодарю за помощь
Теперь получились ввод\вывод, нахождение и вывод максимума
 
Максимум сделал чуть по другому (может кому пригодится... ), работает  
(за cld и lodsb, которые мы похоже и не будем проходить меня бы )
 
max_c proc ;-----начало процедуры максимума
mov di,0
mov al,[bx][di]
max2:
cmp al,[bx][di]
jae max3
mov al,[bx][di]
max3:
inc di
loop max2
mov max,al
ret
 max_c endp;----конец процедуры максимума
 
Обновил исходник, теперь думаю над С и разностями... (процедура ПОДСЧЁТ)
Подробнее...

Всего записей: 20 | Зарегистр. 30-08-2006 | Отправлено: 23:57 14-02-2008 | Исправлено: Ravenice, 00:09 15-02-2008
Abs62



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ravenice

Цитата:
з.ы. А разве можно так далеко прыгать?

short переход работает в диапазоне от +127 до -128 байт от команды перехода. Разве там больше?

----------
0 программистов ругал сердитый шеф
Потом уволил одного, и стало их FF

Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 00:21 15-02-2008
Ravenice



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Abs62
Да, в некоторых местах больше, компилятор пресекает)

Всего записей: 20 | Зарегистр. 30-08-2006 | Отправлено: 18:15 16-02-2008
metal_anton

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
люди скажите где скачать ассемблер под  винду,  а то  в дос уходить не хочится а найти под  винду не могу парочку сцыл  в гугле открыл половина убитые,  а половина старые под дос

Всего записей: 3 | Зарегистр. 18-02-2008 | Отправлено: 01:38 25-02-2008
SERGE_BLIZNUK

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
metal_anton
посмотрите на Wasm-Компиляторы
Вроде бы WinAsm (IDE для MASM) Вам должен подойти... хотя я не пробовал!

Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 03:25 25-02-2008
luzver

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет. Поделитесь сырцом будильника или просто панировщика выполнения определенного действия в определенное время на .386 на масм.

Всего записей: 2 | Зарегистр. 19-02-2008 | Отправлено: 14:22 28-02-2008
Deni005



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Помогите пожалуйста.
 

Цитата:
Проанализировать фрагмент программы, определить содержимое аккумулятора или порта р0, рассчитать время выполнения программы при тактовой частоте fт=12МГц:
 
        mov     a,#05h
        mov     r1,#00h
loop: inc       r1
        clr        с
        subb     a,r1
        jnz       loop
        mov     a,r1
        mov     p1,a

Заранее благодарен.

Всего записей: 742 | Зарегистр. 03-02-2006 | Отправлено: 11:43 01-03-2008 | Исправлено: Deni005, 12:27 01-03-2008
Compik



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет !
Если это не длинно и не сложно, дайте листинг удаления ключа из реестра WinXP. Например HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\{F33C79B0-0497-A1AD-59E4-AA2F938D9AD1}
Воспользоваться regedit-ом не предлагать.

Всего записей: 261 | Зарегистр. 05-03-2003 | Отправлено: 06:07 02-03-2008 | Исправлено: Compik, 06:09 02-03-2008
zhornik



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день!  
У меня возникла такая проблема:  
Нужно написать программу которая изменяет системное время и дату.
Для этого я использовал функции 2bh и 2dh прерывания int 21h.
2bh изменяет системную дату и работает оно нормально, а вот 2dh не изменяет
время в windows. В чем может быть причина?  

Всего записей: 3 | Зарегистр. 08-12-2007 | Отправлено: 14:44 02-03-2008
wetsoft



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
2 metal_anton
использую самодельную программку,  
если уже не актуально то может кому пригодится  
http://www.wetsoft.narod.ru/soft/forasm.rar

Всего записей: 733 | Зарегистр. 11-02-2006 | Отправлено: 21:02 20-03-2008
Impeg

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите решить пожалуйста, срочно нада:
Выполнить преобразование  целого числа с фиксированной запятой в формат с пла-вающей запятой:
Числа хранятся в ОЗУ.

Всего записей: 20 | Зарегистр. 07-10-2007 | Отправлено: 00:39 18-04-2008
vadme28

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем прив! Помогите кто нить, как в ассемблере из двух разных строк, зделать одну!!!! ???

Всего записей: 1 | Зарегистр. 04-05-2008 | Отправлено: 14:29 04-05-2008
RedPromo



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vadme28
Можно попробовать так

Код:
mov       CX, strllen             ; Столько байтов переслать
получение полного  
указателя (сегмент: смещение) на ячейку памяти откуда, куда
lea       SI, strl             ;Теперь DS:SI-> строка-источник  
lea       Dl, text            ;Теперь ES:DI-> строка-приемник
cld                        ;Двигаться по строке вперед
rep       movsb              ;Пересылка СХ байт
 

Всего записей: 558 | Зарегистр. 05-04-2006 | Отправлено: 17:41 06-05-2008
bv_s

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Приветствую всех!
Помогите в следующей проблеме:
В ноутбуке сдох контроллер клавы, но это пол беды.
Всё прекрасно работало пока  BIOS не сбросился на значения по умолчанию. Теперь нет возможности загрузиться и/или войти в CMOS, т.к. останавливается на ошибке «0211:Keyboard error».
Могу лишь переписать BIOS, симулировав сбой контрольной суммы.
Кто может отучить биос останавливаться на ошибке клавиатуры?
Архив (870 Kb) диска аварийного востановления с исходным биосом лежит здесь:
http://rapidshare.com/files/113906661/__1057_risis_recovery_disk.rar.html

Всего записей: 7 | Зарегистр. 24-07-2005 | Отправлено: 17:49 10-05-2008
Triobsd

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем доброго дня, помогите решить пожалуйста, заранее благодарен.
1.Написать  команду, обеспечивающую выполнение следующей операции (для МП ВМ86):
[(BX)]<-0000.
Определить время выполнения команды (частоту генератора задать    самостоятельно), а также объем занимаемой памяти.
2.Установить 1, 3, 5 биты порта 0 (для МК51).
3.Написать для МП ВМ86 фрагмент программы для вычисления выражения:
z=2*(X+YT),
где X, Y, T – беззнаковые операнды, хранящиеся в ячейках памяти с адресами, находящимися соответственно в регистрах BX, CX, DX.
Результат занести в аккумулятор.
Определить время выполнения программы (частоту генератора задать самостоятельно), а также объем занимаемой памяти.
4.Расшифровать следующую команду, заданную машинным кодом, и записать ее мнемонику (для МП ВМ86):
10001001001.
Определить время выполнения команды (частоту генератора задать самостоятельно), а также объем занимаемой памяти.
5.Загрузить управляющее слово в регистр управления таймером (для МК51).
6.Написать для МП ВМ86 фрагмент программы, обеспечивающий сложение двух 16-битовых слов, хранящихся в парах ячеек памяти, начиная с ячейки с меткой BEG. Результат необходимо поместить в ячейку с меткой RES. Определить время выполнения программы (частоту генератора задать самостоятельно), а также объем занимаемой памяти.

Всего записей: 38 | Зарегистр. 02-02-2006 | Отправлено: 14:38 11-05-2008
LeeooLion

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите решить задачку, заранее Спасибо!
Ввести с клавиатуры две строки. Вывести на экран все символы, которые содержатся в обеих строках.

Всего записей: 1 | Зарегистр. 12-05-2008 | Отправлено: 06:02 12-05-2008
Nino4ka

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Люди, кто знает асм -  нужно ввести поле A из 16-ти символов, которые будем считать занумерованными чис-лами от 1 до 16. Вводится поле B такой же длины. Зашифровать текст А, используя прием: сначала переставить байты в следующем порядке 3, 16, 14, 1, 9, 6, 10, 2, 13, 11, 5, 12, 4, 8, 7, 15. Затем применить операцию XOR посимвольно для строк А и В. После вывода результата расшифровать текст, повторно применив тот же прием в обратном порядке. При решении задачи описание полей из 16-ти байтов оформить с использованием директив IRP или IRPC.

Всего записей: 3 | Зарегистр. 24-01-2008 | Отправлено: 23:06 19-05-2008
major87

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте!Помогите пожалуйста с решением пары задач!
1) Для заданного текста определить длину содержащейся в нем максимальной серии символов,отличных от букв!
2) Найдите наименьшее общее кратное всех чисел,содержащихся в заданной последовательности натуральных чисел!

Всего записей: 1 | Зарегистр. 20-05-2008 | Отправлено: 13:54 20-05-2008
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на Assembler


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru