Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите с задачкой, помощь студенту с ассеблером 
V
    Опции темы
Vat63
  Дата 9.12.2013, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 29.10.2013

Репутация: нет
Всего: нет



вопрос в следующем: Составить программу производящую подсчет суммы элементов числового массива из 20 чисел, лежащих в диапазоне -10...+10. Всем кто откликнулся большое спасибо!
PM MAIL   Вверх
ФедосеевПавел
Дата 9.12.2013, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 7.2.2009

Репутация: 4
Всего: 10



Давай своё спасибо!

Ну а серьёзно, покажи наработки. Прога-то не сложная, а у тебя уже что-то есть.
PM   Вверх
Vat63
Дата 9.12.2013, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 29.10.2013

Репутация: нет
Всего: нет



Цитата(ФедосеевПавел @ 9.12.2013,  18:30)
Давай своё спасибо!

Ну а серьёзно, покажи наработки. Прога-то не сложная, а у тебя уже что-то есть.

наработки убогие, что довольно прискорбно, с ассемблером особо не знаком, д и преподают у нас его на уровне отредактируй методичку с кодом под свой вариант
PM MAIL   Вверх
ФедосеевПавел
Дата 9.12.2013, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 7.2.2009

Репутация: 4
Всего: 10



Ну и чудесно. Покажи хоть какие. Но только с попыткой решения, а не шаблон DOS EXE или DOS COM.
PM   Вверх
Vat63
Дата 9.12.2013, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 29.10.2013

Репутация: нет
Всего: нет



до попытки решения тут далекоооо
Data SEGMENT
    MAS DB -10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10
Data ENDS

Ourstack Segment Stack
    DB 100h DUP (?)
Ourstack ENDS

ASSUME CS:Code, DS:Data, SS:Ourstack

Code SEGMENT 
    Start:
    mov AX, Data
    mov DS, AX
    mov SI, offset MAS
    add mas, mas
;....
    mov AX, 4C00h
    int 21h
Code ENDS
END Start

Это сообщение отредактировал(а) Vat63 - 9.12.2013, 18:53
PM MAIL   Вверх
ФедосеевПавел
Дата 9.12.2013, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 7.2.2009

Репутация: 4
Всего: 10



Шаблон DOS EXE есть.
Далее, как в бейсике, паскале или с, перебираешь все элементы массива. Можно организовать перемещение так:
Код

  инициализация индекса массива и регистра al (суммы)
  mov cx, 20
@@do:
  add al, следующий элемент массива
  inc индекс массива
  loop @@do

обращение к элементу массива mas[si]
А ещё глянь уроки калашникова на сайте
PM   Вверх
Vat63
Дата 9.12.2013, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 29.10.2013

Репутация: нет
Всего: нет



мы не пользуемся бэйсиком паскалем или ещё чем либо чисто блокнот.asm и компановщики tasm td tlink, спасибо

Это сообщение отредактировал(а) Vat63 - 9.12.2013, 19:24
PM MAIL   Вверх
Vat63
Дата 10.12.2013, 00:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 29.10.2013

Репутация: нет
Всего: нет



ФедосеевПавел, помоги пожалуйста с той же программой, не получается правильно вывести сумму массива
;Составить программу производящую подсчет суммы элементов числового массива из 20 чисел, лежащих в 

диапазоне -10...+10
Data SEGMENT
    MAS DB -10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10
    SUM DB 0
    m db 'results:', 13, 10, '$'
    Y_ASCII DB 7 DUP(?)
    sign DB ?
Data ENDS

Ourstack Segment Stack
    DB 100h DUP (?)
Ourstack ENDS

ASSUME CS:Code, DS:Data, SS:Ourstack

Code SEGMENT 

PREOBR    PROC            ;начало процедуры
MOV      AL,    SUM        ;в АХ исходное число
          MOV    SIGN, ' '    ;пробел (знак +) в переменную знака 
          CMP    AX, 0        ;сравнить число с нулем
          JNS    M_1        ;если больше или равно 0, перейти на метку М_1
          MOV    SIGN, '-'    ;иначе знак "-" в переменную знака
          NEG    AL        ;преобразовать в прямой код    

M_1:      XOR    CX, CX 
          MOV    BX, 10
M_2:      XOR    DX, DX 
          DIV    BX
          PUSH    DX
          INC    CX;
          CMP    AX, 0
          JNE    M_2

    XOR SI, SI
    MOV AL, SIGN
    MOV Y_ASCII[SI], AL
    INC SI
M_3:    POP AX
    ADD AL, 30h
    MOV Y_ASCII[SI], AL
    INC SI
LOOP    M_3 
    MOV Y_ASCII[SI], '$'
    MOV DX, offset Y_ASCII
    MOV AH, 09h
    INT 21h
    RET
PREOBR    ENDP

    Start:
    mov AX, Data
    mov DS, AX
    mov SI, offset MAS
    mov CX, 20
    mov AX, 0
L1:    add AL, [SI]
    add SI, 1
    loop L1
    mov SUM, AL
    call PREOBR

    mov AX, 4C00h
    int 21h
Code ENDS
END Start

Добавлено через 13 минут и 1 секунду
все косяк найден тема закрыта!)
Спасибо откликнувшемуся!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для начинающих | Следующая тема »


 




[ Время генерации скрипта: 0.0918 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.