Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Ассемблер
|
|||
|---|---|---|---|
|
#18+
Подскажите мне мою ошибку. Данная программа должна выдать сумму всех отрицатльных элементов заданного массива в интервале от -4 до -15 Результат должен выводиться на экран. model small .data mas db -2,0,2,-7,8,-12,1,3,-9,-18,11,12,-15 ;Инициализируем массив. Размер каждого элемента байт message db 'Сумма отрицательных элементов в интервале (-4,-15): $',0ah,0dh .stack 256 .code start: mov ax,@data mov ds,ax mov cx,13 ;Значение счетчика цикла mov dx,0 lea bx,mas m1: mov ax,[bx] or ax,ax cmp ax,15 ;сравнить al c 4 jnle m2 ;перейти на метку если al=<-4 cmp ax,4 jnge m2 ;перейти на метку если al=>-15 add ax,30h add dx,ax m2: inc bx ;Переходим на следующий элемент массива loop m1 ;В начало цикла, если cx не равен 0 mov bx,dx mov ah,09h ;Выводим сообщение message lea dx,message int 21h mov dx,bx mov ah,02h add dx,30h int 21h exit: mov ah,4ch int 21h end start Количество отрицательных элементов массива считается правельно, если поставить счетчик inc dx вместо сумирования элементов. Само сумирование не идет Пробовал считать сумму положительных элементов массива на интервале от 4 до 15 Количество элементов при этом считается правельно, но сумма не выводится. Причем, в регистр dx записывается правельное значение суммы, но на экран оно не выводиться.... Подскажите кто что может.... Заранее спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2004, 20:03 |
|
||
|
Ассемблер
|
|||
|---|---|---|---|
|
#18+
Всмысле он у вас считает и не показывает ?! а если так выводить ?! mov dx, offset message mov ah, 09h int 21h интерестно у вас комментарии растваленны cmp ax,15 ;сравнить al c 4 jnle m2 ;перейти на метку если al=<-4 cmp ax, 4 jnge m2 ;перейти на метку если al=>-15 ш (';') (V),(V),, Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2004, 15:11 |
|
||
|
Ассемблер
|
|||
|---|---|---|---|
|
#18+
Дико извеняюсь за свое произведение. Забыл удалить пред отправкой мессаги. Это были эксперименты отчаянного меня. Еще разок мой код: model small .data mas db -2,0,2,-7,8,-12,1,3,-9,-18,11,12,-15 ;Инициализируем массив. Размер каждого элемента байт message db 'Сумма отрицательных элементов в интервале (-4,-15): $',0ah,0dh .stack 256 .code start: mov ax,@data mov ds,ax mov cx,13 ;Значение счетчика цикла (число элементов массива) mov dx,0 lea bx,mas m1: mov al,[bx] or al,al cmp al,-4 jnle m2 cmp al,-15 jnge m2 add dx,[bx] ;Здесь я складываю отрицательные элементы заданного ;диапазона m2: inc bx loop m1 mov bx,dx mov ah,09h ;Выводим сообщение message lea dx,message int 21h mov dx,bx ;До этого момента все работает mov ah,02h ;Здесь же не выводиться сумма отрицательных элементов add dl,30h ;массива int 21h exit: mov ah,4ch int 21h end start Может быть надо складывать модули нужных элементов, а при ывводе на экран результата дописывать символ "-". Но помоему должно быть другое решение.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2004, 16:32 |
|
||
|
|

start [/forum/topic.php?fid=16&fpage=214&tid=1348124]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
32ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 320ms |

| 0 / 0 |
