944,015 Members | Top Members by Rank

Ad:
  • Assembly Discussion Thread
  • Unsolved
  • Views: 13220
  • Assembly RSS
Feb 8th, 2007
0

c program convert to tasm

Expand Post »
Hello everyone, Im new in assembly language. I would like to ask your help to teach me how to convert the below C language into tasm language. thank you very much.

#include <stdio.h>
#include <dos.h>
main()
{
unsigned int year;
unsigned char month;
unsigned char day;
union REGS regin,regout;

clrscr();
regin.h.ah=0x2A;
/* intdos(&regin,&regout);*/ int86(0x21,&regin,&regout);
day=regout.h.dh;
year=regout.x.cx;
printf("Today's date is: %d-%d-%d\n",month,day,year);
return(0);
}
Similar Threads
Reputation Points: 10
Solved Threads: 0
Newbie Poster
faith07 is offline Offline
1 posts
since Feb 2007
Feb 9th, 2007
0

Re: c program convert to tasm

I'd write an assembler program that just printed out "Hello World" first. In doing that, you'll find you've built 70% of what that date printer does.
Reputation Points: 31
Solved Threads: 0
Light Poster
Purple Avenger is offline Offline
49 posts
since Jan 2007
Mar 3rd, 2007
-1

Re: c program convert to tasm

well i think you can't use much C lang stuff with tasm.. the reason is that it uses DOS and you know that it can only program 16 bit stuff not 32-bit.. so i got the same problem but just upgraded to masm.. there's inbuilt libraries available in that. or you can work with nasm/fasm.. try any.. have a nice day! good luck
Reputation Points: 10
Solved Threads: 3
Junior Poster in Training
mytime19 is offline Offline
50 posts
since Dec 2006
Mar 4th, 2007
0

Re: c program convert to tasm

Click to Expand / Collapse  Quote originally posted by mytime19 ...
well i think you can't use much C lang stuff with tasm.. the reason is that it uses DOS and you know that it can only program 16 bit stuff not 32-bit.. so i got the same problem but just upgraded to masm.. there's inbuilt libraries available in that. or you can work with nasm/fasm.. try any.. have a nice day! good luck
Nonsense! First, there are C compilers available for DOS. Second, TASM does support 32-bit code.

Nathan.
Reputation Points: 99
Solved Threads: 5
Junior Poster
Evenbit is offline Offline
140 posts
since Mar 2005
Mar 4th, 2007
0

Re: c program convert to tasm

Click to Expand / Collapse  Quote originally posted by faith07 ...
Hello everyone, Im new in assembly language. I would like to ask your help to teach me how to convert the below C language into tasm language. thank you very much.

#include <stdio.h>
#include <dos.h>
main()
{
unsigned int year;
unsigned char month;
unsigned char day;
union REGS regin,regout;

clrscr();
regin.h.ah=0x2A;
/* intdos(&regin,&regout);*/ int86(0x21,&regin,&regout);
day=regout.h.dh;
year=regout.x.cx;
printf("Today's date is: %d-%d-%d\n",month,day,year);
return(0);
}
Simple:

mov ah, 0x2A
int 0x21

You should find the 'day' in DH and the 'year' in CX.

Nathan.
Reputation Points: 99
Solved Threads: 5
Junior Poster
Evenbit is offline Offline
140 posts
since Mar 2005
Apr 17th, 2007
0

Re: c program convert to tasm

Click to Expand / Collapse  Quote originally posted by faith07 ...
Hello everyone, Im new in assembly language. I would like to ask your help to teach me how to convert the below C language into tasm language. thank you very much.

#include <stdio.h>
#include <dos.h>
main()
{
unsigned int year;
unsigned char month;
unsigned char day;
union REGS regin,regout;

clrscr();
regin.h.ah=0x2A;
/* intdos(&regin,&regout);*/ int86(0x21,&regin,&regout);
day=regout.h.dh;
year=regout.x.cx;
printf("Today's date is: %d-%d-%d\n",month,day,year);
return(0);
}


for this regarding DOS interrupt int21h u can refer any DOS or BIOS interrupt manuals, that clearly will explain u what are all the register that got affected after an interrupt in invoked. For printing the final result on the display you need to first of all convert the packed decimal value returned in any general purpose register in to proper string, just by dividing the entire decimal value by 10 and extracting the remainder to find out the character. Later u can use some other DOS int services or BIOS Display related services (int 10h) to display the actual character in the screen positioned.
-------------------------------
here is how it will look like.
-------------------------------
under data section you need to define the below mentioned things.
________________________________________________________
year dw 0
month db 0
day db 0

________________________________________________________
clrscr();
// Garni - for clearing the screen u can use any of the display set mode BIOS services.

regin.h.ah=0x2A;

// Garni - mov ah,2ah

/* intdos(&regin,&regout);*/ int86(0x21,&regin,&regout);

// Garni - int 21h

day=regout.h.dh;
// Garni - mov day,dh

year=regout.x.cx;
// Garni - mov year,cx

printf("Today's date is: %d-%d-%d\n",month,day,year);

// Garni - take care of printing the value as explained above.

return(0);

// Garni - for terminating the exe and for telling DOS the exe statsu we have another DOS service, refer to DOS and BIOS interrupt service manuals.
Last edited by Garni; Apr 17th, 2007 at 9:50 am.
Reputation Points: 10
Solved Threads: 1
Newbie Poster
Garni is offline Offline
8 posts
since Feb 2007
Aug 1st, 2007
0

Re: c program convert to tasm

Do we have a program which can convert C or C++ to assembly ?
Please give me a link for help me
Tanks a lot
Reputation Points: 10
Solved Threads: 0
Newbie Poster
dr.m is offline Offline
1 posts
since Aug 2007
Aug 1st, 2007
0

Re: c program convert to tasm

Click to Expand / Collapse  Quote originally posted by dr.m ...
Do we have a program which can convert C or C++ to assembly ?
Please give me a link for help me
Tanks a lot
Yes, these programs are called compilers. You can find a nice list of C and/or C++ compilers here:
http://www.thefreecountry.com/compilers/cpp.shtml

Study the command-line options... most have a switch or two to allow you to specify the assembly language output.
Reputation Points: 99
Solved Threads: 5
Junior Poster
Evenbit is offline Offline
140 posts
since Mar 2005
Oct 30th, 2010
0
Re: c program convert to tasm
how convert masm program into tasm program
Reputation Points: 10
Solved Threads: 0
Newbie Poster
baazy is offline Offline
1 posts
since Oct 2010
Dec 20th, 2011
0

please give me pseudo code for given program

main()
{
int i,j;
int a[10];
while(i<=9) a[i]=0;
while(j<=5) a[i]=5;
}
Reputation Points: 10
Solved Threads: 0
Newbie Poster
neha afreen is offline Offline
1 posts
since Dec 2011
Message:
Previous Thread in Assembly Forum Timeline: getting byte data to print as string
Next Thread in Assembly Forum Timeline: doubt with sidt instruction





About Us | Contact Us | Advertise | Acceptable Use Policy
Forum Index | Build Custom RSS Feed


Follow us on Twitter


© 2011 DaniWeb® LLC