Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Jin X
4335 / 1354 / 161
Регистрация: 14.12.2014
Сообщений: 2,558
Записей в блоге: 7
Завершенные тесты: 2
1

Определение типа параметра в макросе

13.12.2016, 17:34. Просмотров 518. Ответов 2

Нужно определить - является ли параметр макроса константой. Как это можно сделать?
Если использовать .type, то он возвратит одно и тоже значение (24h) как для 1234h, так и для word ptr ds:[1234h].
Assembler
1
2
3
4
5
some macro a
  if (.type a) eq 24h
    ...
  endif
endm
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2016, 17:34
Ответы с готовыми решениями:

Вычисление квадрата параметра типа word
Условие: Дано число Y – слово. Вычислить Z = Y * Y. Подскажите пожалуйста,...

[NASM] Определить тип параметра в макросе
Ув. форумчане, подскажите, как определить тип параметра переданного в макрос, а...

Определение типа микропроцессора.
Алгоритм определения типа микропроцессора основывается на раз- личиях в...

Обобщенный класс с параметром типа (с ограничением для параметра типа)
• (4б). Создать обобщенный класс с параметром типа (с ограничением для...

Выполнить условие после нахождения ошибок в строке типа #н/д! #дел/0! т.д. (ошибка в макросе)
Здравствуйте уважаемые форумчане! Помогите найти ошибку в коде макроса и...

2
ФедосеевПавел
Модератор
3674 / 2042 / 843
Регистрация: 01.02.2015
Сообщений: 6,796
13.12.2016, 23:52 2
В примерах макросов masm32 - pomacros.asm есть такой
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  ; -------------------------------------
  ; variation returns address in register
  ; so it can be assigned to a variable.
  ; -------------------------------------
    repargv MACRO arg            ;; ANSI version
      LOCAL nustr
      IF (OPATTR arg) AND 8000h ;; is it a "string"...?
        .data
          nustr db arg,0        ;; write arg to .DATA section
        .code
        EXITM <ADDR nustr>      ;; append name to ADDR operator
      ELSE
        mov eax, arg
        EXITM <eax>             ;; else return arg
      ENDIF
    ENDM
Также, для masm32 (в macros.asm) встречал посимвольный разбор строк аргументов макроса.
1
Jin X
4335 / 1354 / 161
Регистрация: 14.12.2014
Сообщений: 2,558
Записей в блоге: 7
Завершенные тесты: 2
14.12.2016, 13:03  [ТС] 3
opattr - это аналог .type, в masm он показывает всё нормально (как и .type), а вот tasm, собака, его вообще не понимает, а .type выдаёт, как я уже говорил, не то, что надо...

Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
Также, для masm32 (в macros.asm) встречал посимвольный разбор строк аргументов макроса.
Гляну ещё, спасибо. Может, что-нибудь найду...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.12.2016, 13:03

Как написать условия в макросе так, чтобы диаграмма не меняла своего типа
Друзья. Задача такая, у меня есть макрос: For i = 1 To 65000 If...

Напишите перегруженную функцию power (), которая принимает два целочисленных параметра типа int и возвращает целочисленное значение типа int
Операции над целыми числами осуществляются быстрее, чем над числами с плавающей...

Определение вещественного числа и определение типа
Определить, является ли вводимая строка вещественным числом с целой и дробной...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru