Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Помогите!!! Возникла проблема 
:(
    Опции темы
Slava
  Дата 10.6.2005, 09:05 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Я новичок в программировании, увлекся совсем недавно. Сначала пробовал языки программирования высшего уровня, но вскоре понял, что то чего я хочу заключается в ассемблере. Но постоянно возникают проблемы : то не могу узнать команды для компиляции, то компоненты MASM32 не чвляются приложением WIN32 и т. д. и т. п. Вобщем вопросов полно, так что подскажите где розузнать о ассемблере побольше. smile
  Вверх
Payne
Дата 10.6.2005, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Детектив
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 6.4.2005
Где: Петербург

Репутация: нет
Всего: 10



Вам нужно прогить под Win32 или под ДОС? Если под ДОС, то начинайте с уроков по Асму в этом разделе (их дает Chingachguk). Если под Win32, обратитесь на сайт wasm.ru. Там можно скачать оффлайн архив статей сайта, в котором можно найти уроки по Win32 Assembler Icezelion'а.
PM MAIL WWW ICQ Skype   Вверх
Slava
Дата 12.6.2005, 19:31 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











На Wasm.ru советуют скачать Masm32, я скачал написал текст проги, пишу
ml /с /coff /Cp winurl.asm
link winurl.obj /subsystem:windows
а мне выдает, что ml.exe не является приложением WIN32:(

  Вверх
Payne
Дата 12.6.2005, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Детектив
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 6.4.2005
Где: Петербург

Репутация: нет
Всего: 10



Раз вы скачали Masm32, то я так понимаю, что программируете вы под Windows.
Все, что я могу сейчас сделать, это объяснить пошагово, что нужно делать вообще, хотя советовал бы вам скачать архив статей Wasm.ru (он весит 10 мегабайт smile). Там это все описано, и довольно подробно...
Итак, вы написали исходник своей программы. Сохраняйте ее, к примеру, в папке drive:\masm32\work под именем MyProg.asm (обязательно расширение asm), где drive - привод, где у вас стоит masm32. Теперь запускайте командную строку.
В ней переходите (с помощью команды cd) в каталог drive:\masm32\work, где, собсно, и лежит сырец. Пишете в командной строке следующее (будем считать, что ассемблер стоит у вас на диске C):

c:\masm32\bin\ml /c /coff /Cp MyProg.asm

Ключ /c говорит о том, что мы хотим только оттранслировать прогу, но не компоновать.
Ключ /coff обозначает, что мы создаем объектный файл в формате COFF, стандартном для Windows.
Насчет /Cp не совсем помню: вроде он отвечает за сохранение регистра имен, созданных пользователем, но это не суть важно...
Это был этап трансляции, то бишь создания объектного файла. Если все прошло хорошо, то в каталоге c:\masm32\work должен появиться файл MyProg.obj. Его будем линковать следующей командной строкой:

c:\masm32\bin\link /SUBSYSTEM:WINDOWS /LIBPATH:c:\masm32\lib MyProg.obj

Ключ /SUBSYSTEM указывает подсистему, для которой мы создаем exe-шник. В нашем случае Винды.
/LIBPATH - это путь к библиотекам, подключаемым в вашей программе (команды includelib и include). Это обязательно, так в прогах для Windows используется минимум, состоящий из библиотеки kernel32.lib.
Итак, в папке ...\work должен появиться exe-шник.

З.Ы. То, что здесь написано, должно привести к созданию exe-шника. Я ведь так делаю. А работаю я под WindowsXP, и тем не менее нет такой байды:

Цитата(Slava @ 12.6.2005, 19:31)
ml.exe не является приложением WIN32

PM MAIL WWW ICQ Skype   Вверх
Slava
Дата 13.6.2005, 14:16 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Наверное покажется глупым вопрос, но в с:\masm32\ папки work нет ив помине smile.
А за исчерпывающий ответ спасибо smile
  Вверх
oleg1973
Дата 13.6.2005, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: нет
Всего: 34



рекомендация
исползуйте Fresh IDE+Fasm
настраиват ниче не нада все настроено
проект выгядит так
Код

format PE GUI  
entry start
include '%finc%/win32/win32a.inc'

section '.code' code readable executable
start:                                                    
.........тут наш код


section '.idata' import data readable writeable
include '%finc%/win32/allimports.asm'                      


компилируется 1 кнопкой все


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
Payne
Дата 13.6.2005, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Детектив
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 6.4.2005
Где: Петербург

Репутация: нет
Всего: 10



Цитата(Slava @ 13.6.2005, 14:16)
в с:\masm32\ папки work нет ив помине

Ее должны создать вы сами! Это просто для удобства. То есть все ваши проекты во время обучения будете хранить в папке c:\masm32\work. Да, я ее явно не указал в своем "объяснении", извините. А так вообще вы можете вместо work юзать любой другой каталог. От этого только меняются пути при компиляции.
PM MAIL WWW ICQ Skype   Вверх
Slava
Дата 13.6.2005, 19:35 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Чтото ни чего не появляется, попробую другую прогу написать smile
  Вверх
Payne
Дата 13.6.2005, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Детектив
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 6.4.2005
Где: Петербург

Репутация: нет
Всего: 10



Цитата(Slava @ 13.6.2005, 19:35)
Чтото ни чего не появляется, попробую другую прогу написать

Может, запостите здесь прогу, которую вы писали? Если в ней ошибка, то я, возможно, смогу подсказать, в чем она заключается.
PM MAIL WWW ICQ Skype   Вверх
Wowa
Дата 14.6.2005, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Модератор: Название темы должно отражать ее суть!
PM WWW   Вверх
Guest
Дата 16.6.2005, 17:58 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Ну допустим вот, исходник с сайта без изменений, когда пытась следовать Вашим указаниям на доли секунды высвечивается окно типа MS-DOS и тухнет, а в папке ичего не появляется smile .
Должно быть вращение куба (3D)
;==============================================================================;
; ;
; Assembler Program By Vulture. ;
; 3D-system example. Use the following formulas to rotate a point: ;
; ;
; Rotate around x-axis ;
; YT = Y * COS(xang) - Z * SIN(xang) / 256 ;
; ZT = Y * SIN(xang) + Z * COS(xang) / 256 ;
; Y = YT ;
; Z = ZT ;
; ;
; Rotate around y-axis ;
; XT = X * COS(yang) - Z * SIN(yang) / 256 ;
; ZT = X * SIN(yang) + Z * COS(yang) / 256 ;
; X = XT ;
; Z = ZT ;
; ;
; Rotate around z-axis ;
; XT = X * COS(zang) - Y * SIN(zang) / 256 ;
; YT = X * SIN(zang) + Y * COS(zang) / 256 ;
; X = XT ;
; Y = YT ;
; ;
; Divide by 256 coz we have multiplyd our sin values with 256 too. ;
; This example isn't too fast right now but it'll work just fine. ;
; ;
; Current Date: 6-9-95 Vulture ;
; ;
;==============================================================================;

IDEAL ; Ideal mode
P386 ; Allow 80386 instructions
JUMPS ; Tasm handles out of range jumps (rulez!:))

SEGMENT CODE ; Code segment starts
ASSUME cs:code,ds:code ; Let cs and ds point to code segment

ORG 100h ; Make a .COM file

START: ; Main program

mov ax,0013h ; Init vga
int 10h

mov ax,cs
mov ds,ax ; ds points to codesegment
mov ax,0a000h
mov es,ax ; es points to vga

lea si,[Palette] ; Set palette
mov dx,3c8h
xor al,al
out dx,al
mov dx,3c9h
mov cx,189*3
repz outsb

; === Set some variables ===
mov [DeltaX],1 ; Initial speed of rotation
mov [DeltaY],1 ; Change this and watch what
mov [DeltaZ],1 ; happens. It's fun!

mov [Xoff],256
mov [Yoff],256 ; Used for calculating vga-pos
mov [Zoff],300 ; Distance from viewer

MainLoop:
call MainProgram ; Yep... do it all... smile

in al,60h ; Scan keyboard
cmp al,1 ; Test on ESCAPE
jne MainLoop ; Continue if not keypressed

; === Quit to DOS ===
mov ax,0003h ; Back to textmode
int 10h
lea dx,[Credits]
mov ah,9
int 21h
mov ax,4c00h ; Return control to DOS
int 21h ; Call DOS interrupt

; === Sub-routines ===

PROC WaitVrt ; Waits for vertical retrace to reduce "snow"
mov dx,3dah
Vrt:
in al,dx
test al,8
jnz Vrt ; Wait until Verticle Retrace starts
NoVrt:
in al,dx
test al,8
jz NoVrt ; Wait until Verticle Retrace ends
ret ; Return to main program
ENDP WaitVrt

PROC UpdateAngles
; Calculates new x,y,z angles
; to rotate around
mov ax,[XAngle] ; Load current angles
mov bx,[YAngle]
mov cx,[ZAngle]

add ax,[DeltaX] ; Add velocity
and ax,11111111b ; Range from 0..255
mov [XAngle],ax ; Update X
add bx,[DeltaY] ; Add velocity
and bx,11111111b ; Range from 0..255
mov [YAngle],bx ; Update Y
add cx,[DeltaZ] ; Add velocity
and cx,11111111b ; Range from 0..255
mov [ZAngle],cx ; Update Z
ret
ENDP UpdateAngles

PROC GetSinCos
; Needed : bx=angle (0..255)
; Returns: ax=Sin bx=Cos
push bx ; Save angle (use as pointer)
shl bx,1 ; Grab a word so bx=bx*2
mov ax,[SinCos + bx] ; Get sine
pop bx ; Restore pointer into bx
push ax ; Save sine on stack
add bx,64 ; Add 64 to get cosine
and bx,11111111b ; Range from 0..255
shl bx,1 ; *2 coz it's a word
mov ax,[SinCos + bx] ; Get cosine
mov bx,ax ; Save it bx=Cos
pop ax ; Restore ax=Sin
ret
ENDP GetSinCos

PROC SetRotation
; Set sine & cosine of x,y,z
mov bx,[XAngle] ; Grab angle
call GetSinCos ; Get the sine&cosine
mov [Xsin],ax ; Save sin
mov [Xcos],bx ; Save cos

mov bx,[Yangle]
call GetSinCos
mov [Ysin],ax
mov [Ycos],bx

mov bx,[Zangle]
call GetSinCos
mov [Zsin],ax
mov [Zcos],bx
ret
ENDP SetRotation

PROC RotatePoint ; Rotates the point around x,y,z
; Gets original x,y,z values
; This can be done elsewhere
movsx ax,[Cube+si] ; si = X (movsx coz of byte)
mov [X],ax
movsx ax,[Cube+si+1] ; si+1 = Y
mov [Y],ax
movsx ax,[Cube+si+2] ; si+2 = Z
mov [Z],ax

; Rotate around x-axis
; YT = Y * COS(xang) - Z * SIN(xang) / 256
; ZT = Y * SIN(xang) + Z * COS(xang) / 256
; Y = YT
; Z = ZT

mov ax,[Y]
mov bx,[XCos]
imul bx ; ax = Y * Cos(xang)
mov bp,ax
mov ax,[Z]
mov bx,[XSin]
imul bx ; ax = Z * Sin(xang)
sub bp,ax ; bp = Y * Cos(xang) - Z * Sin(xang)
sar bp,8 ; bp = Y * Cos(xang) - Z * Sin(xang) / 256
mov [Yt],bp

mov ax,[Y]
mov bx,[XSin]
imul bx ; ax = Y * Sin(xang)
mov bp,ax
mov ax,[Z]
mov bx,[XCos]
imul bx ; ax = Z * Cos(xang)
add bp,ax ; bp = Y * SIN(xang) + Z * COS(xang)
sar bp,8 ; bp = Y * SIN(xang) + Z * COS(xang) / 256
mov [Zt],bp

mov ax,[Yt] ; Switch values
mov [Y],ax
mov ax,[Zt]
mov [Z],ax

; Rotate around y-axis
; XT = X * COS(yang) - Z * SIN(yang) / 256
; ZT = X * SIN(yang) + Z * COS(yang) / 256
; X = XT
; Z = ZT

mov ax,[X]
mov bx,[YCos]
imul bx ; ax = X * Cos(yang)
mov bp,ax
mov ax,[Z]
mov bx,[YSin]
imul bx ; ax = Z * Sin(yang)
sub bp,ax ; bp = X * Cos(yang) - Z * Sin(yang)
sar bp,8 ; bp = X * Cos(yang) - Z * Sin(yang) / 256
mov [Xt],bp

mov ax,[X]
mov bx,[YSin]
imul bx ; ax = X * Sin(yang)
mov bp,ax
mov ax,[Z]
mov bx,[YCos]
imul bx ; ax = Z * Cos(yang)
add bp,ax ; bp = X * SIN(yang) + Z * COS(yang)
sar bp,8 ; bp = X * SIN(yang) + Z * COS(yang) / 256
mov [Zt],bp

mov ax,[Xt] ; Switch values
mov [X],ax
mov ax,[Zt]
mov [Z],ax

; Rotate around z-axis
; XT = X * COS(zang) - Y * SIN(zang) / 256
; YT = X * SIN(zang) + Y * COS(zang) / 256
; X = XT
; Y = YT

mov ax,[X]
mov bx,[ZCos]
imul bx ; ax = X * Cos(zang)
mov bp,ax
mov ax,[Y]
mov bx,[ZSin]
imul bx ; ax = Y * Sin(zang)
sub bp,ax ; bp = X * Cos(zang) - Y * Sin(zang)
sar bp,8 ; bp = X * Cos(zang) - Y * Sin(zang) / 256
mov [Xt],bp

mov ax,[X]
mov bx,[ZSin]
imul bx ; ax = X * Sin(zang)
mov bp,ax
mov ax,[Y]
mov bx,[ZCos]
imul bx ; ax = Y * Cos(zang)
add bp,ax ; bp = X * SIN(zang) + Y * COS(zang)
sar bp,8 ; bp = X * SIN(zang) + Y * COS(zang) / 256
mov [Yt],bp

mov ax,[Xt] ; Switch values
mov [X],ax
mov ax,[Yt]
mov [Y],ax

ret
ENDP RotatePoint

PROC ShowPoint
; Calculates screenposition and
; plots the point on the screen
mov ax,[Xoff] ; Xoff*X / Z+Zoff = screen x
mov bx,[X]
imul bx
mov bx,[Z]
add bx,[Zoff] ; Distance
idiv bx
add ax,[Mx] ; Center on screen
mov bp,ax

mov ax,[Yoff] ; Yoff*Y / Z+Zoff = screen y
mov bx,[Y]
imul bx
mov bx,[Z]
add bx,[Zoff] ; Distance
idiv bx
add ax,[My] ; Center on screen

mov bx,320
imul bx
add ax,bp ; ax = (y*320)+x
mov di,ax

mov ax,[Z] ; Get color from Z
add ax,100d ; (This piece of code could be improved)

mov [byte ptr es:di],al ; Place a dot with color al
mov [Erase+si],di ; Save position for erase
ret
ENDP ShowPoint

PROC MainProgram
call UpdateAngles ; Calculate new angles
call SetRotation ; Find sine & cosine of those angles

xor si,si ; First 3d-point
mov cx,MaxPoints
ShowLoop:
call RotatePoint ; Rotates the point using above formulas
call ShowPoint ; Shows the point
add si,3 ; Next 3d-point
loop ShowLoop

call WaitVrt ; Wait for retrace

xor si,si ; Starting with point 0
xor al,al ; Color = 0 = black
mov cx,MaxPoints
Deletion:
mov di,[Erase+si] ; di = vgapos old point
mov [byte ptr es:di],al ; Delete it
add si,3 ; Next point
loop Deletion
ret
ENDP MainProgram

; === DATA ===

Credits DB 13,10,"Code by Vulture / Outlaw Triad",13,10,"$"

Label SinCos Word ; 256 values
dw 0,6,13,19,25,31,38,44,50,56
dw 62,68,74,80,86,92,98,104,109,115
dw 121,126,132,137,142,147,152,157,162,167
dw 172,177,181,185,190,194,198,202,206,209
dw 213,216,220,223,226,229,231,234,237,239
dw 241,243,245,247,248,250,251,252,253,254
dw 255,255,256,256,256,256,256,255,255,254
dw 253,252,251,250,248,247,245,243,241,239
dw 237,234,231,229,226,223,220,216,213,209
dw 206,202,198,194,190,185,181,177,172,167
dw 162,157,152,147,142,137,132,126,121,115
dw 109,104,98,92,86,80,74,68,62,56
dw 50,44,38,31,25,19,13,6,0,-6
dw -13,-19,-25,-31,-38,-44,-50,-56,-62,-68
dw -74,-80,-86,-92,-98,-104,-109,-115,-121,-126
dw -132,-137,-142,-147,-152,-157,-162,-167,-172,-177
dw -181,-185,-190,-194,-198,-202,-206,-209,-213,-216
dw -220,-223,-226,-229,-231,-234,-237,-239,-241,-243
dw -245,-247,-248,-250,-251,-252,-253,-254,-255,-255
dw -256,-256,-256,-256,-256,-255,-255,-254,-253,-252
dw -251,-250,-248,-247,-245,-243,-241,-239,-237,-234
dw -231,-229,-226,-223,-220,-216,-213,-209,-206,-202
dw -198,-194,-190,-185,-181,-177,-172,-167,-162,-157
dw -152,-147,-142,-137,-132,-126,-121,-115,-109,-104
dw -98,-92,-86,-80,-74,-68,-62,-56,-50,-44
dw -38,-31,-25,-19,-13,-6

Label Cube Byte ; The 3d points
c = -35 ; 5x*5y*5z (=125) points
rept 5
b = -35
rept 5
a = -35
rept 5
db a,b,c
a = a + 20
endm
b = b + 20
endm
c = c + 20
endm

Label Palette Byte ; The palette to use
db 0,0,0 ; 63*3 gray-tint
d = 63
rept 63
db d,d,d
db d,d,d
db d,d,d
d = d - 1
endm

X DW ? ; X variable for formula
Y DW ?
Z DW ?

Xt DW ? ; Temporary variable for x
Yt DW ?
Zt DW ?

XAngle DW 0 ; Angle to rotate around x
YAngle DW 0
ZAngle DW 0

DeltaX DW ? ; Amound Xangle is increased each time
DeltaY DW ?
DeltaZ DW ?

Xoff DW ?
Yoff DW ?
Zoff DW ? ; Distance from viewer

XSin DW ? ; Sine and cosine of angle to rotate around
XCos DW ?
YSin DW ?
YCos DW ?
ZSin DW ?
ZCos DW ?

Mx DW 160 ; Middle of the screen
My DW 100

MaxPoints EQU 125 ; Number of 3d Points

Erase DW MaxPoints DUP (?) ; Array for deletion screenpoints

ENDS CODE ; End of codesegment
END START ; The definite end.... smile




; You may use this code in your own productions but
; give credit where credit is due. Only lamers steal
; code so try to create your own 3d-engine and use
; this code as an example.
; Thanx must go to Arno Brouwer and Ash for releasing
; example sources.
;
; Ciao dudoz,
;
; Vulture / Outlaw Triad
  Вверх
Payne
Дата 16.6.2005, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Детектив
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 6.4.2005
Где: Петербург

Репутация: нет
Всего: 10



Цитата(Slava @ 10.6.2005, 09:05)
Я новичок в программировании, увлекся совсем недавно

Ни фига себе! Мне кажется, что начинать изучение языка программирования (а тем более Ассемблера) следует начинать с более простых программ (ну, "Hello, world!", к примеру).
Ладно, значит так, вырезал я этот сырец, вставил в "Блокнот" и сохранил как proga.asm. Из текста понял, что кодите-то вы все-таки не под Win32, а под DOS! Посмотрите на инструкцию ORG 100h - она говорит компилятору о том, что прога расположится со смещения 0100h, которое и характерно для .com-файлов.
Таким образом, при компиляции нужно создавать не .exe, а .com-файл. Следовательно, командные строки

Цитата
c:\masm32\bin\ml /c /coff /Cp MyProg.asm

и
Цитата
c:\masm32\bin\link /SUBSYSTEM:WINDOWS /LIBPATH:c:\masm32\lib MyProg.obj

здесь использовать просто бессмысленно.
Компилировал программу я при помощи (TurboAssembler) TASM 5.0 - уже не помню, где можно скачать, помню, я его в Яндексе за пять минут нашел. Весит около 5 Мб. Для ДОС это, наверное, лучший компилятор. MASM32 и FASM выдавали ошибки еще при ассемблировании, TASM - без проблем откомпилировал, слинковал и запустил!
По аналогии, создавайте папку WORK в каталоге TASM, затем копируйте туда четыре файла из папки bin:
TASM.exe - транслятор;
TLINK.exe - компоновщик;
TD.exe - отладчик;
RTM.exe - не помню, но в каком-то пособии советовали его тоже копирнуть.
Прогу сохраняем в папку WORK. В командной строке переходим в каталог ...\TASM\WORK, транслируем прогу следующей командной строкой:

tasm proga.asm

В папке появится proga.obj, которую компонуем так:

tlink proga.obj /t

Ключ /t говорит о том, что при компоновке создается .com-файл.
Все! Запускаем .com-файл, результат его выполнения - вертящийся в разные стороны куб, составленный из точек...
PM MAIL WWW ICQ Skype   Вверх
oleg1973
Дата 16.6.2005, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: нет
Всего: 34



ребята! давайте плиз один вопрос на топик!


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
Guest
Дата 16.6.2005, 20:03 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











У меня был сборник программ для программирования, но к несчастью он пострадал от вируса, когда я его возьму то попробую... А "Hello, world!" это вот это:
;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
; ПРОЦ, МОДЕЛЬ, ОПЦИИ, ИНКЛУДЫ, БИБЛИОТЕКИ ИМПОРТА
;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

.386
.model flat,stdcall
option casemap:none

includelib kernel32.lib

SetConsoleTitleA PROTO :DWORD
GetStdHandle PROTO :DWORD
WriteConsoleA PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD
ExitProcess PROTO :DWORD
Sleep PROTO :DWORD


;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
; СЕКЦИЯ КОНСТАНТ
;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

.const

sConsoleTitle db 'My First Console Application',0
sWriteText db 'hEILo, Wo®LD!!'

;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
; СЕКЦИЯ КОДА
;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

.code

;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
; Самая Главная Процедура
;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Main PROC
LOCAL hStdout :DWORD ;(1)

;титл консоли
push offset sConsoleTitle ;(2)
call SetConsoleTitleA

;получаем хэндл вывода ;(3)
push -11
call GetStdHandle
mov hStdout,EAX

;выводим HELLO, WORLD! ;(4)
push 0
push 0
push 16d
push offset sWriteText
push hStdout
call WriteConsoleA

;задержка, чтобы полюбоваться ;(5)
push 2000d
call Sleep

;выход ;(6)
push 0
call ExitProcess

Main ENDP

;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

end Main

Сейчас попробую...

  Вверх
  
Закрытая темаСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для начинающих | Следующая тема »


 




[ Время генерации скрипта: 0.0822 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.