![]() |
1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!
![]() |
brut_ |
![]() ![]()
Сообщение
#1
|
Гость ![]() |
Помогите пожалуйста с двумя задачками:
1) Дан массив из 10 элементов. Вычислить разность между максимальным и минимальным элементами (используйте адресацию по базе). 2) Дан массив P[0..k]. Определить сколько элементов удовлетворяют неравенству A<P[i]<B (используйте косвенную регистровую адресацию). Я ее частчно сделал: stac segment stack 'stack'осталось самое сложное: Ввода с клавиатуры исходных данных и вывода на экран исходных и конечных данных. Очистить экран и вывести результат в рамке красного цвета Поменять цвет рамки через 5 сек. Помогите, пожалуйста... |
![]() ![]() |
Dark |
![]()
Сообщение
#2
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 408 Пол: Мужской Репутация: ![]() ![]() ![]() |
Извини, но начну я с комертария =)
Я разбил задачи на два модуля [похоже ты хотел все сделать в одном] Код mass db 24,41,27,38,64,65,7,21,47,3 - Это для втророй задачки, насколько я понял =) A db 8,42 - Поскольку, как я понял, эти 2 числа вводяться с клавы, лучше их разбить на 2 переменные, т.е. A db 8 B db 42 nmass db 10 dup(?) - необходимость этого я так и не увидел, тока как для первой задачи. Добавил строки вывода в начале и в самом конце String1 db "Введите массив $" String2 db "Введите диапазон [минимум и максимум] $" String3 db "Внутри диапазона лежит $" String4 db "чисел$" sub ax,ax push ax Что делают эти три строчки??? Для чего они push ds Почему push использутся БЕЗ pop ???!!! Есть такое правило сколько push стока pop! [если дело не касается вызова функций в форме C] mov ah, 0 Лучше использовать xor ax,ax - быстрее и изящнее mov di, offset nmass Это нам уже не надо... mov si, offset a Это нам уже не надо... cmp al, [si] Здесь мы заменяем на конкретные переменные т.е. cmp al, [A] cxz: cmp al, [si+1] Здесь тоже cxz: cmp al, [B] mov [di],ah - Заменю на вывод на экран. ret - ЧТО ТЫ ЭТИМ ДЕЛАЕШЬ? ЭТО ДЛЯ ЭТОГО У ТЕБЯ БЫЛИ СТРОКИ push ds sub ax,ax push ax ? Объясни логику и где ты это взял =) -------------------- - Где я?
- Во тьме. - В какой тьме? - Во тьме твоего мозга. |
![]() ![]() |
![]() |
Текстовая версия | 28.07.2025 8:25 |