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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.05.2010, 18:53   #1
Доктор_Айподох
Новичок
Джуниор
 
Регистрация: 25.05.2010
Сообщений: 1
Вопрос массив на 10 чисел

В общем, есть такое задание: есть массив на 10 чисел, первое число вводится, все четные получаются в результате перемножения первого числа на индекс текущего элемента, все нечетные получаются в результате суммирования первого и предыдущего элементов. И есть код :

MASM
MODEL small
STACK 256
.data
mes db 0ah,0dh,'массив: $'

mas db 10 dup (?)
i db 0
message1 db 'введите первое число: $'
message2 db ' $'
.code
main:
mov ax,@data
mov ds,ax
xor ax,ax
mov cx,4
mov si,0
mov i,1h ;переменную i которая является индексом приравниваем к единице
mov ah,9
mov dx,offset message1
int 21h
xor dx,dx
go:
mov ah,1
int 21h
mov dl,al
sub dl,30h
cmp dl,9h
jle M1
sub dl,7h

cmp dl,0fh
jle M1
sub dl,20h
M1:
mov mas[si],dl ;вводим с клавы первое число
inc si ;прибавляем единицу к индексу
inc i
mov al,i
imul dl
mov mas[si],al
mov al,0 ;обнулили al
inc i

M2:
mov al,mas[0]
mov dl,mas[si]
add al,dl
inc si

mov mas[si],al
inc si
inc i ;прибывили единицу к счетчику, он стал равен двум

mov al,i ;обнулили al
mov dl,mas[0]
imul dl ;умножение первого числа на индекс текущего элемента (для четных)
mov mas[si],al
inc si
inc i

loop M2
mov cx,10
mov si,0
mov ah,09h
lea dx,mes
int 21h

show:
mov ah,9
mov dx,offset message2 ;пробел
int 21h
mov ah,02h
mov dl,mas[si]
shr dl,4
add dl,30h
cmp dl,39h
jle M3
add dl,7h
M3:
mov ah,2h
int 21h
mov dl,mas[si]
shl dl,4
shr dl,4
add dl,30h
cmp dl,39h
jle M4
add dl,7h
M4:
mov ah,2h
int 21h
inc si
loop show

exit:
mov ax,4c00h
int 21h
end main

проблема в том, что почему то в массиве превильно заполняются только первые 4 числа, с остальными косяк...
Доктор_Айподох вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массив чисел.. NSvirus Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 17.09.2009 12:59
массив чисел в структуре. aqwerty Общие вопросы C/C++ 4 25.08.2009 15:31
Массив из n чисел Ximer Паскаль, Turbo Pascal, PascalABC.NET 6 17.04.2009 19:17
массив целых чисел ^SPARTAK^ Паскаль, Turbo Pascal, PascalABC.NET 1 27.12.2008 10:59
Массив чисел M-uk Microsoft Office Excel 3 15.08.2008 02:59