User Name Password Register
DaniWeb IT Discussion Community
All
What is DaniWeb IT Discussion Community?
You're currently browsing the Assembly section within the Software Development category of DaniWeb, a massive community of 332,574 software developers, web developers, Internet marketers, and tech gurus who are all enthusiastic about making contacts, networking, and learning from each other. In fact, there are 2,117 IT professionals currently interacting right now! Registration is free, only takes a minute and lets you enjoy all of the interactive features of the site.
Please support our Assembly advertiser:
Views: 279 | Replies: 10
Reply
Join Date: Apr 2008
Posts: 31
Reputation: Spagett912 is an unknown quantity at this point 
Rep Power: 1
Solved Threads: 0
Spagett912's Avatar
Spagett912 Spagett912 is offline Offline
Light Poster

C++ Multiplication in Assembly

  #1  
8 Days Ago
I'm trying to translate the following code from C++ into Asembly language but am having trouble. I know that I have to make a cmp and one or more jmp. If any1 has sugguestions or tips thats great. Here's the C++ coding:

int x = 1 * 2;
    int y = 3 * 4;

    cout << "x = " << x << endl;
    cout << "y = " << y << endl;

    if (x == y)
        cout << "x and y are the same." << endl;
    else
        cout << "x and y are not the same." << endl;

    
    return 0;
AddThis Social Bookmark Button
Reply With Quote  
Join Date: Dec 2005
Posts: 2,642
Reputation: Salem is a splendid one to behold Salem is a splendid one to behold Salem is a splendid one to behold Salem is a splendid one to behold Salem is a splendid one to behold Salem is a splendid one to behold Salem is a splendid one to behold 
Rep Power: 16
Solved Threads: 275
Colleague
Salem's Avatar
Salem Salem is offline Offline
void main'ers are DOOMed

Re: C++ Multiplication in Assembly

  #2  
8 Days Ago
Is there anything wrong with the output of
g++ -S prog.cpp
Use it as a guide for your own attempt.
If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
Reply With Quote  
Join Date: May 2008
Posts: 10
Reputation: kermitaner is an unknown quantity at this point 
Rep Power: 1
Solved Threads: 1
kermitaner kermitaner is offline Offline
Newbie Poster

Re: C++ Multiplication in Assembly

  #3  
7 Days Ago
  1. include /masm32/include/masm32rt.inc
  2. ;compile with masm32 console link & compile
  3. .data
  4. x dd 1*2
  5. y dd 3*4
  6. .code
  7. start:
  8. print "x="
  9. print str$(x),13,10
  10. print "y="
  11. print str$(y),13,10
  12. invoke cmpmem,addr x,addr y,sizeof x
  13. .if (eax!=0)
  14. print "equal",13,10
  15. .else
  16. print "not equal",13,10
  17. .endif
  18. exit
  19. end start

probably not what u expected ;-) but using a HL Macro Assembler, the difference to other languages ( c) is not so big as one would assume ....
Reply With Quote  
Join Date: Apr 2008
Posts: 31
Reputation: Spagett912 is an unknown quantity at this point 
Rep Power: 1
Solved Threads: 0
Spagett912's Avatar
Spagett912 Spagett912 is offline Offline
Light Poster

Re: C++ Multiplication in Assembly

  #4  
7 Days Ago
Ummm, yeah that isn't really what I expected lol since I'm using the Kip Irvine files. Btw sorry I think I forgot to mention we can't use .IF statements lol.
Reply With Quote  
Join Date: Dec 2005
Posts: 2,642
Reputation: Salem is a splendid one to behold Salem is a splendid one to behold Salem is a splendid one to behold Salem is a splendid one to behold Salem is a splendid one to behold Salem is a splendid one to behold Salem is a splendid one to behold 
Rep Power: 16
Solved Threads: 275
Colleague
Salem's Avatar
Salem Salem is offline Offline
void main'ers are DOOMed

Re: C++ Multiplication in Assembly

  #5  
7 Days Ago
> I'm using the Kip Irvine files.
And now you're only telling us this?

> I forgot to mention we can't use .IF statements lol.
More restrictions on the solution, is there anything else you should be telling us?

Post YOUR attempt.
If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
Reply With Quote  
Join Date: Apr 2008
Posts: 31
Reputation: Spagett912 is an unknown quantity at this point 
Rep Power: 1
Solved Threads: 0
Spagett912's Avatar
Spagett912 Spagett912 is offline Offline
Light Poster

Re: C++ Multiplication in Assembly

  #6  
6 Days Ago
Wow i'm really sorry about all that. I was looking at a different program that I wasn't allowed to use .IF statements. So thanks for the help I'll check out what u gave me now.
Last edited by Spagett912 : 6 Days Ago at 2:19 pm.
Reply With Quote  
Join Date: Apr 2008
Posts: 31
Reputation: Spagett912 is an unknown quantity at this point 
Rep Power: 1
Solved Threads: 0
Spagett912's Avatar
Spagett912 Spagett912 is offline Offline
Light Poster

Re: C++ Multiplication in Assembly

  #7  
6 Days Ago
Ok now the only problems i'm getting is that cmpmem is an undefined symbol and print is undefined as well. Finally i have this error unmatched block nesting : main
Reply With Quote  
Join Date: May 2008
Posts: 10
Reputation: kermitaner is an unknown quantity at this point 
Rep Power: 1
Solved Threads: 1
kermitaner kermitaner is offline Offline
Newbie Poster

Re: C++ Multiplication in Assembly

  #8  
6 Days Ago
my code is for the original masm32 package, u can find some download links here
http://www.masm32.com/masmdl.htm
make sure to install in top level of ur drive, otherwise the standard include paths won't work.

there are two files: build.bat and buildc.bat in the /bin directory, the later is the correct one for console apps.

the print macro is a very useful macro, located in include file: /macros/macros.asm, see description in
help file: /help/hlhelp.hlp - Console Mode Macros - print

the cmpmem is a routine located in /include/masm32.inc and the corresponding library is
/lib/masm32.lib ,
see description in /help/masmlib.hlp - Memory Functions - cmpmem
( both functions/macros are available through the
include /masm32/include/masm32rt.inc
line only )


it might be a good idea to check some step by step assembly tutorials first, before getting too deep into some programming tasks to early.
though i don't think that assembler is much more difficult than other programming languages, it sure is different and the learning curve in the beginning takes more time than with other languages.
its better to spend more time with the basics in the beginning, than wasting too much time with error fixing when u take the second step before the first...
Reply With Quote  
Join Date: Apr 2008
Posts: 31
Reputation: Spagett912 is an unknown quantity at this point 
Rep Power: 1
Solved Threads: 0
Spagett912's Avatar
Spagett912 Spagett912 is offline Offline
Light Poster

Re: C++ Multiplication in Assembly

  #9  
6 Days Ago
Is there some other way to output information other than using the "Print" command?
Reply With Quote  
Join Date: May 2008
Posts: 10
Reputation: kermitaner is an unknown quantity at this point 
Rep Power: 1
Solved Threads: 1
kermitaner kermitaner is offline Offline
Newbie Poster

Re: C++ Multiplication in Assembly

  #10  
5 Days Ago
u can try:
invoke crt_printf,addr msg
or with the irvine libs:
;lea edx,msg
;call Writestring
Reply With Quote  
Reply

Only community members can participate in forum threads. You must register or log in to contribute.

Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)

 

DaniWeb Assembly Marketplace
Thread Tools Display Modes

Similar Threads
Other Threads in the Assembly Forum

All times are GMT -4. The time now is 12:37 am.
Forum system based on vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
©2003 - 2008 DaniWeb® LLC