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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.02.2008, 13:14   #1
Алексей-76
Новичок
Джуниор
 
Регистрация: 13.02.2008
Сообщений: 1
По умолчанию Сортировка чисел на ассемблере ( плачу 8$ за прогу )

Срочно нужна программа сортировки чисел на ассемблере. Готов заплатить за нее 5$. Могу в долларах на Webmoney или в рублях на Я.Деньги.


Задание
Дан массив из 8 чисел. Нужно упорядочить эти числа по убыванию не используя второй массив.

Для связи: ICQ: 438-253-283
Алексей-76 вне форума Ответить с цитированием
Старый 13.02.2008, 16:37   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я и так тебе примерно покажу сортировку:

Код:
	.386
	.model flat,stdcall
	option casemap:none
	include d:\masm32\include\windows.inc
	include d:\masm32\include\user32.inc
	include d:\masm32\include\kernel32.inc
	include d:\masm32\include\gdi32.inc
	include d:\masm32\include\comdlg32.inc
	include d:\masm32\include\shell32.inc
	include d:\masm32\include\masm32.inc
	includelib d:\masm32\lib\user32.lib
	includelib d:\masm32\lib\kernel32.lib
	includelib d:\masm32\lib\gdi32.lib
	includelib d:\masm32\lib\comdlg32.lib
	includelib d:\masm32\lib\shell32.lib
	includelib d:\masm32\lib\masm32.lib
WinMain proto :DWORD,:DWORD,:DWORD,:DWORD
RGB macro red,green,blue
	xor		eax,eax
	mov		ah,blue
	shl		eax,8
	mov		ah,green
	mov		al,red
endm
szText MACRO Name,Text:VARARG
	LOCAL	lbl
	jmp		lbl
	Name	db Text,0
	lbl:
ENDM
.const
listbox1ID		equ 1
.data?
hFontN			HWND ?
hwndlistbox1	HWND ?
hInstance		HINSTANCE ?
CommandLine		LPSTR ?
.data
FontName		db "MS Sans Serif",0
lf				LOGFONT <>
Textlistbox1	db 0,0
;_______________
ClassName		db "MASM Builder",0
BtnClName		db "button",0
StatClName		db "static",0
EditClName		db "edit",0
LboxClName		db "listbox",0
CboxClName		db "combobox",0
ReditClName		db "richedit",0
RichEditLib		db "riched32.dll",0
Caption			db "Form",0
;_______________
arr				dw 1,20,6,5,4,8,96
s				db "qwqeqeqeqeqeq"
lenarr			equ 6
.code
start:
	invoke	GetModuleHandle,NULL
	mov		hInstance,eax
	invoke	GetCommandLine
	invoke	WinMain,hInstance,NULL,CommandLine,SW_SHOWDEFAULT
	invoke	ExitProcess,eax
WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR,CmdShow:DWORD
LOCAL wc	:WNDCLASSEX
LOCAL msg 	:MSG
LOCAL hwnd	:HWND
	mov		wc.cbSize,SIZEOF WNDCLASSEX
	mov		wc.style,CS_BYTEALIGNCLIENT
	mov		wc.lpfnWndProc,offset WndProc
	mov		wc.cbClsExtra,NULL
	mov		wc.cbWndExtra,NULL
	push	hInst
	pop		wc.hInstance
	mov		wc.hbrBackground,COLOR_BTNFACE+1
	mov		wc.lpszClassName,OFFSET ClassName
	invoke	LoadIcon,NULL,IDI_APPLICATION
	mov		wc.hIcon,eax
	mov		wc.hIconSm,eax
	invoke	LoadCursor,NULL,IDC_ARROW
	mov		wc.hCursor,eax
	invoke	RegisterClassEx,addr wc
invoke CreateWindowEx,0,ADDR ClassName,ADDR Caption,WS_SYSMENU or WS_MINIMIZEBOX,350,80,315,200,0,0,hInst,0
	mov		hwnd,eax
	INVOKE	ShowWindow,hwnd,SW_SHOWNORMAL
	INVOKE	UpdateWindow,hwnd
	.WHILE TRUE
		invoke	GetMessage,ADDR msg,0,0,0
		.BREAK .IF (!eax)
		invoke	TranslateMessage,ADDR msg
		invoke	DispatchMessage,ADDR msg
	.ENDW
 	mov	eax,msg.wParam
	ret
WinMain endp
p proc
  mov ecx, lenarr
a4:
  push ecx
  mov ecx, lenarr
  mov ebx, offset arr
a2:
 mov ax, [ebx]
 mov dx, [ebx+2]
 cmp ax,dx
 jg a3
 mov [ebx],dx
 mov [ebx+2], ax
a3:
 add ebx,2
 loop a2
 pop ecx
 loop a4
;---------------
 mov ecx, lenarr
 mov esi, offset arr
a1:
 push ecx
 lodsw
 invoke dwtoa, eax, addr s
 invoke SendMessage, hwndlistbox1, LB_ADDSTRING, 0, addr s
 pop ecx
 loop a1
 ret
p endp
WndProc proc hWnd:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM
	.IF uMsg == WM_DESTROY
		invoke	PostQuitMessage,NULL
	.ELSEIF uMsg == WM_CREATE
		invoke	lstrcpy,addr lf.lfFaceName,addr FontName
		mov		lf.lfHeight,-11
		mov		lf.lfWeight,500
		invoke	CreateFontIndirect,addr lf
		mov		hFontN,eax
invoke CreateWindowEx,WS_EX_CLIENTEDGE,ADDR LboxClName,ADDR Textlistbox1,WS_CHILD or CBS_HASSTRINGS or LBS_NOINTEGRALHEIGHT or WS_VISIBLE,56,32,121,97,hWnd,listbox1ID,hInstance,0
		mov		hwndlistbox1,eax
		invoke	SendMessage,hwndlistbox1,WM_SETFONT,hFontN,1
		invoke p
	.ELSE
		invoke	DefWindowProc,hWnd,uMsg,wParam,lParam
		ret
	.ENDIF
	xor		eax,eax
	ret
WndProc endp
end start
Я вообще только начинаю вникать в хитросплетения асма так что за кривизну кода попрошу не буцать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.02.2008, 19:54   #3
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

В любом учебнике по ассемблеру эта тема обсасывается до костей и, чтобы найти исходник, нужно просто оторвать от дивана то, на чем сидят, и взять (скачать, купить...) книжку...
mihali4 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите написать прогу!Среди заданных целых чисел k, l, m найти пары кратных.Написать по проще чемЭесть vdv08 Паскаль, Turbo Pascal, PascalABC.NET 4 04.04.2008 16:56
Сортировка массива чисел Roberto Помощь студентам 1 02.04.2008 23:19
Плачу за задачи по турбопаскалю!!! ProX Фриланс 5 30.12.2007 00:26
Нужна програмка. Плачу WMZ Cool J Фриланс 12 01.12.2007 16:08
Помогите откомпилировать прогу на Ассемблере Anna_fors Помощь студентам 15 04.09.2007 14:45