|
|
|
вывести результат массива в ассемблере)
|
|||
|---|---|---|---|
|
#18+
.model small .data massiv dw 2,3,1,4,5,9,3,3,1,3,4,2,9,1,7 .code Start: mov ax, @data mov ds,ax mov bl,5 lea si,massiv[14] @ymn: mov al,[si] imul bl mov [si],al dec si jns @ymn mov ah, 9h int 21h mov ax,4C00h END Start ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2009, 19:55:41 |
|
||
|
вывести результат массива в ассемблере)
|
|||
|---|---|---|---|
|
#18+
и вообще правильно я сделал... кто может подскажите как доделать) задание было такое умножить каждый элемент массива из 15 чисел на на 5) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2009, 19:58:30 |
|
||
|
вывести результат массива в ассемблере)
|
|||
|---|---|---|---|
|
#18+
.model small .data massiv dw 2,3,1,4,5,9,3,3,1,3,4,2,9,1,7 .code Start: ;точка входа в программу mov ax, @data ;инициализация сегмента данных mov ds,ax mov bl,5 ;множитель lea si,massiv[14];адрес последнего элемента массива @ymn: mov al,[si];взять элемент массива imul bl;умножить mov [si],al; сохранить в массиве результат dec si;перейти к следующему элементу jns @ymn mov ax, 9h int 21h mov ax,4C00h ;завершить программу int 21h END Start ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2009, 20:16:06 |
|
||
|
вывести результат массива в ассемблере)
|
|||
|---|---|---|---|
|
#18+
вместо Код: plaintext Код: plaintext 1. Повысится и сильно быстродействие ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2009, 19:31:59 |
|
||
|
вывести результат массива в ассемблере)
|
|||
|---|---|---|---|
|
#18+
alex1989 ... massiv dw 2,3,1,4,5,9,3,3,1,3,4,2,9,1,7 ... dec si;перейти к следующему элементу ... думаю это неправильно. Нелогично приелементе размерностю в слово (2 байта) уменьшать адрес на 1. В данном случае код работать будет (ведь старший байт равен 0, а значит и при умножении на 5 будет 0), но вот с числами побольше (скажем больше 15 :) ) результат будет неправильный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2009, 03:05:02 |
|
||
|
вывести результат массива в ассемблере)
|
|||
|---|---|---|---|
|
#18+
Куликов Алексейвместо Код: plaintext Код: plaintext 1. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2009, 03:35:43 |
|
||
|
вывести результат массива в ассемблере)
|
|||
|---|---|---|---|
|
#18+
Ёш ты прав... Давненько за асмом не сидел... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2009, 15:11:04 |
|
||
|
вывести результат массива в ассемблере)
|
|||
|---|---|---|---|
|
#18+
на самом деле я тоже скорее всего накосячил, потому что насколько я сейчас вспомнил, смешивать регистры разного размера в одной команде Код: plaintext -- „Истина — это вовсе не то, что можно убедительно доказать, это то, что делает всё проще и понятнее“ — Антуан де Сент-Экзюпери ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2009, 15:09:26 |
|
||
|
вывести результат массива в ассемблере)
|
|||
|---|---|---|---|
|
#18+
ADD AL, BL ADC AH, 0 Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2009, 15:13:14 |
|
||
|
вывести результат массива в ассемблере)
|
|||
|---|---|---|---|
|
#18+
Спасибо за советы все уже сделал... Вот еще задача такая типа подсчета количества двоичных нулей в двухбайтовой переменной. помогите доделать программу... я тут не очень понимаю... зарание спасибо! ;входные параметры mov bx,Number;выводимое число mov di,offset string;выводимая строка mov cx,16;количество бит xor dx,dx;счетчик нулевых бит ;сама процедура ;в цикле сдвигаем через флаг CF isLoop: shl bx,1;сохраняем флаги pushf;переводим в символ и записываем в выводимую строку mov al,30h adc al,0 stosb;востанавливаем флаг popf;проверяем флаг переноса если переноса нет, то считаем как ноль-бит jc isNoZero inc dx isNoZero:;повторяем 16-ть раз loop isLoop;записываем маркер конца строки mov al,'$' stosb ;все ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2009, 12:13:07 |
|
||
|
вывести результат массива в ассемблере)
|
|||
|---|---|---|---|
|
#18+
alex1989Спасибо за советы все уже сделал... Вот еще задача такая типа подсчета количества двоичных нулей в двухбайтовой переменной. помогите доделать программу... я тут не очень понимаю... зарание спасибо! ;входные параметры mov bx,Number;выводимое число mov di,offset string;выводимая строка mov cx,16;количество бит xor dx,dx;счетчик нулевых бит ;сама процедура ;в цикле сдвигаем через флаг CF isLoop: shl bx,1;сохраняем флаги pushf;переводим в символ и записываем в выводимую строку mov al,30h adc al,0 stosb;востанавливаем флаг popf;проверяем флаг переноса если переноса нет, то считаем как ноль-бит jc isNoZero inc dx isNoZero:;повторяем 16-ть раз loop isLoop;записываем маркер конца строки mov al,'$' stosb ;все если я правильно понял задачу, то данный код немного сложный для её решения, потому решил уточнить, правильно ли я всё понял: Значит так, насколько я понимаю задача заключается в том, что есть некая переменная типа word, и надо посчитать количество нулей в двоичной записи данного числа? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2009, 21:42:49 |
|
||
|
вывести результат массива в ассемблере)
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 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. Вот накатал в MASM (юзал tiny модель ;) ). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2009, 23:00:56 |
|
||
|
вывести результат массива в ассемблере)
|
|||
|---|---|---|---|
|
#18+
кстати, вместо ret в конце проги лучше написать int 20h ))) Просто только-что заметил, что ret может выдавать ошибку (просто свою прогу щас пишу :) ). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2009, 02:40:46 |
|
||
|
вывести результат массива в ассемблере)
|
|||
|---|---|---|---|
|
#18+
Программер Спасибо большое за ответ!!! именно так... т.е есть число посчитать в нем кол-во нулей прогу не юзал еще :)) вечером приду попробую) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2009, 13:50:53 |
|
||
|
вывести результат массива в ассемблере)
|
|||
|---|---|---|---|
|
#18+
что то я совсем запутался что там и где исправлять в программе, в которой нужно умножить каждый элемент массива из 15 чисел на 5. не подскажите полный код ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2010, 19:37:55 |
|
||
|
вывести результат массива в ассемблере)
|
|||
|---|---|---|---|
|
#18+
типа так должно быть: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2010, 11:56:18 |
|
||
|
вывести результат массива в ассемблере)
|
|||
|---|---|---|---|
|
#18+
помогите сделать задание: создать массив из 10 чисел первое число запрашивается,а далее все четные элементы получаются суммированием первого числа с индексом элемента, все нечетные(начиная с третьего,т.к. первое уже вводится) получаются вычитанием из предыдущего элемента текущего индекса. надо в фар-менеджере помогите пожааааалуйста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2010, 21:14:23 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=35775935&tid=1343675]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
437ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 214ms |
| total: | 745ms |

| 0 / 0 |
