Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.01.2017, 22:56   #11
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Это кто так решил?
Голос разума...

Цитата:
inc в асме могут содержать всё, что угодно, в т.ч. сами функции. Или Вы такого не встречали?
Я много чего встречал и include cpp в С++... но к теме это не имеет никакого отношения. Даже если вы там напишите функции и не будете использовать - линкер их выкинет из результата.
p51x вне форума Ответить с цитированием
Старый 07.01.2017, 23:13   #12
7in
(aka Jin X) !RTFM!
Форумчанин
 
Аватар для 7in
 
Регистрация: 14.12.2014
Сообщений: 295
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Даже если вы там напишите функции и не будете использовать - линкер их выкинет из результата.
Да? А давайте проведём небольшой эксперимент.
Простая прога (под DOS):
Код:
.model tiny
.code
.startup

		call	Proc1

		int	20h

include		some.inc

end
И some.inc:
Код:
Proc1		proc
		mov	ah,9
		lea	dx,Used
		int	21h
		ret
Proc1		endp

Proc2		proc
		mov	ah,2
		mov	dl,'.'
		int	21h
		ret
Proc2		endp

.data
Used		db	'Hello world!',13,10,'$'
NotUsed		db	'Bye world!',13,10,'$'

.code
Ну и для Windows (MASM32):
Код:
.586P
.MODEL Flat,StdCall
OPTION CASEMAP:NONE

INCLUDE		WINDOWS.INC
INCLUDE		KERNEL32.INC
INCLUDE		USER32.INC
INCLUDELIB	KERNEL32.LIB
INCLUDELIB	USER32.LIB

.CODE

Start:

		call	Proc1

		invoke  ExitProcess, NULL

include		some32.inc

END		Start
some32.inc:
Код:
.data
Used		db	'Hello world!',13,10
NotUsed		db	'Bye world!',13,10
Result		dd	?

.code

Proc1		proc
		invoke	GetStdHandle, STD_OUTPUT_HANDLE
		invoke	WriteFile, eax, addr Used, lengthof Used, addr Result, 0
		ret
Proc1		endp

Proc2		proc
		invoke	MessageBox, 0, 0, 0, MB_OK or MB_ICONWARNING or MB_TASKMODAL or MB_SETFOREGROUND
		ret
Proc2		endp
Теперь скомпилируйте обе проги и загляните внутрь – будут ли там Proc2 и NotUsed?
Делаю лабы на Asm/Delphi/C++/Python/VBA(Excel): asmlabs.ru
7in вне форума Ответить с цитированием
Старый 09.01.2017, 22:56   #13
7in
(aka Jin X) !RTFM!
Форумчанин
 
Аватар для 7in
 
Регистрация: 14.12.2014
Сообщений: 295
По умолчанию

Версия 1.01. Добавил пару нюансов
Цитата:
v1.01 (09.01.2017)
[+] Добавлена проверка версии callx: для этого ПЕРЕД включением файла callx.inc в проект нужно определить константу callx_ver_req, хранящую минимально требуемую версию callx.
[*] Все примеры переведены из кодировки Windows-1251 в DOS-866.
Вложения
Тип файла: zip callx_1.01.zip (37.2 Кб, 5 просмотров)
Делаю лабы на Asm/Delphi/C++/Python/VBA(Excel): asmlabs.ru

Последний раз редактировалось 7in; 10.01.2017 в 00:06.
7in вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Эллипс в DOS (masm, tasm, fasm) Mikl___ Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 14 13.12.2014 09:06
Номер первого положительного числа / Assembler, MASM, TASM schibeki Помощь студентам 1 04.03.2014 12:13
Конвертер с языка masm на язык tasm максат Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 14.06.2011 14:27
Обьясните различия между - FASM, WASM, VASM, MASM, TASM Amancha Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 9 17.01.2009 15:38
Чем отличается Tasm от Masm veter_s_morya Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 17 21.07.2008 16:55