![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 | |
Регистрация: 09.01.2010
Сообщений: 4
|
![]()
Прошу исправить мой убогий код и объяснить ошибки. Задача такая: в двумерном массиве подсчитать сумму отрицательных элементов а среди положительных найти максимальный.
Кто знает что это за ошибки? И может кто-нибудь поможет? Заранее благодарен. Цитата:
|
|
![]() |
![]() |
![]() |
#2 |
Регистрация: 09.01.2010
Сообщений: 4
|
![]()
код такой:
assume SS:seg1,ds:seg2,cs:seg3 seg1 segment stack db 128 dup(?) seg1 ends seg2 segment mas1 DB 7,-2,4,5,-8 db 2,4,-1,-9,2 db 7,8,9,-4,-2 db 4,5,6,2,-1 len_mas1 dw 5 sum db 0 max db ? seg2 ends seg3 segment entry: mov ax,seg2 mov ds,ax xor ax,ax mov cx,4 lea bx,mas1 l1: push cx xor si,si mov cx,len_mas1 l2: cmp byte ptr[bx+si],0 jl sum mov al,byte ptr[bx+si] mov max,al loop max1 max1: inc si cmp al,byte ptr[bx+si] jg max2 loop l1 max2: mov max,byte ptr[bx+si] inc si loop l2 pop cx add bx,len_mas1 loop l1 sum1: add sum,byte ptr[bx+si] inc si loop l2 pop cx add bx,len_mas1 loop l1 mov ax,max test ax,ax jns oil mov ah,02h mov dl,'-' int 21h pop ax push ax neg ax oi1: xor cx,cx mov bx,10 oi2: xor dx,dx div bx push dx inc cx test ax,ax jnz oi2 mov ah,02h oi3: pop dx cmp dl,9 jbe oi4 add dl,7 oi4: add dl,30h int 21h loop oi3 pop ax mov ah,4ch int 21h seg3 ends end entry |
![]() |
![]() |
![]() |
#3 |
Регистрация: 09.01.2010
Сообщений: 4
|
![]()
assume SS:seg1,ds:seg2,cs:seg3
seg1 segment stack db 128 dup(?) seg1 ends seg2 segment mas1 DB 7,-2,4,5,-8 db 2,4,-1,-9,2 db 7,8,9,-4,-2 db 4,5,6,2,-1 len_mas1 dw 5 sum db 0 max db ? seg2 ends seg3 segment entry: mov ax,seg2 mov ds,ax xor ax,ax mov cx,4 lea bx,mas1 l1: push cx xor si,si mov cx,len_mas1 l2: cmp byte ptr[bx+si],0; cравниваем элемент с нулем, если меньше нуля jl sum1; то идем по отдельной ветки цикла и считаем сумму элементов иначе mov al,byte ptr[bx+si]; делаем этот элемент макимальным и сравниваем его с другими mov max,al; положительными элементами loop max1 max1: inc si; если следующий положительный элемент больше текущего, то cmp al,byte ptr[bx+si]; делаем его положительным иначе все остается как есть jg max2 loop l1 max2: mov al,byte ptr[bx+si] mov max,al inc si loop l2 pop cx add bx,len_mas1 loop l1 sum1: mov al,byte ptr[bx+si]; cкладываем текущий отрицательный элемент add sum,al; c тем что уже находится в ал и результат записываем туда же. inc si loop l2 pop cx add bx,len_mas1 loop l1 mov al,max; вывод на экран максимального элемента и суммы test al,al jns oi1 mov ah,02h mov dl,'-' int 21h pop ax push ax neg ax oi1: xor cx,cx mov bx,10 oi2: xor dx,dx div bx push dx inc cx test ax,ax jnz oi2 mov ah,02h oi3: pop dx cmp dl,9 jbe oi4 add dl,7 oi4: add dl,30h int 21h loop oi3 pop ax mov ah,4ch int 21h seg3 ends end entry Народ помогите! Программа компилируется но ничего не показывает. |
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
![]()
fightclub
зачем делать сложным, то что проще простого? Код:
|
![]() |
![]() |
![]() |
#5 |
Регистрация: 09.01.2010
Сообщений: 4
|
![]()
Большое спасибо!
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Задача с матрицей | bonys91 | Помощь студентам | 1 | 02.04.2009 20:02 |
Задача с матрицей | Kawun | Помощь студентам | 9 | 26.03.2009 00:29 |
Задача,опять же с матрицей | groth88 | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 16.04.2008 13:22 |
Задача с матрицей | H[o][o]K | Помощь студентам | 1 | 15.12.2007 16:51 |
Задача с матрицей, Паскаль | Integra | Помощь студентам | 1 | 25.04.2007 16:14 |