Помогите, пожалуйста, разобраться, почему не работает прога. Вот есть такой код:
;-----------------------------------------------------------------------------
sized equ 256
cur_dir db sized dup(0)
win_dir db sized dup(0)
mix db '\123.exe',0
;…
assume ds:_DATA,es:_DATA
push offset cur_dir
push sized
call GetCurrentDirectoryA
test eax,eax
jz ex1t
cld
lea esi,mix
lea edi,cur_dir
add edi,eax
mov ecx,8
rep movsb
push sized
push offset win_dir
call GetWindowsDirectoryA
test eax,eax
jz ex1t
cld
lea esi,mix
lea edi,win_dir
add edi,eax
mov ecx,8
rep movsb
push 0
push offset cur_dir
push offset win_dir
call CopyFileA
;-----------------------------------------------------------------------
Этот код должен копировать эту же прогу под именем 123.exe у Win-директорию. Исходное имя программы тоже 123.exe.
Нужна Ваша помощь!
Модератор: Andy
1. Даем осмысленные названия темам!
2. Используем ВВ-теги
Почему не работает разиратся не буду. На первый взгляд правильно. Правда имя программы можно взять относительное - без каталога.
Мой вариант:
2. Используем ВВ-теги
Код: Выделить всё
Мой вариант:
Код: Выделить всё
.386
.model flat
.data
WindowsDirectoryBufferSize equ 64
szApplicationError db "Error!!!",0
szFileName db "123.exe",0
szSlash db "\",0
lpszWindowsDir db WindowsDirectoryBufferSize dup(0)
.code
includelib import32.lib
extrn CopyFileA:near
extrn ExitProcess:near
extrn GetWindowsDirectoryA:near
extrn MessageBoxA:near
extrn lstrcat:near
_start:
push WindowsDirectoryBufferSize
push offset lpszWindowsDir
call GetWindowsDirectoryA
or eax,eax
jz AppError
push offset szSlash
push offset lpszWindowsDir
call lstrcat
push offset szFileName
push offset lpszWindowsDir
call lstrcat
push 0
push offset lpszWindowsDir
push offset szFileName
call CopyFileA
or eax,eax
jnz ExitApp
AppError:
push 10h
push offset szApplicationError
push offset szApplicationError
push 0
call MessageBoxA
ExitApp:
push 0
call ExitProcess
end _start
*provided AS IS
Спасибо, Andy! А в MASM-е есть ф-ция lstrcat?
Чем, кроме имени импортируемого либа и обьявления API, код будет отличаться для MASM?
Чем, кроме имени импортируемого либа и обьявления API, код будет отличаться для MASM?
Assembler forever!
Всё работает! Огромное СПАСИБО!
Assembler forever!
lstrcat - это функция WinAPI.А в MASM-е есть ф-ция lstrcat?
Да вобщем-то ничем...Чем, кроме имени импортируемого либа и обьявления API, код будет отличаться для MASM?
*provided AS IS