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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.01.2010, 17:07   #1
AlexandrHouse
Пользователь
 
Регистрация: 28.01.2010
Сообщений: 15
Сообщение

в общем надо четные числа с первого массива и нечётные второго массива запихнуть в третий...
и желатель во flat assembler это написать

не кто не знает чтоли=(

Последний раз редактировалось rpy3uH; 29.01.2010 в 08:45.
AlexandrHouse вне форума Ответить с цитированием
Старый 29.01.2010, 01:40   #2
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

Только комментариев не будет, разбирайтесь сами.

Код:
format PE GUI 4.0
entry start

include 'c:\fasm\INCLUDE\win32a.inc'
SIZE_MASS1	EQU 500
SIZE_MASS2	EQU 900

section '.data' data readable writeable
NameFileMass1	db 'mass1.bin', 0
NameFileMass2	db 'mass2.bin', 0
NameFileMass3	db 'mass3.bin', 0
ipMem1		dd 0
ipMem2		dd 0
ipMem3		dd 0
nrandom_seed	dd 0
Ktemp		dd 0

section '.code' code readable executable
start:

	invoke	GetTickCount
	mov	[nrandom_seed], eax

	invoke	VirtualAlloc, 0, SIZE_MASS1, MEM_COMMIT, PAGE_READWRITE
	mov	[ipMem1], eax
	mov	esi, eax
	mov	ecx, SIZE_MASS1
FieldMass1:
	push	ecx
	push	255
	call	nrandom
	mov	byte ptr esi, al
	inc	esi
	pop	ecx
	loop	FieldMass1

	invoke	VirtualAlloc, 0, SIZE_MASS2, MEM_COMMIT, PAGE_READWRITE
	mov	[ipMem2], eax
	mov	esi, eax
	mov	ecx, SIZE_MASS2
FieldMass2:
	push	ecx
	push	255
	call	nrandom
	mov	byte ptr esi, al
	inc	esi
	pop	ecx
	loop	FieldMass2

	invoke	VirtualAlloc, 0, SIZE_MASS1+SIZE_MASS2, MEM_COMMIT, PAGE_READWRITE
	mov	[ipMem3], eax

	mov	edi,[ipMem3]
	mov	esi,[ipMem1]
	mov	ecx,SIZE_MASS1
	xor	edx, edx
FieldMass3_1:
	mov	al, byte ptr esi
	test	eax, 1
	jne	FieldMass3_11
	mov	byte ptr edi, al
	inc	edi
	inc	edx
FieldMass3_11:
	inc	esi
	loop	FieldMass3_1

	mov	esi,[ipMem2]
	mov	ecx,SIZE_MASS2
FieldMass3_2:
	mov	al, byte ptr esi
	test	eax, 1
	je	FieldMass3_21
	mov	byte ptr edi, al
	inc	edi
	inc	edx
FieldMass3_21:
	inc	esi
	loop	FieldMass3_2

	push	edx
	invoke	CreateFileA, NameFileMass3, GENERIC_WRITE, 0, 0, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0
	mov	edi, eax
	invoke	SetFilePointer, edi, 0, 0, FILE_BEGIN
	pop	edx
	invoke	WriteFile, edi, [ipMem3], edx, Ktemp, 0
	invoke	SetEndOfFile, edi
	invoke	CloseHandle, edi

	invoke	CreateFileA, NameFileMass1, GENERIC_WRITE, 0, 0, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0
	mov	edi, eax
	invoke	SetFilePointer, edi, 0, 0, FILE_BEGIN
	invoke	WriteFile, edi, [ipMem1], SIZE_MASS1, Ktemp, 0
	invoke	SetEndOfFile, edi
	invoke	CloseHandle, edi
	invoke	CreateFileA, NameFileMass2, GENERIC_WRITE, 0, 0, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0
	mov	edi, eax
	invoke	SetFilePointer, edi, 0, 0, FILE_BEGIN
	invoke	WriteFile, edi, [ipMem2], SIZE_MASS2, Ktemp, 0
	invoke	SetEndOfFile, edi
	invoke	CloseHandle, edi

	invoke VirtualFree, [ipMem1], 0, MEM_RELEASE
	invoke VirtualFree, [ipMem2], 0, MEM_RELEASE
	invoke VirtualFree, [ipMem3], 0, MEM_RELEASE
	invoke ExitProcess,0

proc nrandom base

     mov     eax, [nrandom_seed]
     xor     edx, edx
     mov     ecx, 127773
     div     ecx
     mov     ecx, eax
     mov     eax, 16807
     mul     edx
     mov     edx, ecx
     mov     ecx, eax
     mov     eax, 2836
     mul     edx
     sub     ecx, eax
     xor     edx, edx
     mov     eax, ecx
     mov     [nrandom_seed], ecx
     div     [base]
     mov     eax, edx
     ret
endp

section '.idata' import data readable writeable

 library kernel32,'KERNEL32.DLL'

 import kernel32,\
	ExitProcess,'ExitProcess', \
	GetTickCount,'GetTickCount', \
	VirtualAlloc, 'VirtualAlloc', \
	WriteFile, 'WriteFile', \
	CreateFileA, 'CreateFileA',\
	SetFilePointer, 'SetFilePointer',\
	CloseHandle, 'CloseHandle', \
	SetEndOfFile, 'SetEndOfFile',\
	VirtualFree, 'VirtualFree'
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 29.01.2010, 11:58   #3
AlexandrHouse
Пользователь
 
Регистрация: 28.01.2010
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Ulex Посмотреть сообщение
Только комментариев не будет, разбирайтесь сами.

Код:
format PE GUI 4.0
entry start

include 'c:\fasm\INCLUDE\win32a.inc'
SIZE_MASS1	EQU 500
SIZE_MASS2	EQU 900

section '.data' data readable writeable
NameFileMass1	db 'mass1.bin', 0
NameFileMass2	db 'mass2.bin', 0
NameFileMass3	db 'mass3.bin', 0
ipMem1		dd 0
ipMem2		dd 0
ipMem3		dd 0
nrandom_seed	dd 0
Ktemp		dd 0

section '.code' code readable executable
start:

	invoke	GetTickCount
	mov	[nrandom_seed], eax

	invoke	VirtualAlloc, 0, SIZE_MASS1, MEM_COMMIT, PAGE_READWRITE
	mov	[ipMem1], eax
	mov	esi, eax
	mov	ecx, SIZE_MASS1
FieldMass1:
	push	ecx
	push	255
	call	nrandom
	mov	byte ptr esi, al
	inc	esi
	pop	ecx
	loop	FieldMass1

	invoke	VirtualAlloc, 0, SIZE_MASS2, MEM_COMMIT, PAGE_READWRITE
	mov	[ipMem2], eax
	mov	esi, eax
	mov	ecx, SIZE_MASS2
FieldMass2:
	push	ecx
	push	255
	call	nrandom
	mov	byte ptr esi, al
	inc	esi
	pop	ecx
	loop	FieldMass2

	invoke	VirtualAlloc, 0, SIZE_MASS1+SIZE_MASS2, MEM_COMMIT, PAGE_READWRITE
	mov	[ipMem3], eax

	mov	edi,[ipMem3]
	mov	esi,[ipMem1]
	mov	ecx,SIZE_MASS1
	xor	edx, edx
FieldMass3_1:
	mov	al, byte ptr esi
	test	eax, 1
	jne	FieldMass3_11
	mov	byte ptr edi, al
	inc	edi
	inc	edx
FieldMass3_11:
	inc	esi
	loop	FieldMass3_1

	mov	esi,[ipMem2]
	mov	ecx,SIZE_MASS2
FieldMass3_2:
	mov	al, byte ptr esi
	test	eax, 1
	je	FieldMass3_21
	mov	byte ptr edi, al
	inc	edi
	inc	edx
FieldMass3_21:
	inc	esi
	loop	FieldMass3_2

	push	edx
	invoke	CreateFileA, NameFileMass3, GENERIC_WRITE, 0, 0, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0
	mov	edi, eax
	invoke	SetFilePointer, edi, 0, 0, FILE_BEGIN
	pop	edx
	invoke	WriteFile, edi, [ipMem3], edx, Ktemp, 0
	invoke	SetEndOfFile, edi
	invoke	CloseHandle, edi

	invoke	CreateFileA, NameFileMass1, GENERIC_WRITE, 0, 0, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0
	mov	edi, eax
	invoke	SetFilePointer, edi, 0, 0, FILE_BEGIN
	invoke	WriteFile, edi, [ipMem1], SIZE_MASS1, Ktemp, 0
	invoke	SetEndOfFile, edi
	invoke	CloseHandle, edi
	invoke	CreateFileA, NameFileMass2, GENERIC_WRITE, 0, 0, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0
	mov	edi, eax
	invoke	SetFilePointer, edi, 0, 0, FILE_BEGIN
	invoke	WriteFile, edi, [ipMem2], SIZE_MASS2, Ktemp, 0
	invoke	SetEndOfFile, edi
	invoke	CloseHandle, edi

	invoke VirtualFree, [ipMem1], 0, MEM_RELEASE
	invoke VirtualFree, [ipMem2], 0, MEM_RELEASE
	invoke VirtualFree, [ipMem3], 0, MEM_RELEASE
	invoke ExitProcess,0

proc nrandom base

     mov     eax, [nrandom_seed]
     xor     edx, edx
     mov     ecx, 127773
     div     ecx
     mov     ecx, eax
     mov     eax, 16807
     mul     edx
     mov     edx, ecx
     mov     ecx, eax
     mov     eax, 2836
     mul     edx
     sub     ecx, eax
     xor     edx, edx
     mov     eax, ecx
     mov     [nrandom_seed], ecx
     div     [base]
     mov     eax, edx
     ret
endp

section '.idata' import data readable writeable

 library kernel32,'KERNEL32.DLL'

 import kernel32,\
	ExitProcess,'ExitProcess', \
	GetTickCount,'GetTickCount', \
	VirtualAlloc, 'VirtualAlloc', \
	WriteFile, 'WriteFile', \
	CreateFileA, 'CreateFileA',\
	SetFilePointer, 'SetFilePointer',\
	CloseHandle, 'CloseHandle', \
	SetEndOfFile, 'SetEndOfFile',\
	VirtualFree, 'VirtualFree'
спасибо!но,она компилируется,а сам exe не запускается
AlexandrHouse вне форума Ответить с цитированием
Старый 29.01.2010, 12:37   #4
AlexandrHouse
Пользователь
 
Регистрация: 28.01.2010
Сообщений: 15
По умолчанию

кстате аесть версия на tasm?
AlexandrHouse вне форума Ответить с цитированием
Старый 01.02.2010, 19:02   #5
AlexandrHouse
Пользователь
 
Регистрация: 28.01.2010
Сообщений: 15
По умолчанию

ну нет экзе файла(((
AlexandrHouse вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны три массива по 10 элементов в каждом. ЮРИЙ ЮРЫЧ Помощь студентам 0 23.12.2009 19:38
разделить элементы данного массива на три подмассива с одинаковой суммой элементов astr_al Помощь студентам 3 19.12.2009 20:05
три задачи (С++) VHomer Помощь студентам 5 10.11.2008 15:22
черный ящик, на три входа и на три выхода Shanson Помощь студентам 7 30.01.2008 09:45