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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2008, 14:33   #1
Amery
Пользователь
 
Регистрация: 04.05.2008
Сообщений: 13
По умолчанию Заполнить массив и записать в файл

Здравствуйте! Буду очень благодарна, если поможете.. как делать - ума не приложу(((
Нужно заполнить массив случайными числами (-200..200) и записать в файл

в Delphi это делала так:
Код:
procedure Run;
const rndnum=400;
var i ,cc: integer;
    a: array [1..rndnum] of integer;
    f: Textfile;
begin
randomize;
 for I:=1 to rndnum  do
 a[i]:= random(rndnum)-200;

 Assignfile(f, 'rnd.txt');
 ReWrite(f);
	cc:= 0 ;
  Writeln(f,'Rnd dw ' );
	for I:= 1 to rndnum do
   Begin
		IF cc=0 THEN
		 write(f, 'dw ', a[i])
		ELSE
		 write(f, ', ', a[i]);
    cc:=cc+1;
    if cc = 10 then
    Begin
    writeln (f);
    cc:=0;
    end;
    end;
   closefile(f);
end;

Последний раз редактировалось Amery; 26.05.2008 в 15:54.
Amery вне форума Ответить с цитированием
Старый 26.05.2008, 15:17   #2
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

С чем именно сложности? Со случайными числами или с файлами7
B_N вне форума Ответить с цитированием
Старый 26.05.2008, 15:34   #3
Amery
Пользователь
 
Регистрация: 04.05.2008
Сообщений: 13
По умолчанию

проблема как записать в файл и с массивом тоже... код компилится но не работает

Код:
.model tiny
.code
.386
max equ 20
org 100h
start:
  mov ax, 3
  int 10h

; заполнение с помощью простейшего 
; генератора случайных чисел
  push 040h
  pop  es
  mov  dx, es:[6Ch] ; тики
  lea  di, ar 
  mov  cx, max
fill_Random:
  imul dx, 4e35h ; можно взять любое большое  
  mov  [di], dl
  inc  di
  LOOP fill_Random

; показ
  mov  cx, max
  lea  di, ar
 @1:
  mov  al, [di]
  CALL showDEC
  inc di
  LOOP @1

  int 20h
showDEC proc ; число в AL
 push ax
 push bx
 push cx
  xor cx, cx
  mov bl, 10
 @2:
  inc cx
  xor ah, ah
  div bl
  push ax
  or al, al
  jnz @2

 @3:
  pop ax
  mov al, ah
  add al, '0'
  int 29h
  LOOP @3

  mov al, ' '
  int 29h
  
 pop  cx
 pop  bx
 pop  ax
 ret
showDEC endp

ar db max dup(?)
end start

Последний раз редактировалось rpy3uH; 26.05.2008 в 18:51.
Amery вне форума Ответить с цитированием
Старый 26.05.2008, 15:55   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
проблема как записать в файл
для Int 21h
есть функи:
3dh - Открыть файл
3eh - закрыть
40h - писать
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.05.2008, 16:36   #5
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Цитата:
Сообщение от Amery Посмотреть сообщение
и с массивом тоже... код компилится но не работает
В смысле? Это
Цитата:
205 113 101 233 61 161 85 153 173 209 69 73 29 1 53 249 141 49 37 169
не тот результат, которого Вы ждёте?
B_N вне форума Ответить с цитированием
Старый 26.05.2008, 17:43   #6
Amery
Пользователь
 
Регистрация: 04.05.2008
Сообщений: 13
По умолчанию

у меня файл запускается и сразу закрывается(
Amery вне форума Ответить с цитированием
Старый 26.05.2008, 18:06   #7
Amery
Пользователь
 
Регистрация: 04.05.2008
Сообщений: 13
По умолчанию

поняла почему не показывало))))
Amery вне форума Ответить с цитированием
Старый 26.05.2008, 21:14   #8
Amery
Пользователь
 
Регистрация: 04.05.2008
Сообщений: 13
По умолчанию

у меня даже файл создать не получается(((
Может у кого есть пример, чтобы выдавал результат как прога на delphi?
Amery вне форума Ответить с цитированием
Старый 27.05.2008, 16:07   #9
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Цитата:
Сообщение от Amery Посмотреть сообщение
у меня даже файл создать не получается(((
Может у кого есть пример, чтобы выдавал результат как прога на delphi?
Amery, Вы, если что-то не выходит, лучше выкладывайте сразу свой код. На такие общефилософские вопросы зачастую и не знаешь как ответить, меньше чем на страницу, да и вполне может быть, что Вы ошиблись в одной букве, а искать (тем более - писать) готовый пример может быть долго или просто некогда. Ниже пример записи в файл. (DOS, TASM)
Код:
			.model small
			.code
program:
			JMP			l_start

FILENAME	DB 'C:\HELLO.TXT', 0
FILETEXT	DB 'Hello, World!', 0
FILEHANDLE	DW ?
ERRORTEXT	DB 'Error!$'

l_start:
			PUSH		DS
			PUSH		ES
			
			MOV			AX, CS
			MOV			DS, AX
			MOV			ES, AX
			
			; Открываем файл
			
			XOR			CX, CX
			LEA			DX, FILENAME
			MOV			AH, 3Ch
			INT 		21h
			
			JC			l_error
			
			MOV			FILEHANDLE, AX
			
			; Находим длину строки
			
			LEA			DI, FILETEXT
			XOR			AX, AX
			MOV			CX, 255
			CLD
			REPNZ SCASB
			SUB			CX, 255
			NEG			CX
			DEC			CX
			CMP			CX, 0
			JB			l_error
			
			; Записываем строку в файл
			
			MOV			BX, FILEHANDLE
			MOV			AH, 40h
			LEA			DX, FILETEXT
			INT			21h
			
			JC			l_error
			
			; Закрываем файл
			
			MOV			BX, FILEHANDLE
			MOV			AH, 3Eh
			INT			21h	

			JC			l_error

			; выходим
l_exit:
			POP			ES
			POP			DS
			retf
l_error:
			; печатаем сообщение об ошибке
			
			LEA			DX, ERRORTEXT
			MOV			AH, 09h
			INT			21h
			JMP			l_exit

end program
B_N вне форума Ответить с цитированием
Старый 27.05.2008, 20:02   #10
Amery
Пользователь
 
Регистрация: 04.05.2008
Сообщений: 13
По умолчанию

спасибо, все получилось)
Amery вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как записать record в файл Kn793 Общие вопросы Delphi 5 01.08.2008 08:10
Заполнить массив случайными числами forumu Общие вопросы Delphi 13 03.12.2007 22:11
Заполнить одномерный целочисленный массив размерности n числами, введёнными с клавиатуры AHTOXA Помощь студентам 4 06.06.2007 19:24
(Это снова я) Как записать в файл? Air Общие вопросы Delphi 5 03.05.2007 20:36