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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2011, 01:02   #1
frem-dag
Пользователь
 
Регистрация: 29.11.2009
Сообщений: 23
По умолчанию Массивы

Доброго времени суток!
Ввод/вывод двух массивов(одномерного и двумерного) размером 3 и 3на3.
Суть проблемы следующая: как сделать, чтобы размер массивов вводился в ручную? Т.е например вводим N и получаем два массива размером N и NнаN

Код:
MASM
MODEL large
STACK 256
.data
	size_elem=1 		; размер элемента
	message1 db 0ah,0dh, 'Input mas1: ','$'
	message2 db 0ah,0dh, 'Input mas2: ','$'
	message3 db 0ah,0dh, 'Output mas1: ','$'
	message4 db 0ah,0dh, 'Output mas2: ','$'
	mas1	dw	3 DUP (3 DUP (?))
	mas2 db 3 dup (?) ;исходный массив
.code
main:
	mov ax,@data
	mov ds,ax
	xor ax,ax

	mov ah,09h
	lea dx,message1
	int 21h	

;Ввод массивов

	mov si, 0
	mov bx,0
	mov cx,3
external:		;внешний цикл по строкам
	push cx 	
	mov cx,3	
	mov si,0
iternal: 			;внутренний цикл построкам
	mov ah,01h
	int 21h
	mov mas1[bx][si],ax	;ввод элемента в матрицу
	add si,size_elem 		
	loop iternal
move_next: 				
	pop cx 				
	add bx,size_elem*3	;передвигаемся на следующую строку
	loop external		
	
	mov ah,09h
	lea dx,message2
	int 21h 
	
	mov cx,3
	mov si,0
go:
	mov ah,01h
	int 21h
	mov mas2[si],al
	add si,size_elem
	loop go
	
	mov ah,09h
	lea dx,message3
	int 21h 

;Вывод массивов
	
	mov cx,3
	mov si,0
show:
	mov dl,mas2[si]
	mov ah,02h
	int 21h
	add si,1
	loop show

	mov ah,09h
	lea dx,message4
	int 21h
	
	mov si, 0
	mov bx,0
	mov cx,3
external_1:		;внешний цикл по строкам
	push cx 	
	mov cx,3	
	mov si,0
iternal_1: 					;внутренний цикл 
	mov dx,mas1[bx][si]
	mov ah,02h
	int 21h
	add si,size_elem 
	loop iternal_1
move_next2: 
	pop cx 				
	add bx,size_elem*3	
	loop external_1		
	
exit:
	mov ax,4c00h
	int 21h
end main
frem-dag вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++ Массивы sir.andrey Помощь студентам 2 02.10.2010 10:05
Динамические массивы и массивы варианты N@stya Помощь студентам 0 11.06.2010 21:09
С++, Массивы, динамические массивы. -Sunshine- Помощь студентам 1 19.04.2010 02:17
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12
Массивы Ladimira Помощь студентам 2 19.05.2009 18:07