IPB
ЛогинПароль:

> ПРАВИЛА РАЗДЕЛА!!!

1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!

> Заполнение матрицы случайными числами
сообщение
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Объясните пожалуйста, как можно инициализировать матрицу случайными числами??
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Я вынесла генерацию ПСЧ в отдельную процедуру (значение регистра bx сохраняется в стеке перед её вызовом)..Но программа по-прежнему не работает..Объясните пожалуста, в чём дело?


dely macro time; (1)
local zd,c1,cikl,ii,ii1; (2) описываем все метки, используемые вмакроопределении
push cx; (3)помещаем в стек используемые в макроопределении регистры
push bx; (4)
push bp; (5)
push ax; (6)
push dx; (7)
mov cx,time; (8) задаём количество повторений цикла задержки zd – задержка в цикле 18.2 секунды
zd: push cx; (9)
mov bp,0;(10)
mov bx,1;(11)

cikl:
inc BP;(12)
mov ah,00h;(13)
int 1Ah;(14)
cmp BP,1;(15)
je ii;(16) переходим на метку ii на первой итерации цикла
jmp ii1;(17) на следующих итерациях переходим на метку ii1
ii: add bx,dx;(18) формируем значение на единицу больше, чем в регистре dx
ii1: ; (19)
cmp bx,dx;(20) если значение в регистре dx изменилось(сравниваем значение в dx с сформированным в строке 18 значением в регистре bx, которое на единицу больше, на единицу больше значение в dx станет через 18.2 сек)
jne cikl;(21) если нет, то новая итерация цикла
pop cx;(22) если да, конец макрокоманды задержки
loop zd;(23)
pop cx;(24)
pop bx;(25)
pop bp;(26)
pop ax;(27)
pop dx;(28)
endm;(29)

assume CS: code, DS: data
code segment
randomize proc
Mov AL,00000000b
Out 43h,AL
In AL,40h
Mov AH,AL
In AL,40h
XChg AL,AH
mov iax,ax
randomize endp

random proc
mov ax,iax
mov bx,ibx
xor ax,bx
shl ax,1
adc bx,0
xor bx,ax
xchg bl,bh
mov iax,ax
mov ibx,bx
random endp

matr proc
mov cx,3
mov si,0
mov bx,0

call randomize

external:
push cx
mov cx,3
mov si,0

iternal:
push bx
call random
pop bx
mov array[bx][si],ax
add si,2
loop iternal
pop cx
add bx,4
loop external

mov cx,3
mov si,0
mov bx,0
exshow:
push cx
mov cx,3
mov si,0
ishow:
mov ah,02h
mov dx,array[bx][si]
add dl,30h
int 21h
add si,2
loop ishow
;lea dx,nl ;переход на новую строку
pop cx
add bx,4
loop exshow
ret
matr endp

begin:

mov AX, data
mov DS, AX
mov cx,10
miganie:
push cx
call matr
dely 18
mov ah,02h ;сдвижка курсора обратно в начало строки
mov bh,00
mov dh,15
mov dl,0
int 10h
pop cx
loop miganie

exit:
mov ah,08h
int 21h
mov ax,4c00h
int 21h


code ends

data segment
array dw 3 dup(3 dup(0))
i db 0
nl db 13,10,'$'
iax dw 0
ibx dw 9821
data ends

stk segment stack
dw 128 dup (1)
stk ends

end begin


 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
18192123   Заполнение матрицы случайными числами   13.05.2008 20:43
18192123   вот что у меня получилось...только матрица инициал…   13.05.2008 22:11
andriano   1. Я уже навскидку не помню, 40/43 - это порты тай…   13.05.2008 22:42
18192123   1. Я уже навскидку не помню, 40/43 - это порты та…   13.05.2008 23:10
viagra versus levitra versus cia   Urologia Priligy   8.11.2021 3:20
andriano   1. Тогда у тебя последовательность явно не случайн…   13.05.2008 23:20
18192123   1. Тогда у тебя последовательность явно не случай…   14.05.2008 0:01
andriano   Нет. В IBM PC нет встроенного датчиа случайных чис…   14.05.2008 15:18
18192123   Вот к чему я пришла..генерацию вставила, но програ…   16.05.2008 2:34
andriano   Ты пытаешься использовать регистр bx сразу для дву…   16.05.2008 11:20
18192123   Я вынесла генерацию ПСЧ в отдельную процедуру (зна…   17.05.2008 21:17
andriano   1. Вместо "не работает" хотелось бы узна…   17.05.2008 21:30
18192123   1. Вместо "не работает" хотелось бы узн…   17.05.2008 22:07
andriano   Программы целиком на ассемблере писал лет 10-15 на…   18.05.2008 0:07
18192123   У тебя программа начинатся с begin? Как она знает…   18.05.2008 0:39
andriano   Ты располагаешь какими-либо средствами трассировки…   18.05.2008 2:30
18192123   если "нет", то замени перевод курсора в…   18.05.2008 20:29
18192123   Появился ещё один вариант генерации..но снова неуд…   23.05.2008 0:55


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 24.04.2024 8:20
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name