Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2010, 19:18   #1
sig_GB
Пользователь
 
Регистрация: 23.02.2010
Сообщений: 69
По умолчанию УЦВМ, сумма элементов заданной строки массива

Задача: Дана матрица. Найти сумму элементов строки с заданным номером.
PS: здесь матрица линеаризируется. (1-ая строка,за ней 2-ая и т.д.)
Необходимо найти ошибку: (ячейка 02D=00 00 4A^16CC=74^10CC)
Строка третья. Сумма равна 74. В ячейке Sum почему, то остаётся 05.
Код:
ExS   start  0
      rmo  l,a
      sta  Sum

rpt   ldx  index
      lda  mas,x
      add  Sum
      sta  Sum
 
      lda  index
      add  inc

      comp fini
      jgt  fin
      j    rpt

fin   hlt

; data
n      word 7
nos    word 3
byte   word 3
inc    word 1

Sum    resb 3

index  resb 3
      lda  nos
      sub  inc
      mul  n
      add  inc
      mul  byte
      sta  index

fini  resb 3
      lda  nos
      mul  n
      mul  byte
      sta  fini

mas   word 5
      word 3
      word 1
      word 7
      word 9
      word 12
      word 15; 7 elemets
      word 10
      word 22
      word 26
      word 12
      word 1
      word 18
      word 19; 7 elements
      word 27
      word 3
      word 1
      word 7
      word 9
      word 12
      word 15; 7 elemets
      word 5
      word 3
      word 26
      word 12
      word 1
      word 18
      word 19; 7 elements
      word 1
      word 7
      word 10
      word 7
      word 9
      word 12
      word 15; 7 elemets
      end  ExS
Былая тема (исходники и прога) http://www.programmersforum.ru/showthread.php?t=85715
Внизу скрин с экрана.
Изображения
Тип файла: jpg error.JPG (101.7 Кб, 88 просмотров)
Помог? Нажми на <Весы> слева.
С++, Pascal, Assembler 386 - под заказ.

Последний раз редактировалось sig_GB; 03.03.2010 в 19:24. Причина: добавил скрин экрана и ссылки на былую тему
sig_GB вне форума Ответить с цитированием
Старый 03.03.2010, 22:26   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,833
По умолчанию

"rmo l,a" - зачем? При старте l=a=0
p51x вне форума Ответить с цитированием
Старый 03.03.2010, 23:35   #3
sig_GB
Пользователь
 
Регистрация: 23.02.2010
Сообщений: 69
По умолчанию

это для обнуления вначале программы СУММЫ. чтобы не вводить новую переменную NUL word 0, я просто решил нулевой регистр связи позаимствовать (его значение) и так обнулить СУММУ на старте.
Сделал со вспом NUL - ничего не получилось.
=================================== =====================
жду ещё подсказки.
Помог? Нажми на <Весы> слева.
С++, Pascal, Assembler 386 - под заказ.
sig_GB вне форума Ответить с цитированием
Старый 04.03.2010, 00:45   #4
sig_GB
Пользователь
 
Регистрация: 23.02.2010
Сообщений: 69
По умолчанию

ААААААААААААААААААААААААААААААА!!!! !
СДЕЕЛАААЛ!
Помучался, помучался и получились заветные 4А!!!!!!
Код:
ExS   start  0
      lda  nul
      sta  Sum
      
      lda  nos
      sub  inc
      mul  n
      mul  byte
      sta  index
        
      lda  nos
      mul  n
      mul  byte
      sta  fini
         
rpt   ldx  index
      lda  mas,x
      add  Sum
      sta  Sum
 
      lda  index
      add  inc
      sta  index

      comp fini
      jgt  fin
      j    rpt

fin   hlt

; data
n      word 7
nos    word 3
byte   word 3
inc    word 1
nul    word 0

Sum    resb 3
index  resb 3
fini   resb 3

mas   word 5
      word 3
      word 1
      word 7
      word 9
      word 12
      word 15; 7 elemets
      word 10
      word 22
      word 26
      word 12
      word 1
      word 18
      word 19; 7 elements
      word 27
      word 3
      word 1
      word 7
      word 9
      word 12
      word 15; 7 elemets
      word 5
      word 3
      word 26
      word 12
      word 1
      word 18
      word 19; 7 elements
      word 1
      word 7
      word 10
      word 7
      word 9
      word 12
      word 15; 7 elemets
      end  ExS
UPDATE: обознался. прошу прощения. тогда жду помощи.
Помог? Нажми на <Весы> слева.
С++, Pascal, Assembler 386 - под заказ.

Последний раз редактировалось sig_GB; 04.03.2010 в 00:51.
sig_GB вне форума Ответить с цитированием
Старый 04.03.2010, 01:07   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,833
По умолчанию

"это для обнуления вначале программы СУММЫ. чтобы не вводить новую переменную NUL word 0,"
А зачем вводит изначально сумму равную чему-то (не 0), чтобы потом тратить команды и такты на ее обнуление?

Хотите помощи - делайте коменты хотя бы к переменным.

Последний раз редактировалось p51x; 04.03.2010 в 01:13.
p51x вне форума Ответить с цитированием
Старый 04.03.2010, 01:22   #6
sig_GB
Пользователь
 
Регистрация: 23.02.2010
Сообщений: 69
По умолчанию

рабочий код:
Код:
ExS   start  0
      lda  nul
      sta  Sum
      
      lda  nos
      sub  inc
      mul  n
      mul  byte
      sta  index
        
      lda  nos
      mul  n
      mul  byte
      sta  fini
         
rpt   ldx  index
      lda  mas,x
      add  Sum
      sta  Sum
 
      lda  index
      add  byte
      sta  index

      comp fini
      jeq  fin
      j    rpt

fin   hlt

; data
n      word 7
nos    word 3
byte   word 3
inc    word 1
nul    word 0

Sum    resb 3
index  resb 3
fini   resb 3

mas   word 5
      word 3
      word 1
      word 7
      word 9
      word 12
      word 15; 7 elemets
      word 10
      word 22
      word 26
      word 12
      word 1
      word 18
      word 19; 7 elements
      word 27
      word 3
      word 1
      word 7
      word 9
      word 12
      word 15; 7 elemets
      word 5
      word 3
      word 26
      word 12
      word 1
      word 18
      word 19; 7 elements
      word 1
      word 7
      word 10
      word 7
      word 9
      word 12
      word 15; 7 elemets
      end  ExS
Помог? Нажми на <Весы> слева.
С++, Pascal, Assembler 386 - под заказ.
sig_GB вне форума Ответить с цитированием
Старый 04.03.2010, 08:43   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
mas word 5
word 3
word 1
word 7
word 9
word 12
word 15; 7 elemets
Уфф... А покороче в строку через запятую обьявить не судьба, или компилятор не позволяет?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.03.2010, 09:32   #8
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,833
По умолчанию

2 sig_GB
Код:
     lda  nul
     sta  Sum
НЕ НУЖНО. Определите Sum как word 0.
p51x вне форума Ответить с цитированием
Старый 04.03.2010, 14:28   #9
sig_GB
Пользователь
 
Регистрация: 23.02.2010
Сообщений: 69
По умолчанию

2) хм, а так можно? тоесть это нач значение указывается через word 3 ? мне казалось это константы. попробую.
1) да, вот такой Ассемблер. ему надо чтобы новая строка с нового символического кода начиналась (либо с метки). в строку-никак.
Помог? Нажми на <Весы> слева.
С++, Pascal, Assembler 386 - под заказ.
sig_GB вне форума Ответить с цитированием
Старый 04.03.2010, 23:29   #10
sig_GB
Пользователь
 
Регистрация: 23.02.2010
Сообщений: 69
По умолчанию

Проверил. Машина не ругается.
Изменил на
Код:
Sum word 0
.
спасибо за совет.
Помог? Нажми на <Весы> слева.
С++, Pascal, Assembler 386 - под заказ.
sig_GB вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль.Сумма элементов массива Венера9 Помощь студентам 4 01.02.2010 19:31
Сумма элементов преобразованного массива 0001 Помощь студентам 5 18.01.2010 15:48
C++. сумма элементов массива BzDoN Помощь студентам 3 01.12.2009 07:04
подсчитать суммы элементов заданной строки и заданного столбца и определить, где сумма минимальна lubov09 Помощь студентам 4 11.11.2009 17:02
Сумма и произведение элементов массива Zid@ne Общие вопросы C/C++ 5 23.12.2008 19:22