Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.119.118.99] |
|
Сообщ.
#1
,
|
|
|
Выручайте !
В начале приведу программу ( не я писал, взял в примере ): CSEG segment org 100h Begin: mov ah,9 mov dx,offset String int 21h mov ah,10h int 16h int 20h String db 'Нажмите любую клавишу...$' CSEG ends end Begin Как я понял программа перехватывает прерывание от клавиатуры и возвращается в ДОС. А проблема вот какая: Всё делаю, как сказано в руководстве по ассемблеру, т.е. 1. С помощью TASM.EXE превращаю 1.asm в 1.obj 2. С помощью TLINK.EXE превращаю 1.obj в ......... А здесь начинается самое интересное: Вместо 1.com получается 1.exe (!), а при выполнении этой программы она "выполняет некорректную операцию", известную только ей самой и, соответственно, закрывается. Чё делать ? Заранее спасибо ! |
Сообщ.
#2
,
|
|
|
Как говорил тов. Ульянов: Учиться, учиться и учиться...
Дорогой друг! Ну найдите в себе силы дочитать учебник до конца... Или возьмите руководство по Turbo Assembler и посмотрите там описание отличий в компоновке com- и exe-файлов. Я, конечно, скажу, что компоновщик tlink имеет параметр /t - но понимания значения этого параметра это не принесет... Сначала постарайтесь догадаться, что ничего эта программа не перехватывает. |
Сообщ.
#3
,
|
|
|
Могу сказать точнее ента прога просто выводит строчку стринг....и ждёт нажатия клавиши....
|
Сообщ.
#4
,
|
|
|
Чтобы не парить мозги, рекомендую завести такие пакетный файлики в папке Bin, или в другой, указанной в PATH:
make_com.bat ----begin--------------------- tasm /m /ml \%1 tlink /t /x \%1.obj del \%1.obj ----end----------------------- make_exe.bat ----begin--------------------- tasm /m /ml \%1 tlink /x \%1.obj del \%1.obj ----end----------------------- Нужно скомпилить, допустим, a.asm в a.com: make_com a |