На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Перед отправкой сообщения внимательно прочтите правила раздела!!!
1. Запрещается обсуждать написание вирусов, троянов и других вредоносных программ!
2. Помните, что у нас есть FAQ раздела Assembler и Полезные ссылки. Посмотрите, возможно, там уже имеется решение вашего вопроса.

3. Настоятельно рекомендуем обратить особое внимание на правила форума, которые нарушаются чаще всего:
  3.1. Заголовок темы должен кратко отражать её суть. Темы с заголовками типа "Срочно помогите!" или "Ассемблер" будут отправляться в Корзину для мусора.
  3.2. Исходники программ обязательно выделяйте тегами [code]...[/code] (одиночные инструкции можно не выделять).
  3.3. Нежелательно поднимать старые темы (не обновлявшиеся более года) без веской на то причины.

Не забывайте также про главные Правила форума!

Добро пожаловать и приятного вам общения!!! ;)
 
Модераторы: Jin X, Qraizer
  
> Помогите с основами !
    Выручайте !
    В начале приведу программу ( не я писал, взял в примере ):
    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 (!),
    а при выполнении этой программы она "выполняет некорректную операцию",
    известную только ей самой и, соответственно, закрывается.
    Чё делать ?
    Заранее спасибо !
      Как говорил тов. Ульянов: Учиться, учиться и учиться...
      Дорогой друг! Ну найдите в себе силы дочитать учебник до конца... Или возьмите руководство по Turbo Assembler и посмотрите там описание отличий в компоновке com- и exe-файлов.
      Я, конечно, скажу, что компоновщик tlink имеет параметр /t - но понимания значения этого параметра это не принесет... Сначала постарайтесь догадаться, что ничего эта программа не перехватывает.
        Могу сказать точнее ента прога просто выводит строчку стринг....и ждёт нажатия клавиши....
          Чтобы не парить мозги, рекомендую завести такие пакетный файлики в папке 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
          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0249 ]   [ 15 queries used ]   [ Generated: 27.04.24, 22:44 GMT ]