[Webinar] Streamline your web hosting managementRegister Today

x
?
Solved

_asm inside a #define

Posted on 1998-09-25
3
Medium Priority
?
914 Views
Last Modified: 2008-03-17
In MSVC 4.1 I can write the following code

      __asm {
            jb 0x01
            jb 0xf9
      }

If however I put it into a macro:-

#define OB3 __asm { \
      jb 01 \
      jb 0xf9 \
}

and then use the macro in my code:-

OB3;

I get an error on each use of the macro.

warning E4405 warning 'jb' is a reserved word
error C2400 inline assembler syntax error in 'first operator'; found 'constant'.

This seems to happen with any assembler I create. How can I generate assembler within a macro?
0
Comment
Question by:icd
3 Comments
 
LVL 1

Expert Comment

by:Bonev
ID: 1173762
What about the semicolon after the macro?
0
 
LVL 86

Accepted Solution

by:
jkr earned 200 total points
ID: 1173763
The problem is that the macro evaluates to a single line, i.e. __asm { jb 01 jb 0xf9}. Try
#define OB3\
__asm { jb 01}; \
__asm { jb 0xf9 };

0
 
LVL 5

Author Comment

by:icd
ID: 1173764
Thanks, that did it.
0

Featured Post

Never miss a deadline with monday.com

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction This article is the first in a series of articles about the C/C++ Visual Studio Express debugger.  It provides a quick start guide in using the debugger. Part 2 focuses on additional topics in breakpoints.  Lastly, Part 3 focuses on th…
Many modern programming languages support the concept of a property -- a class member that combines characteristics of both a data member and a method.  These are sometimes called "smart fields" because you can add logic that is applied automaticall…
The viewer will learn how to pass data into a function in C++. This is one step further in using functions. Instead of only printing text onto the console, the function will be able to perform calculations with argumentents given by the user.
The viewer will learn additional member functions of the vector class. Specifically, the capacity and swap member functions will be introduced.

591 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question