Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   [ASSEMBLER] Задаем вопросы (для новичков) (https://forum.antichat.xyz/showthread.php?t=70421)

SEKTOR3A 05.03.2010 22:36

Цитата:

Сообщение от Tor Bel
А после RT_VERSION,versions запятую или обратный слеш не пропустил?

А висходнике именно так
Код:

LANG_E  NGLISH




а ты сам пробовал скомпелировать,





исходник я уже 10 раз изменил под себя ,а оригинальный исходник рабочий это я сам типо вписал сам вот эти коды и он перестал работать
PHP код:

section '.idata' import data readable writeable

  library kernel32
,'KERNEL32.DLL',\
          
user32,'USER32.DLL',\
          
COMDLG32,'COMDLG32.dll'

  
include 'includeapikernel32.inc'
  
include 'includeapiuser32.inc'


        
import  COMDLG32,\
         
GetOpenFileName,'GetOpenFileNameA',\
         
GetSaveFileName,'GetSaveFileNameA'






section '.rsrc' resource data readable
    IDR_PICT 
27

  directory  RT_DIALOG
,dialogs,\
              
RT_BITMAP,bitmaps,\
             
RT_ICON,icons,\
             
RT_GROUP_ICON,group_icons,\
             
RT_RCDATA,rdata


      resource icons
,\
1,LANG_NEUTRAL,icon_data
resource group_icons
,\
17,LANG_NEUTRAL,main_icon
resource versions
,\
2,LANG_ENGLISH+SUBLANG_DEFAULT,version

resource bitmaps
,\
IDR_PICT,LANG_NEUTRAL,pict

   resource dialogs
,\
    
1000,LANG_ENGLISH+SUBLANG_DEFAULT,dialog0 

PHP код:

 bitmap pict,'map.bmp'
icon main_icon,icon_data,'611.ico'
versioninfo version,VOS__WINDOWS32,VFT_APP,VFT2_UNKNOWN,LANG_E  NGLISH+SUBLANG_DEFAULT,0,\
'FileDescription','Bitmap example',\
 
'LegalCopyright',<'Copyright ',0A9h,' BarMentaLisk 2009'>,\
'FileVersion','0.1',\
'ProductVersion','0.1',\
'OriginalFilename','bmp_example 


PHP код:

intd:


  
invoke SendMessage,[hwnd],WM_SETICON,0,[hIc],ICON_SMALL,eax
       jmp  finish 

PHP код:

mov ,eax 

эти строки кода были добавлены мной, оригинальный исходник в полном рабочем состоянии ,хотел добавит картинку в деологовое окно да не вышло.
---------------------------------------------------
и еще по первому посту к fluffylion (название данного поля структуры IMAGE_SECTION_HEADER пишется с большой буквы В исходниках так и есть с большой буквы но не выходит не по первому моему вопросу не по второму,спс

Jino 05.03.2010 23:07

Цитата:

Сообщение от fluffylion
Jino какое окно? Я так понимаю, ты говоришь про окно отладчика, так оно и не должно закрываться...

Нет, когда начинаешь смотреть Олей программу открывается окно консольного приложения - оно не закрывается... так и должно быть?

SEKTOR3A 06.03.2010 03:54

Цитата:

Сообщение от Tor Bel
А после RT_VERSION,versions запятую или обратный слеш не пропустил?

А висходнике именно так
Код:

LANG_E  NGLISH


Спасибо разобрался сам должно выйти так как было задумано
http://img.pixs.ru/storage/1/9/6/ver...692_501196.jpg

Fl0dER 12.03.2010 21:31

Люди добрые обьясните как компилить в masm последней версии открываю простейший проэкт из папки tutorial , жмякаю project -> built_all и ввижу в коммандной строке



Код:

Microsoft (R) Macro Assembler Version 6.14.8444
Copyright (C) Microsoft Corp 1981-1997.  All rights reserved.

 Assembling: C:\masm32\tutorial\console\demo1\hello.asm
Microsoft (R) Incremental Linker Version 5.12.8078
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

LINK : fatal error LNK1181: cannot open input file "C:\masm32\tutorial\console\d
emo1\hello.obj"
_
Link error
Для продолжения нажмите любую клавишу . . .


dr.Pilulkin 24.03.2010 09:13

Код:

C:\Masm32\Bin\ML.EXE /c /coff /Cp /nologo /I"C:\Masm32\Include" "hello.asm"
C:\Masm32\Bin\LINK.EXE /SUBSYSTEM:WINDOWS /RELEASE /VERSION:4.0 /LIBPATH:"C:\Masm32\Lib" /OUT:"hello.exe" "hello.obj"

Создай батник в папке с hello.asm.
Если не получается тогда не знаю. У тебя похоже не создается .obj файл. Возможно ошибки в коде.

wm2 01.04.2010 11:40

вычислить сумму чисел меньше 6
 
Код:

data segment
max dw ?
mass dw 1,14,4,9,5,21,3,17,12,100
data ends
code segment
assume cs: code, ds: data
                start:        mov ax, data
                mov ds, ax                ; Загрузить сегментный адрес данных
                                  lea bx, mass        ; Загрузить адрес смещения массива
                                mov cx, 10        ; Установить счетчик повторений цикла
                                mov ax, 6;      Первый элемент массива в Аккумулятор
                          beg:        cmp [bx],ax        ; Сравнить текущий элемент
                ; массива с максимальным
                                jg no        ; он больше
                add dx, [bx]                ; сумма

        no:  inc bx       
                    inc bx                ; Следующий элемент
                                ; массива
                        loop beg                               
        quit:        mov ax,4C00h                ; Код завершения 0
int 21h                        ; Выход в DOS
        code ends
        end start

подскажите пожалуйста как сделать что бы работало в байте ?

fluffylion 01.04.2010 11:55

wm2, что значит в байте?Ты имеешь в виду чтобы программа работала с переменными, размерностью в байт, а не слово?

wm2 01.04.2010 12:49

fluffylion, именно... у нас практика в универе страдает :-D

slesh 01.04.2010 13:11

Код:

data segment
mass db 1,14,4,9,5,21,3,17,12,100
data ends
code segment
assume cs: code, ds: data
                start:        mov ax, data
                mov ds, ax                ; Загрузить сегментный адрес данных
                        xor dx, dx; обнулим сумму
                                  lea bx, mass        ; Загрузить адрес смещения массива
                                mov cx, 10        ; Установить счетчик повторений цикла
                                mov al, 6;      Первый элемент массива в Аккумулятор
                          beg:        cmp [bx],al        ; Сравнить текущий элемент
                ; массива с максимальным
                                jg no        ; он больше
                add dx, byte [bx]                ; сумма

        no: 
                    inc bx                ; Следующий элемент
                                ; массива
                        loop beg                               
        quit:        mov ax,4C00h                ; Код завершения 0
int 21h                        ; Выход в DOS
        code ends
        end start


wm2 01.04.2010 13:23

slesh, получается ответ 0x183D а должно 0x000D


Время: 21:20