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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.06.2009, 17:49   #1
Ferza
 
Регистрация: 23.06.2009
Сообщений: 4
По умолчанию использование директив условной компиляции

помогите, пожалуйста написать программу представления строки из n символов-цифр в виде 16-ти или 32-х разрядного числа в двоичной системе (в зависимости от длины строки). Фрагменты машинных команд для генерации кода необходимо выбирать с помощью директив условной компиляции.
на Вас вся надежда!!!!!! эта программа-необходимое условие допуска к экзамену!!!!!!
Ferza вне форума Ответить с цитированием
Старый 23.06.2009, 19:11   #2
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

пример есть тут
ну а я сочинил вот что.
Код:
.386
.model flat,stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc

includelib \masm32\lib\kernel32.lib
include \masm32\include\user32.inc
includelib \masm32\lib\user32.lib

.data
AppName	db 'bin2text',0
number equ 253
	IF number GE 65535
	stroka	db 32 DUP(30h)
	endstr	db 0
	ENDIF
	IFNDEF stroka
	stroka db 16 DUP(30h)
	endstr	db 0
	ENDIF
.code
start:
	mov ebx,2
	lea esi,endstr
	mov eax,number
	dec esi
next:
	xor edx,edx
	div ebx
	add dl,30h
	mov [esi],dl
	dec esi
	test eax,eax
	jnz next
	invoke MessageBox,0,addr stroka,addr AppName,MB_OK
end start
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 23.06.2009, 20:39   #3
Ferza
 
Регистрация: 23.06.2009
Сообщений: 4
По умолчанию

спасибо огромное!!!!!
Ferza вне форума Ответить с цитированием
Старый 24.06.2009, 00:18   #4
DEADHUNT
Пользователь
 
Регистрация: 23.10.2008
Сообщений: 48
По умолчанию

что за бред GE(if greater or equal), поэтому я в своём ассемблере сделал С выражения(с такими же операциями и приоритетами).

Последний раз редактировалось DEADHUNT; 24.06.2009 в 01:14.
DEADHUNT вне форума Ответить с цитированием
Старый 24.06.2009, 00:39   #5
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Цитата:
поэтому я в своём ассемблере сделал С выражения(с такимижи операциями и приоритетами).
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4

Последний раз редактировалось Goodwin98; 24.06.2009 в 00:45.
Goodwin98 вне форума Ответить с цитированием
Старый 24.06.2009, 00:48   #6
DEADHUNT
Пользователь
 
Регистрация: 23.10.2008
Сообщений: 48
По умолчанию

Цитата:
Сообщение от Goodwin98 Посмотреть сообщение
ещё бы так было бы
Код:
if cmp(a,b) je l0
....
l0:
DEADHUNT вне форума Ответить с цитированием
Старый 24.06.2009, 00:56   #7
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

может тода сразу?
Код:
if (a == b )
{
   l0:
    ......
}
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4

Последний раз редактировалось Goodwin98; 24.06.2009 в 01:06.
Goodwin98 вне форума Ответить с цитированием
Старый 24.06.2009, 01:05   #8
DEADHUNT
Пользователь
 
Регистрация: 23.10.2008
Сообщений: 48
По умолчанию

Цитата:
Сообщение от Goodwin98 Посмотреть сообщение
может тода сразу?
Код:
if (a == b )
   jmp l0;
все эти причуды masm`a мне не нравится, лучше С preprocessor
DEADHUNT вне форума Ответить с цитированием
Старый 24.06.2009, 01:08   #9
DEADHUNT
Пользователь
 
Регистрация: 23.10.2008
Сообщений: 48
По умолчанию

Цитата:
Сообщение от Goodwin98 Посмотреть сообщение
может тода сразу?
Код:
if (a == b )
{
   l0:
    ......
}
вообшем ты не вкурил про что я, вот пример для assembler x86-64
Код:
if defined(DEBUG) && (flags & 0x01 || !flags)
...
else
...
endif
DEADHUNT вне форума Ответить с цитированием
Старый 24.06.2009, 01:31   #10
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Не буду спрашивать, зачем вы все это здесь писали просто интересно, а какую роль в этом коде играет (flags & 0x01 || !flags) ?
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка компиляции ALEX INCORPORATEED Помощь студентам 7 14.09.2012 00:46
Ошибка компиляции С++ jeka101 Общие вопросы C/C++ 3 27.03.2009 19:16
Директивы компиляции joker Общие вопросы Delphi 3 10.06.2008 09:41
Опции компиляции satana Паскаль, Turbo Pascal, PascalABC.NET 1 15.10.2007 16:49