|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.12.2016, 12:11 | #1 |
Новичок
Джуниор
Регистрация: 15.12.2016
Сообщений: 1
|
Несмотря на подключение masm32.inc и masm32.lib не подтягиваются функции stdin и stdout
.686; Директива определения типа микропроцессора
.Model flat, stdcall; задачи линейной модели памяти ; И соглашения ОС Windows option casemap: none; отличие малых и больших букв include \masm32\include\windows.inc include \masm32\include\kernel32.inc include \masm32\include\fpu.inc include \masm32\include\user32.inc include \masm32\include\msvcrt.inc include \masm32\include\masm32.inc includelib \masm32\lib\masm32.lib includelib \masm32\lib\user32.lib includelib \masm32\lib\kernel32.lib includelib \masm32\lib\msvcrt.lib includelib \masm32\lib\fpu.lib .Data; директива определения данных _c dd 24 sum dd 0 max dd 0; запись в 32-разрядную ячейку памяти с именем op1 temp dd 7 frmt db "% d", 0 buf db 50 dup (?) stdout DWORD? stdin DWORD? cRead dd? mas1 dd 32 dup (0) nomer dd 0 st1 db "Vvesty masiv:" st2 db "Вывод результата перемещения", 0 st3 db 10 dup (0) ifmt db "Максимальный элемент =% d. Строка% d перенена в конец массива", 0 .Code; директива начала кода _start: lea esi, mas1; загрузки адреса начала массива mov ecx, _c m1: mov ebx, ecx invoke GetStdHandle, STD_OUTPUT_HANDLE mov stdout, eax invoke GetStdHandle, STD_INPUT_HANDLE mov stdin, eax invoke WriteConsoleA, stdout, ADDR st1, 14, NULL, NULL; VIVOD ST1 invoke ReadConsole, stdin, ADDR buf, 20, ADDR cRead, NULL; чтение числа как символ invoke crt_atoi, ADDR buf;превратить символ в число mov [esi], eax add esi, 4 mov ecx, ebx loop m1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;; mov ecx, _c lea esi, mas1;загрузка адреса начала массива mov eax, [esi]; загрузки числа m3: .IF (eax> max); условие mov max, eax add esi, 4; расчет адреса нового числа mov eax, [esi] loop m3 .ELSE; иначе add esi, 4;расчет адреса нового числа mov eax,[esi] loop m3; перейти,если ecx и 0 .ENDIF; окончания директивы высокого уровня ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;; mov ecx, _c lea esi, mas1; загрузки адреса начала массива mov eax, [esi]; загрузки числа m4: .IF (eax == max); условие inc nomer; находим в каком месте находится максимальный элемент add esi, 4;расчет адреса нового числа mov eax, [esi] jmp m5 loop m4 .ELSE; иначе inc nomer add esi, 4; расчет адреса нового числа mov eax, [esi] loop m4; перейти, если ecx и 0 .ENDIF; окончания директивы высокого уровня m5: mov eax,nomer mov edx,0 div temp; в регистре eax находится число строки - 1 mov edx,0 .IF (eax == 0); условие mov ebx,24 .ELSEIF (eax == 1); условие mov ebx,18 .ELSEIF (eax == 2); условие mov ebx,12 .ELSEIF (eax == 3); условие mov ebx,6 .ENDIF mov ecx,6 mov edx,ax shl edx,2 add ebx,edx x1: lea esi,mas1; загрузки адреса начала массива mov edx,[Esi + eax * 4]; загрузки числа mov [esi + ebx],edx mov edx,0 mov [esi],edx add esi,4 loop x1 jmp end_prog end_prog: mov ebx,max inc eax invoke wsprintf,\ ADDR st3,\ ADDR ifmt,\ ebx,ax invoke MessageBox, \ NULL, \ addr st3, \ addr st2, \ MB_OK invoke ExitProcess, 0 ret end _start; окончания программы |
15.12.2016, 13:24 | #2 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
dFender, покури маны из папки MASM. Там есть примеры использования.
ИМХО ты не перечислил функции импорта
Нашедшего выход - затаптывают первым..
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как записать подключение inpout32.dll в Masm32 | pisk37 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 0 | 12.05.2013 23:27 |
MASM32 | djonatan98 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 61 | 26.04.2012 10:20 |
masm32 | Katya25 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 1 | 17.05.2011 08:40 |
STDIN и STDOUT | VovanZ | Общие вопросы Delphi | 2 | 07.04.2010 20:15 |
[masm32] GetCurrentDirectoryA | Xatr | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 6 | 07.12.2009 16:14 |