Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: программирование на языке Assembler


Информационный Канал Subscribe.Ru

RusFAQ.ru: программирование на языке Assembler

Выпуск № 677
от 20.12.2003, 10:50

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 4669
Отправлено ответов: 13281
Активность: 284.4 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

SedHg
Статус: Начальный
Общий рейтинг: 109.43
[Подробней >>]
fC
Статус: Профессиональный
Общий рейтинг: 152.08
URL: Тезка :)
[Подробней >>]
PUSH
Статус: Доверительный
Общий рейтинг: 107.42
[Подробней >>]
 
Case_X
Статус: Начальный
Общий рейтинг: 122.64
[Подробней >>]
_vt
Статус: Профессиональный
Общий рейтинг: 118.88
[Подробней >>]
ASMодей
Статус: Профессиональный
Общий рейтинг: 112.64
[Подробней >>]
 
dr_dolphin
Статус: Опытный
Общий рейтинг: 114.39
[Подробней >>]
Artemy
Статус: Доверительный
Общий рейтинг: 120.77
[Подробней >>]
Евгений Иванов
Статус: Профессиональный
Общий рейтинг: 139.55
URL: Super Assembler Software
Телефон: Пчёлка +7 905 6601206
[Подробней >>]
 
Gibbel
Статус: Профессиональный
Общий рейтинг: 106.21
URL: Savage Metal Club - жизнь в стиле рок-н-ролл
Телефон: +7 901 710 3146
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 4634. Этот вопрос меня мучает уже несколько дней(и ночей), каким способом можно создать файл ресурсов для ... (ответов: 2)
Вопрос № 4635. Привет, Эксперты! Может быть, вопрос не совсем по теме, но именно здесь я видел ответы экспертов, ко... (ответов: 1)
Вопрос № 4636. Здравствуйте, уважаемые эксперты! Хотелось бы задать вопрос по сокетам. Например есть структура sin ... (ответов: 3)
Вопрос № 4637. Добрый вечер! Из одной задачи с 16 битны мкодом передаю управление дальним jmp'ом в другую с 32 б... (ответов: 2)
Вопрос № 4638. Здраствуйте! Я читаю книжку Абеля и там есть одна программа которая не хочет компилироваться(код нап... (ответов: 2)
Вопрос № 4639. Здравствуйте, господа эксперты. Никто не ответил мне на мой предыдущий вопрос. Наверное я слишком мн... (ответов: 3)
Вопрос № 4640. Проверка связи Приём, приём Как слышно Я что-то не получаю на свой e-mail ни одного письма с вопроса... (ответов: 1)
Вопрос № 4641. наисал я текст первой проги в текстовом редакторе,методом найучного тыка(в учебнике не было сказано ... (ответов: 4)
Вопрос № 4642. По поводу вопроса 4469 - Тут пробегало письмо по поводу ограничений по возрасту - ну а я не мог не о... (ответов: 1)
Вопрос № 4643. Доброе время суток уважаемые эксперты. У меня вопрос по низкоуровневому доступу к CD-ROM. Никак не м... (ответов: 2)
Вопрос № 4646. Приветствую! Очень прошу Вас помочь написать графическую програмку такого типа: Выводятся 20 квадрат... (ответов: 2)
Вопрос № 4647. Уважаемые эксперты, вопрос как грамотно в файле ресурсов прописать контрол для диалогового окна ,... (ответов: 2)

Вопросов: 12, ответов: 25


 Вопрос № 4634

Этот вопрос меня мучает уже несколько дней(и ночей), каким способом можно создать файл ресурсов для диалоговых окон, и как его потом использовать с MASM'ом. Если не трудно приведите пример в виде листинга.



Вопрос отправлен: 14.12.2003, 02:58
Отправитель: Serg (Serg-Chapin@yandex.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает SedHg

Приветствую Вас, Serg!
На такой вопрос в двух словах не ответишь. Поэтому готовься, текст будет
длинным, чтобы было более понятно.
Я знаю два способа создания ресурсов. Первый наиболее простой и не требующий
много времени ( и мозгов =) ).
Чтобы этот способ осуществить тебе понадобится редактор ресурсов (для этих целей
лучше всего подойдет ResHacker), MASM32 (насколько я понял он у тебя есть), и
разные exe'шники (чем больше, тем лучше). И так по порядку, редактор ресурсов
нужен для следующего: добычи ресурсов (диалогов, меню и т.д.) из exe'шников,
визуального редактирования ресурсов, компиляции выдранных из прог ресурсов.
MASM, в нашем случае, является не только компилятором, но и достаточно большой
базой ресурсов для начинающих программеров. Если ты заметил, в MASM'е имеется
большое количество примеров (Example, Icztutes), в которых присутствуют файлы
ресурсов (*.RES), вот мы их открываем в редакторе ресурсов и лепим из них, то
что нам надо, причем все это WYSIWYG (то есть что видишь, то и получишь).
Отредактировав файл ресурсов, сохрани его. Для чего нужны exe'шники, я думаю, ты
догадался (понравился тебе какой-нибудь диалог, меню и т.д., выдрал его из
проги, отредактировал и сохрани в файле ресурсов (*.RES)). Что делать с файлом
ресурсов я объясню после описания второго способа. Итак, преимущество данного
способа - это полный контроль над созданием ресурсов, а недостаток - большое
количество времени, потраченное на описание этих ресурсов. Суть способа такова,
берешь любой текстовой редактор(notepad) и описываешь все что ты хочешь
получить, сохраняешь его как .rc (файл ресурсных скриптов), затем компилируешь
каким-нибудь компилятором ресурсов( RC, BCCR32, первый входит в состав MASM,
другой Borland C++, также есть они в Visual C++), в итоге получаешь тот же самый
.RES. Получив файл ресурсов его необходимо во время линковки прилинковать к
объектному файлу (*.obj). И если все было сделано правильно, то мы получаем
готовый exe.
PS rc /r **.rc (компилирование файла ресурсных скриптов)
link *.obj **.res /subsystem:windows (линковка).
Где * и ** имена объектного файла и файла ресурсов соответственно.

Как ты и просил, привожу пример написания ресурсов ручками.
// это пример не претендует на оригинальность, т.к. он взят из туториалов Iczelion'a,;).
1) создаем текстовой файл следующего содержания:
#include "resource.h"
#define IDC_EDIT 3000
#define IDC_BUTTON 3001
#define IDC_EXIT 3002
#define IDR_MENU1 3003
#define IDM_GETTEXT 32000
#define IDM_CLEAR 32001
#define IDM_EXIT
;======================================
; Описание Dialog Box
;====================================== 32003
MyDialog DIALOG 10, 10, 205, 60
STYLE 0x0004 | DS_CENTER | WS_CAPTION | WS_MINIMIZEBOX |
WS_SYSMENU | WS_VISIBLE | WS_OVERLAPPED | DS_MODALFRAME | DS_3DLOOK
CAPTION "Our Second Dialog Box"
;======================================
; Описание меню
;======================================
MENU IDR_MENU1
BEGIN
EDITTEXT IDC_EDIT, 15,17,111,13, ES_AUTOHSCROLL | ES_LEFT
DEFPUSHBUTTON "Say Hello", IDC_BUTTON, 141,10,52,13
PUSHBUTTON "E&xit", IDC_EXIT, 141,26,52,13
END
IDR_MENU1 MENU
BEGIN
POPUP "Test Controls"
BEGIN
MENUITEM "Get Text", IDM_GETTEXT
MENUITEM "Clear Text", IDM_CLEAR
MENUITEM "", , 0x0800 /*MFT_SEPARATOR*/
MENUITEM "E&xit", IDM_EXIT
END
END
ВНИМАНИЕ: В ТВОЕМ СКРИПТЕ НЕ ДОЛЖНО БЫТЬ ЭТИХ КОМЕНТАРИЕВ!!!
Давай проанализируем пример.
Этот пример показывает, как зарегистрировать диалоговый шаблон как класс окна и
создает "окно" из этого класса. Это упрощает программу, так как не нужно
создавать дочерние контролы самостоятельно. Проанализируем шаблон диалогового окна.
MyDialog DIALOG 10, 10, 205, 60
Объявление имя диалога, в данном случае - "MyDialog", за которым следует
ключевое слово "DIALOG". Следующие четыре номера - это x, y, ширина и высота
диалогового окна в специальных единицах (не в пикселях).
STYLE 0x0004 | DS_CENTER | WS_CAPTION | WS_MINIMIZEBOX |
WS_SYSMENU | WS_VISIBLE | WS_OVERLAPPED | DS_MODALFRAME | DS_3DLOOK
Объявление стилей диалогового окна. CAPTION "Our first DialogBox "
Это текст, который появится в title bar'е.
CLASS "DLGCLASS"
Это ключевая строка. Ключевое слово 'CLASS' позволяет нам использовать шаблон
диалогового окна в качестве класса окна. Следующее слово - это имя "класса окна".
BEGIN
EDITTEXT IDC_EDIT, 15,17,111,13, ES_AUTOHSCROLL | ES_LEFT
DEFPUSHBUTTON "Say Hello", IDC_BUTTON, 141,10,52,13
PUSHBUTTON "E&xit", IDC_EXIT, 141,26,52,13
END
Данный блок определяет дочерние элементы управления в диалоговом окне. Они
определены между ключевыми словами BEGIN и END. Более полную информацию можешь
получить или win32.hlp, или у меня, если нечего там не поймешь.
Очень важна эта строка - #include "resource.h", без неё ничего не получится. Она означает, что
при компиляции скрипта ресурсов необходимо "обратится" к файлу resource.h.
Если тебе интересно я смогу тебе ответить, что это за файл в следующий раз. Этот файл
находится в 10 туториале Iczelion'a, но во время компилирования скрипта он
должен быть в одной папке с RC, т.е. в папке "Bin".
2) Пишем вот такой код
;======================================
; В целом, это рабочий вариант.
; Если тебе не понятны какие-то "словеса"
; в программе, напише об этом,
; объясню по подробней.
;======================================
.386
.model flat,stdcall
option casemap:none
include masm32includewindows.inc
include masm32includeuser32.inc
include masm32includekernel32.inc
includelib masm32libuser32.lib
includelib masm32libkernel32.lib
DlgProc PROTO :DWORD,:DWORD,:DWORD,:DWORD
;======================================
; секция инициализированных данных
;======================================
.data
DlgName db "MyDialog",0
AppName db "Our Second Dialog Box",0
TestString db "Wow! I'm in an edit box now",0
;======================================
; секция неинициализированных данных
;======================================
.data?
hInstance HINSTANCE ?
CommandLine LPSTR ?
buffer db 512 dup(?)
;======================================
; секция констант
;======================================
.const
IDC_EDIT equ 3000
IDC_BUTTON equ 3001
IDC_EXIT equ 3002
IDM_GETTEXT equ 32000
IDM_CLEAR equ 32001
IDM_EXIT equ 32002
;======================================
; собственно код
;======================================
.code
start:
;======================================
; отсюда происходит вызов функций
;======================================
invoke GetModuleHandle, NULL
mov hInstance,eax
invoke DialogBoxParam, hInstance, ADDR DlgName,NULL,addr DlgProc,NULL
invoke ExitProcess,eax
;======================================================
;далее идет процедура ответственная за логику программы
;======================================================
DlgProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
.IF uMsg==WM_INITDIALOG
invoke GetDlgItem, hWnd,IDC_EDIT
invoke SetFocus,eax
.ELSEIF uMsg==WM_CLOSE
invoke SendMessage,hWnd,WM_COMMAND,IDM_EXIT,0
.ELSEIF uMsg==WM_COMMAND
mov eax,wParam
.IF lParam==0
.IF ax==IDM_GETTEXT
invoke GetDlgItemText,hWnd,IDC_EDIT,ADDR buffer,512
invoke MessageBox,NULL,ADDR buffer,ADDR AppName,MB_OK
.ELSEIF ax==IDM_CLEAR
invoke SetDlgItemText,hWnd,IDC_EDIT,NULL
.ELSEIF ax==IDM_EXIT
invoke EndDialog, hWnd,NULL
.ENDIF
.ELSE
mov edx,wParam
shr edx,16
.if dx==BN_CLICKED
.IF ax==IDC_BUTTON
invoke SetDlgItemText,hWnd,IDC_EDIT,ADDR TestString
.ELSEIF ax==IDC_EXIT
invoke SendMessage,hWnd,WM_COMMAND,IDM_EXIT,0
.ENDIF
.ENDIF
.ENDIF
.ELSE
mov eax,FALSE
ret
.ENDIF
mov eax,TRUE
ret
DlgProc endp
end start
3)
Затем не хитрым приемом из исходника получаем объектный файл.
Затем линкуем способом описанным выше.
Ну, вот в принцепе и все, наслаждайся результатом =).


Ответ отправлен: 14.12.2003, 18:39
Отправитель: SedHg


Отвечает fC

Добрый день, Serg!
Диалоговые окна by Ron Thomas
MASM | 32.72 kb
Hесколько пpимеpов использования диалоговых pесуpсов
http://www.wasm.ru/src/1/dialogs.zip
Удачи!

Ответ отправлен: 14.12.2003, 14:36
Отправитель: fC


 Вопрос № 4635

Привет, Эксперты!
Может быть, вопрос не совсем по теме, но именно здесь я видел ответы экспертов, которые знакомы с данной проблемой.
Не могли бы вы задать правильное направление раскопок:
Вопрос вот в чем:
Нужна схема двунаправленного преобразователя интерфейса - т.е. имеется от 9 до 22 устройств, сигнализирующих о своем состоянии нулем или еденицей (включено/выключено). Нужно собрать эту информацию по последовательному порту. Далее я программно анализирую ситуацию и так же должен по последовательному порту отдать команду устройствам на включение/выключение (другие от 9 до 22 выводов параллельного кода. Сколько будет точно устройств - пока не знаю, но где-то в таких пределах). Это конечно, не управление ядерной станцией, но ошибка тоже крайне не желательна :)
Заранее всем спасибо.



Вопрос отправлен: 14.12.2003, 10:00
Отправитель: Dmitry (dmitry_m@kmr.kuzbass.net)

[Следующий вопрос >>] [Список вопросов]

Отвечает PUSH

Приветствую Вас, Dmitry!Ну если устройств много, то компьютер должен как то идентифицировать их.
Вариантов может быть много,зависит от того, что за устройства,как они общаются
с компьютером (какой протокол) итд.Можно написать программу для компьютера, и микропрограммы для каждого устройства, где они по специальному протоколу
могли различать кому и что передается и повесить все на одну линию,или спаять
какую либо фиговину,которая по специальным командам с компа,переключала бы "связь"
от одного устройства к другому,для этого нужно немного разбираться в схемотехнике.
А что там у вас за агрегат такой?Разве стандартных схем и драйверов к вашему оборудованию
нету? %).


Ответ отправлен: 17.12.2003, 04:34
Отправитель: PUSH


 Вопрос № 4636

Здравствуйте, уважаемые эксперты! Хотелось бы задать вопрос по сокетам. Например есть структура
sin sockaddr_in
Нам нужно заполнить sin.sin_addr. В Perl есть inet_aton("smtp.mail.ru"). В ASM я помещаю в sin.sin_addr строку типа "194.60.68.10",т.е IP. Как я могу преобразовать строку "smtp.mail.ru" в IP? Спасибо!



Вопрос отправлен: 14.12.2003, 18:35
Отправитель: Mafia32

[Следующий вопрос >>] [Список вопросов]

Отвечает Case_X

пџяЂпёпІпµя‚яЃя‚пІяѓяЋ п’п°яЃ, Mafia32!
п’п°пј пЅпµп¶пЅпѕ пїпѕяЃп»п°я‚яЊ п·п°пїяЂпѕяЃ DNS яЃпµяЂпІпµяЂяѓ!

Ответ отправлен: 14.12.2003, 20:37
Отправитель: Case_X


Отвечает fC

Приветствую Вас, Mafia32!
Воспользуйся функцией gethostbyname, она вернет тебе список адресов хоста.
Загляни на http://www.wasm.ru/srclist.php?list=5 , тут много примеров работы с сетью на асме.
Удачи!

Ответ отправлен: 14.12.2003, 20:07
Отправитель: fC


Отвечает _vt

Здравствуйте, Mafia32!
В Winsock API есть функция inet_addr. Ну и функция atoh есть. В общем, RTFM...

*** E-Man - can help you***


Ответ отправлен: 15.12.2003, 03:15
Отправитель: _vt


 Вопрос № 4637

Добрый вечер!
Из одной задачи с 16 битны мкодом передаю управление дальним jmp'ом в другую с 32 битным кодом.
В первой использую MMX и все работает. После переключения первое же обращение к MMX вызывает ошибку #NM. При чтении интеловского мануала приожу к выводу, что бит TS из cr0 оказывается установленным после пререключения задачи и издевается надомной приводя к ошибке. Что он показывает. В мануле что-то говориться о сохранении MMX. Чтож там об этом говориться и как автоматически после переключения его сбрасывать ??? (как все догадались чистый PM)



Вопрос отправлен: 14.12.2003, 20:28
Отправитель: Alexej

[Следующий вопрос >>] [Список вопросов]

Отвечает ASMодей

Здравствуйте, Alexej!
Судя по всему этот бит специально используется при переключении задач для того, чтобы ОС могла сохранить регистры FPU предыдущей задачи. Делать это по-видимому должен обработчик того самого прерывания (исключения), которое у тебя выскакивает. Если тебе сохранять ничего не нужно, то по идее нужно просто сбросить этот бит командой CLTS и продолжить работу задачи.


Ответ отправлен: 15.12.2003, 07:14
Отправитель: ASMодей


Отвечает dr_dolphin

Доброе время суток, Alexej!
Рассказывать про сохранение состояния MMX при переключении задач слишком долго, а за сим я отсылаю Вас к Intel System Programming Guide (Volume 3 Intel Manuals) к разделу 12.5.1
Там все подробно написано....
Пока

Ответ отправлен: 15.12.2003, 08:42
Отправитель: dr_dolphin


 Вопрос № 4638

Здраствуйте!
Я читаю книжку Абеля и там есть одна программа которая не хочет компилироваться(код написан с ошибками).
Не могли бы вы исправить что не так.


Приложение:


Вопрос отправлен: 14.12.2003, 20:32
Отправитель: Иван

[Следующий вопрос >>] [Список вопросов]

Отвечает fC

Доброе время суток, Иван!
Держи!

Приложение:

Ответ отправлен: 14.12.2003, 21:03
Отправитель: fC


Отвечает Case_X

п”пѕп±яЂя‹п№ пґпµпЅяЊ, ппІп°пЅ!
п’пѕ пїпµяЂпІя‹я… пЁпґпµ пІя‹ пєпѕпјпїпёп»пёяЂяѓпµя‚пµ? п пІпѕ пІя‚пѕяЂя‹я… пєп°пєяѓяЋ пѕя€я‹п±пєяѓ пёпјпµпЅпЅпѕ пІя‹пґп°пµя‚ пєпѕпјпїпёп»яЏя‚пѕяЂ?

Ответ отправлен: 14.12.2003, 20:44
Отправитель: Case_X


 Вопрос № 4639

Здравствуйте, господа эксперты. Никто не ответил мне на мой предыдущий вопрос. Наверное я слишком много написал и ни у кого не хватило терпения дочитать до конца. Попробую ещё раз.
Нужно:
Нажатие на клавишу 0 порождает действие 0
Нажатие на клавишу 1 порождает действие 1
.
.
Нажатие на клавишу N порождает действие N
Отпускание клавиши 0 прерывает действие 0
Отпускание клавиши 1 прерывает действие 1
.
.
Отпускание клавиши N прерывает действие N
Делаю:
Читаю порт 60h получаю скан код
либо нажатия либо отпускания (это понятно) и
в соответствии с кодом порождаю действие или
прерываю его.

Получается:
Нажатие на клавишу 0 порождает действие 0 (ОК)
Нажатие на клавишу 1 порождает действие 1 (ОК)

Отпускание клавиши 0
прерывает действие 0 И (ВНИМАНИЕ БАГ !!!)
порождает действие 1.
Так быть не должно. Каждое действие должно управлятся ТОЛЬКО отведенной под него клавишей.
Помогите, пожалуйста.
Спасибо всем.



Вопрос отправлен: 14.12.2003, 23:29
Отправитель: Total_Lamer

[Следующий вопрос >>] [Список вопросов]

Отвечает _vt

Добрый день, Total_Lamer!
Возможно в обработчике прерывания, после обработки действия 1 не стоит выход из обработчика - сразу начинается обработка действия 2.

*** E-Man - can help you***


Ответ отправлен: 15.12.2003, 03:15
Отправитель: _vt


Отвечает SedHg

Приветствую Вас, Total_Lamer!
Я с удовольствием помогу, чем смогу, но для того что-бы
найти ошибку в программе необходим исходник, желательно
с комментариями. Так что, будет исходник, будет ответ,
а по этому письму ошибку найти сложнее, чем иголку в стогу сена %0.


Ответ отправлен: 15.12.2003, 21:56
Отправитель: SedHg


Отвечает dr_dolphin

Доброе время суток, Total_Lamer!
Вы действительно думаете, что можно ответить на Ваш вопрос БЕЗ ИСХОДНОГО ТЕКСТА ПРОГРАММЫ ? Пожалуйста для такого типа вопросов (что не работает в моей программе ???) приводите исходный текст программ plz...
Всего...

Ответ отправлен: 15.12.2003, 08:29
Отправитель: dr_dolphin


 Вопрос № 4640

Проверка связи
Приём, приём
Как слышно
Я что-то не получаю на свой e-mail ни одного письма с вопросами!!
Что за безобразие!
Я недавно сменил e-mail на другой
Но по моему что-то там не сработало
Что делать?!



Вопрос отправлен: 15.12.2003, 00:30
Отправитель: EI

[Следующий вопрос >>] [Список вопросов]

Отвечает fC

Приветствую Вас, EI!
А ответы хоть доходят? :)

Ответ отправлен: 15.12.2003, 00:50
Отправитель: fC


 Вопрос № 4641

наисал я текст первой проги в текстовом редакторе,методом найучного
тыка(в учебнике не было сказано как)превратил ее в файлы с расширением
:xrf,obj,map,lst,запустил(вот кстати текст:
CSEG segment
org 100h
Begin:
mov ah,9
mov dx,offset Message
int 21h
int 20h
Message db 'Hello, world!$'
CSEG ends
end Begin
а она гадина кроме вывода текста Hello, world! и каких-то странных
симовол вначале,сообщила об ошибке,типа программой предпринята попытка
исполнить недопустимую инструкцию.
Место ошибки 0000:0026
Прерывания: нет.
вот такая фигня.Подскажите и обьясните пожаааалуйста,уж очень охота
научиться!(причем кажись с каждой ошибкой все сильнее хочется овладеть
этим языком!)



Вопрос отправлен: 15.12.2003, 01:14
Отправитель: Фабиан

[Следующий вопрос >>] [Список вопросов]

Отвечает _vt

Здравствуйте, Фабиан!
По моему, не туда тыкал... Текст ты написал, сохранил с расширением .asm (надеюсь...) Теперь надо вызвать собственно ассемблер и линкер: команды их вызова надо вводить в командной строке Windows или DOS. После вызова команды tasm prog.asm (вместо prog.asm подставь имя файла, в котором сохранен текст программы) появится в том же каталоге файл prog.obj (ну или с другим именем, но с расширением obj) и это имя надо подставить в вызов линкера так: tlink /t prog.obj. Для того, чтобы получился prog.com, который собственно и будет программой, правильно все выводящей необходимо также: навыки работы с командной строкой, собственно ассемблер - я привел пример команд, если у тебя Turbo Assembler, в случае других команды будут иметь другой вид, ну и конечно мозги, они у тебя кажется есть.

*** E-Man - can help you***


Ответ отправлен: 15.12.2003, 03:15
Отправитель: _vt


Отвечает SedHg

Приветствую Вас, Фабиан!
Открою тебе большую тайну, в этом исходнике ошибок нет ;).
Ошибка кроется в другом. При компоновке объектного модуля (*.obj)
ты передаешь компановщику (tlink.exe) не те параметры,
т.е. вводишь не ту командную строку. Ты запусукаешь компоновщик
с параметрами, при которых, в итоге, получается exe-файл, а у тебя исходник
СОМ-файла.
Вот какая должна быть командная строка: TLINK.EXE prog01.obj /t/x, что-бы получить желанный *.СОМ.
И ещё если при трансляции (т.е. превращения исходника в объектный модуль) исходника
не вводить никаких параметров(TASM.EXE prog01.asm), то ты получишь только объектный модуль.
Остальные файлы с расширением: xrf,map,lst нукжны только, если ты собираешься
свою программу потом отлаживать в tdebug.exe, но насколько я понимаю смысл в отладке
такой программы, для тебя, отсутствует.
PS: Если тебе не совсем понятен мой ответ,пиши, постораюсь ответь более
понятно и пространно.


Ответ отправлен: 15.12.2003, 22:19
Отправитель: SedHg


Отвечает Artemy

Здравствуйте, Фабиан!
Странно... у меня сработало, а вообще было бы недурно
в начале программы написать
push cs
pop ds
...раз уж offset используешь.

Ответ отправлен: 16.12.2003, 10:42
Отправитель: Artemy


Отвечает fC

Добрый день, Фабиан!
Работает без проблем. Это COM файл, может ты его линкуешь не прально, попробуй tlink /t myprog,obj
Удачи!


Ответ отправлен: 15.12.2003, 08:39
Отправитель: fC


 Вопрос № 4642

По поводу вопроса 4469 - Тут пробегало письмо по поводу ограничений по возрасту - ну а я не мог не ответить =)
И еще: часто вижу вопросы, в ответе на которые можно просто кинуть ссылку на RusFAQFAQ: http://kalaidjian.narod.ru/rusfaq.rar
Эксперты же мучаются, напрягаются... непонятно...=)
С уважением
Тигран Калайджян
2:5020/4567.24



Вопрос отправлен: 15.12.2003, 13:53
Отправитель: Tigran Kalaidjian (kalaidjian@pochtamt.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает fC

Доброе время суток, Tigran Kalaidjian!
Не для того мы тут посажены, что бы всех в один УРЛ тыкать, время идет, все меняется. Новые люди, новые мысли и все такое.

Ответ отправлен: 15.12.2003, 19:23
Отправитель: fC


 Вопрос № 4643

Доброе время суток уважаемые эксперты. У меня вопрос по низкоуровневому доступу к CD-ROM. Никак не могу понять, можно ли добраться до данных на CD-ROM до их преобразования по алгоритму Рида-Соломона, или все что можно получить с привода - это уже частично или полностью обработанные кадры и секторы?
Т.е. хочется прочитать "сырые" данные (скажем EFM декодированные кадры) и проверять правильность их считывания (C1,С2) програмно, а не аппаратно.



Вопрос отправлен: 15.12.2003, 14:26
Отправитель: carbonoid

[Следующий вопрос >>] [Список вопросов]

Отвечает fC

Доброе время суток, carbonoid!
Могу только посоветовать книгу Владимира Кулакова «Программирование дисковых подсистем»
http://www.piter.com/book_about.phtml?id=978531800623&download=5-318-00623-X&web=1

Ответ отправлен: 15.12.2003, 19:28
Отправитель: fC


Отвечает Евгений Иванов

Приветствую Вас, carbonoid!
Также снова приветствую всех экспертов.
Я тут вылетел на недельку, из-за проблем с почтовым ящиком..
Так что я снова с вами со всеми!
Продолжаем...
Насчёт CD-ROM.
Эти данные обрабатываются аппаратно.
Бывай!
* EMan: -=- Любовь существует! =-=


Ответ отправлен: 15.12.2003, 14:44
Отправитель: Евгений Иванов


 Вопрос № 4646

Приветствую!
Очень прошу Вас помочь написать графическую програмку такого типа:
Выводятся 20 квадратов(рэндом их располодение по таймеру)
и мышкой их чтобы можно было удалять. Если квадрат нарисован поверх другого, то удалять верхний. Всё это дело в дос(ТАСМ,ехе), 320х200 - 256. Нужно на среду, не успеваю совсем, везде долгов полным полно:( помогите если кто может, буду очень благодарен. Взамен могу помочьсделать задание по яве или сиШарп:)после 23 числа.
Спасибо заранее.



Вопрос отправлен: 16.12.2003, 04:10
Отправитель: Igor (vzeek@takas.lt)

[Следующий вопрос >>] [Список вопросов]

Отвечает Евгений Иванов

Приветствую Вас, Igor!
Напишу завтра и отошлю до 14..
Игорь, а мне было трудно кинуть в ICQ?!
Поздно ты спохватился.. придётся поднапрячься... :)
* EMan: -=- Любовь существует! =-=


Ответ отправлен: 17.12.2003, 01:59
Отправитель: Евгений Иванов


Отвечает fC

Приветствую Вас, Igor!
Увы, но ты не один у кого сессия и догов не мер :(

Ответ отправлен: 16.12.2003, 16:02
Отправитель: fC


 Вопрос № 4647

Уважаемые эксперты, вопрос как грамотно в файле ресурсов прописать контрол для диалогового окна , а-ля прогрессбар, у меня чегой-то не получается , можно прямо с живым примером
Заранее вам благодарен.....



Вопрос отправлен: 16.12.2003, 10:46
Отправитель: greg

[Следующий вопрос >>] [Список вопросов]

Отвечает fC

Приветствую Вас, greg!
Я бы посоветовал использовать среду Microsoft Visual C++ для разработки ресурсов. В ней же можно на форму добавить Progress Bar.
В конечном счете, это выглядит примерно так:
CONTROL "Progress1", 1000, "msctls_progress32", WS_CHILD | WS_VISIBLE | WS_BORDER, 7, 7, 80, 14
А перед использованием Progress Bar’а, нужно вызвать функцию InitCommonControls, как и в случае с ListView, TreeView и т.д.
Удачи!

Ответ отправлен: 16.12.2003, 17:24
Отправитель: fC


Отвечает Gibbel

Приветствую Вас, greg!
А чем потом собирать этот файл ресурсов будешь??? Просто синтаксис у разных производителей очень сильно отличается. А вообще, рекомендую создавать файл ресурсов в какой-нить среде (например, Resource Workshop от Borland), а не писать ручками...

Ответ отправлен: 16.12.2003, 13:39
Отправитель: Gibbel



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (25)
C / C++ (17)
Perl (4)
Builder / Delphi (21)
Pascal (22)
Basic / VBA (3)
Java / JavaScript (5)
PHP (13)
Криптография (9)
WinAPI (11)
Пользователю
Windows 95/98/Me (37)
Windows NT/2000/XP (53)
"Железо" (25)
Поиск информации (19)
Администратору
Windows NT/2000/XP (27)
Linux / Unix (14)
Юристу
Гражданское право (12)
Семейное право (8)
Трудовое право (9)
КоАП (8)

Отправить вопрос всем экспертам выбранной рассылки.




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2003 Россия, Москва. Авторское право: Калашников О.А.


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное