Форум HeroesWorld-а - Показать сообщение отдельно - Программирование
Показать сообщение отдельно
#75
Старый 27.07.2016, 11:15
  #75
^
Hermit
 
Аватар для Hermit
📖
Регистрация: 08.09.2008
Сообщения: 1954
Регистрация: 08.09.2008
Сообщения: 1954
По умолчанию
Re: Программирование

Проблема.
В каталоге Folder1 есть файл test.exe - десктопное приложение windows.
Его скопировали в каталог Folder2, переименовали в test.txt. После этого его открыли в текстовом редакторе и добавили ему в начало текстовую строку из 32 символов (с учётом символа перехода на новую строку перед содержимым exe-файла 33 символа). После этого программой test.com в каталоге Folder2 перекопировали содержимое файла test.txt, начиная с 33-его байта в файл test.exe.

Вот программа test.com
.286
.model tiny
.code

org 100h

begin:

mov ax, 3d02h
xor cx, cx;
lea dx, ifilename
int 21h
mov ifiledescriptor, ax;

mov ah, 42h;
mov bx, ifiledescriptor;
mov al, 00h;
mov cx, 0000h
mov dx, 33
int 21h

mov ah, 3ch
xor cx, cx
mov dx, offset ofilename
int 21h
mov ofiledescriptor, ax;

start:
mov ax, 4406h
mov bx, ifiledescriptor
int 21h
or al, al
je exit

mov ah, 3fh
mov bx, ifiledescriptor
mov cx, 0001h
mov dx, offset symbol
int 21h

mov ah, 40h
mov bx, ofiledescriptor
mov cx, 0001h
mov dx, offset symbol
int 21h
jmp start

exit:
mov ax, 4c00h
int 21h

ifilename db "test.txt",0
ofilename db "test.exe",0
ifiledescriptor dw (?)
ofiledescriptor dw (?)
symbol db (?)
end begin

Com-файл из неё делаю так
tasm.exe test.asm
tlink.exe test.obj /t

Теперь мы в каталоге Folder2 получили файл test.exe с точно таким же содержимым, что и test.exe в каталоге Folder1. Но беда: и называются файлы одинаково, и содержимое у них одинаковое, да только это разные файлы!!! И когда я пытаюсь запустить на выполнение файл test.exe в каталоге folder2 вместо декстопного приложений windows выскакивает досовское текстовое окошко с сообщением "Program too big to fit in memory". Я думаю, что это из за того, что файл создавался обработчиком прерывания DOS - досовский файл.

И теперь большой вопрос. Как перекопировать содержимое файла test.txt в test.exe, начиная с 33-его символа, чтобы оно запустился, как десктопное приложение windows???
__________________
Всё не так плохо как Вы думаете. Всё намного хуже!
Всё не так плохо как Вы думаете. Всё намного хуже!
Hermit вне форума
Ответить с цитированием