Greg.Smith@bohemia.UUCP (Greg Smith) (11/01/90)
St>renaming .exe file to .com files, and .com to .exe. St>Imagine my suprize St>when they all still worked! This is not right by my St>knowledge of dos. St>Btw, I am using dos 3.3 with 4dos 4.03a. (If 4Dos 4.03a is around I would like to know. I have 3.02a) The extensions of the files are mainly there for our referance. The way the computer differentiates (sp) between the files is the header at the beginning of the file. on EXE's an "MZ" will be the first two bytes in the file, while com files start out with actual code. Also, following the MZ is a Program Segment Prefix(PSP) which defines many other needs, and memory/stack useage terms. Greg --- QuickBBS 2.64 (Eval) * Origin: Bohemia BBS system (303)449-8946 (200:5000/301) -- Greg Smith - via MetroNet node 200:5000/301 For best results, reply via UUCP: ...!boulder!bohemia!Greg.Smith
lsalomo@hubcap.clemson.edu (lsalomo) (11/02/90)
From article <92.2730D05F@bohemia.UUCP>, by Greg.Smith@bohemia.UUCP (Greg Smith): > The extensions of the files are mainly there for our referance. The way the > computer differentiates (sp) between the files is the header at the > beginning of the file. on EXE's an "MZ" will be the first two bytes in > the file, while com files start out with actual code. Also, following the > MZ is a Program Segment Prefix(PSP) which defines many other needs, and > memory/stack useage terms. Not meaning to start a big discussion, but following the .EXE id ('MZ' as you pointed out) is a header (NOT THE PSP) which describes the size of the code in pages, the entry point, etc. plus the relocation table which the loader uses to do any segment fixups before jumping to the entry point. Cheers, Q - the "Q"uestor for knowledge (, a degree, etc.) lsalomo@hubcap.clemson.edu ibmman@clemson.clemson.edu ============================================================================= "Gee Wally, I think there's something wrong with the Beaver." =============================================================================
37KGLLQ@CMUVM.BITNET (Tony Papadimitriou) (11/05/90)
Joe Fischer writes: >An EXE file is usually quite a bit larger than a .COM file that does >the same thing, especially if the program is written to load fast and >run fast, and nothing can run as fast as a straight forward .COM file. ^^^^^^^^^^^^^^^^^^^^^^^ Execution speed is irrelevant to the program's type (.COM or .EXE). > . . . While .COM files can be produced >in a number of different ways, an EXE file can only be produced by a >compiler. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .EXE programs can be produced in as many ways as .COM programs. If certain compilers happen to not support either .COM or .EXE files that does not mean only a compiler can produce .EXE files.
del@fnx.UUCP (Dag Erik Lindberg) (11/15/90)
In article <27016@cs.yale.edu> buddington-paul@cs.yale.edu (Paul Buddington) writes: >convert it to a .COM file and run it. (The reverse is also true - you cannot >run the .EXE file from which you generate a .COM file either.) The problem I just posted a contradiction of this in another newsgroup, isn't that a coincidence? Fact is, if the EXE file is produced correctly, it will run as either an EXE or as a COM. Zortech C, for example, generates programs up to 64k which will run as either EXE or can be converted to COM and run in that format. See the end of this article for a small example generated by Zortech C. >addition, multi-segmented files can only be in the .EXE format. This is also not strictly true. It is true that you cannot have a stack segment, but a data segment can be used, if you are tricky, allowing your program to have 64k program and 64k combined stack/data. Here is an EXE file that runs, and can also be converted to COM. You will just have to trust me when I say that larger, more complex programs also work fine in either mode. begin 664 hello.exe M35I$ D " ( __\ 0 ' M M M M M M ZP&0^KAZ#04/ +D$ -/HC,D#P8[8C 9: 2:+ M'BP B1Y' 8O8*QY: 8D>K0 FBQX" "O8@?L $'(#N_\/B] #TT*Q!-/CCM"+ MXX'KP@* _P)S!KK" .G> ?NT,,TAHUP!/ )S!KKU .G, 08?%@>^@ #\K#+D MB\B_P@+SI#+ JHS0CMA'@^?^B3ZE ,<%JE6^P@*[ @"L/#UU"H,^; $ = /H M+P$*P'0_NB )/"!TYCP)=.(\(G0$/"=U!8K0BO!&@_M =@:Z$ 'I:P%.B;=A M (/# JP*P'0/.L)T!#K&=?,RP(A$_^NNT>N)'F$!QP9C 6$ BQYL 0O;=0.[ M ""!^P "<P.[ *)'FP! QZE '(J@\,1<B6 X_")'JD B1ZK +$$T^N)'J< M QZM (X&6@'ZM$K-(1X'<P?[NL( Z?4 BR:K /N#/FX! '0AN/#_*P:I %#H M1@-;/?__= H% @!0Z,4"6^L&QP9N 0 Z"< '@>YP@*_I (KS^,$,L#SJC/M MZ,8 _S9C ?\V80'HL0!0Z&P Z%@#@#Y< 0-R,XX&1P$S_S+ N?___/*NKG7[ M@\<"B_>Y___RKO?9@^'^6ROAB_P&'Q8'\Z06'XDF80#_X\._"@ SR:P*P'0? M/"!T&SP)=!<L,'@.F#O'<PF1]^=R! /(<^&ZV #K.HD.; '#BQZE ($_JE5U M*(O$*\-V(CLFJP!W',-:*^!V%HL>I0"!/ZI5=0P[XW8(.R:K ',"_^*ZKP"T M"<TAN $ 4.@6 "X3 %0Z.T"1$3#M##-(:-< >@L ,. /FH! '0+H&4!Q19F M ;0ES2&T,,TA/ )R"8OLBD8"M$S-(?\V6@$SP%#+OZ0"@?^D G8.@^\$BP4+ M10)T\/\=Z^R_I *!_Z0"=@N#[P*+#>/S_]'K[\._I *!_Z0"=@N#[P*+#>/S M_]'K[[^D H'_I )V#H/O!(L%"T4"=/#_'>OLP[IV ;0)S2&X 4S-(56+[(M& M!(M>!H/[ 70$]^-R(U#H- "+Y0O =!=7C-J.PHOXB]"+3?[1Z4DSP/SSJXO" M7UW#,\!=PXO<_W<$Z D 6YD+P'0"C-K+58OL5E>+1@0% P E_O\]! !R5[T" M (LV< &+SNL&B_<[\70HBSP[ W?T=!(#Q3L#= PKQ0$$BS2+"RO(B0J'!8D$ MB39T 8T#7UY=PST 7,#N !4.@6 5L]__]T# 4" %#HE0!;7U[KES/ Z]I5 MB^R+1@8+P'4$7>M_D(M>! O;=0A0Z'G_B^5=PX/K HL/!0, )/XKR'(8@_D$ M<@Z)!P/8B0^#PP)3Z$\ 6XM&!.L[_W8&Z$G_B^4+P'0M4%97BW8$C-F.P8OX MBTS^.TW^=@.+3?[1Z4G\\Z7_=@3H&@"#Q )?7@O 6'0",\!=PXO<_W<$Z 0 M@\0"RU6+[%97BUX$"]MT7KT" #L>JP!V6SL>J0!S5?;# 750*]V+!XLV= $[ M\W('OG !ZP*+]XL\._-S-SO[=P0[_G?PBPH#SCO+=00! NL)B4<"B3^)'(OS MB39T 8L" \8[QW4(BP6)!(L# 0(SP%]>7</I/?X 58OLBUX$@\,/@^/P=0/K M-I"+T[$$T^N+RP,>IP!R)X'[_P]W(0,>K0 &C@9: ;1*S2$'<A2AJ0"+V(D7 M 1:I $.IP!=P[@( *-> ;C__UW# %6)Y5:#/L " '03ZP?_T(,&P +^BQ[ M HL'"<!U[^B=_;Z, >L/]D0&@W0&5NA8 $1$@\8.@?ZD G+K_W8$Z";]1$1> M7<-5B>56BW8$ZQJXF@%0B@284.AZ (/$!(/X_W4&N $ 7EW#1H \ '7AN)H! M4+@* %#H6P"#Q 2#^/^X 0!T 4A>7<-5B>565XMV! GV=0>X__]?7EW#,?^+ M3 ;VP8-T%_;!!'4(5NA:!41$B<?_= CHIP1$1 G'5NC, ;@. % QP%!6Z+4 M@\0&B\=?7EW#58OLBD8$BUX&/ IT%5W_3P)X/8O7BS^.1PRJB3^+^C+DP_9' M!P%T"[ -Z.'_BD8$BUX&]D<&0'34Z-+_4/]V!NCQ!(/$ @O 6'0#N/__7<.# M?P+_=;U34.BC 8/$!,-5B^R+7@3_3P)X(HO6BS>,V8Y?#*R.V3+DB3>+\O9' M!P%T"#P-=-\\&G047<.#?P+_==A3Z*4"B^4+P'3&7<.X__^ 3P80QT<" != MPU6+[%>,VH["BWX$BTX(XP6*1@;SJHM&!%]=PP!6OHP!ZQ2+1 :H@W0*J$!T M!E;H5P1$1(/&#H'^I )RYE[#58GEN "4(-^!@!T YCK [@$ %#_=@;_=@3H M!0"#Q A=PU6)Y597BW8$BWX*5NB= (-^" 1U%HO&+8P!N0X F??Y!:0"B40$ MOP$ ZUR+1@B#^$!T! G =4F+1@:)1 0)P'5&@SYN 0!T)8O'@\ /N00 T^A0 MZ&P$1$2)1 P)P'4(@?\ G8(ZQF 3 <$ZPU7Z._[1$2)1 0)P'0&@$P&".L' MN/__7UY=P_9$!P1U!NC HE$#(M$!(D$BT0&)+L+1@B)1 :)? HQP%]>7<-5 MB>56BW8$B][V1 8(="*+1 0)P'0(4.B4_$1$ZQ.#? P = W_= SH/ 1$1(%D M!O?[,<")!(E$!(E$"HE$ HE$#%Y=P@( 58GE@^P$5E>+7@:+1P:H@'0')/X, M HE'!HM>!HM'!HE&_B4R (/X G0#Z?\ BT;^J 1T+[@! %"-1@10BUX&_W<( MZ!$"@\0&@_@!= /IU0"+7@;'1P( (M&!##D7UZ+Y5W#@W\$ '5F@W\, '5@ MB<:!YD0 =0(Q]K\ HM>!O]W".B# D1$"<!T!;Y .L#OP!05U8QP%#_=@;H M</Z#Q @)P'1(N "4%:84/]V!NA<_H/$" G =#2X 0!0L 10,<!0_W8&Z$7^ M@\0(Z67_BUX&BS>+1P0K\'02_W<,5E#_=PCH= &#Q @[QG4XBUX&BT<$B0>X M 0!0C48$4(M>!O\W_W<,Z*\"@\0(BUX&_P>+7@:+1PI(B4<"BT8$,.1?7HOE M7<.+7@: 3P8@BUX&QT<" "X__]?7HOE7<-5B>6#[ 165XMV!(M$!JB = <D M_0P!B40&B]Z+1 :)1OXE,0"#^ %T ^FF (-\! !U8H-\# !U7(M^_H'G1 !U M C'_]\<$ '03N $ 4+ $4#' 4%;H>OV#Q CK./]T".AI 41$"<!T [] (/_ M0'02N !04%>84%;H5OV#Q @)P'02N "4%>84%;H1/V#Q @)P'6U]D0&1'0# MZ/#\BT0$B03_= S_= I0_W0(Z%, @\0(B40""<!_)PG =1& 3 80BT0&J(!T M"H!D!M_K!(!,!B#'1 ( +C__U]>B^5=PS' 7UZ+Y5W# +0_58OLBUX$BU8& MBTX(S2%S!:-> 1O 7<.T/U6+[(M>!(M6!HM."!Z.7@K-(1_KX+1 Z\ZT0.OC MC-C#58OLM#V*1@:+5@3-(>O&58OL,\GK!E6+[(M.!K0\BU8$S2%S!:-> 1O M7<-5B^R+7@2T/LTAZQR058OL5[16C-N.PXM^!NL&58OL5[1!BU8$S2%?77,# MHUX!&\##58OLBUX$BU8&BTX(BD8*M$+-(7,&HUX!&\"97<-5'H/L+(OLB]6T M<ABU8RN08 M$[-(7(,BU8<BT8:@\0L'UW#HUX!&\"9Z_*+W(M? K@ 1,TA M]7,?BL*8BL3#B]RX $.+5P+-(7(-]D<$ G2.T.ESBK@% .N"58GE5E>+=@2+ M1 8E)@"#^ )U.(-\! !U!H-\# !T+(L\BT0$*_AT%O]T#%=0_W0(Z/'^@\0( M.\=T!(!,!B"+1 J)1 *+1 2)!.L%QT0" #V1 8@= 6X___K C' 7UY=PP!5 MB^R+3@KC%597C-B.7@2+=@:.P(M^"/.DCMA?7EW#58OLBTX*XP]65XY&!(M^ M!HMV"/.D7UY=PU6+[(M>!+1(S2%S!:-> 3/ 7<-5B^S_=@3HY/^+Y0O ="Q7 MB]B.P(M.!.,?@>'_#W4#N0 0*4X$T>'1X='A,_^+Q_.KC, % !#KVE^+PUW# M58OLCD8$M$G-(7,#HUX!&\!=PU6+[,1>!+1*S2%S Z-> 8O#7<-5B^Q65QZ. M1@2.7@:+7@B+R^,G@>'_#W4#N0 0*]G1X='AT>$S_S/V\Z6,P 4 $([ C-@% M !".V.O5'U]>7<-5B^R[__^T2,TA<@V.P+1)S2$>![O__^L*/0@ = 6C7@$S MVXO#,]*Y! #1X-'2XOI=PP !%4E)/4CH@3E5,3"!P;VEN=&5R %IO M<G1E8V@@0R R+C P(&QI8G)A<GDL($-O<'ER:6=H=" H0RD@,3DX."PQ.3@Y M(%,L('=R:71T96X@8GD@5V%L=&5R($)R:6=H= 8 M M #0I3=&%C:R!/=F5R9FQO=PT*) T*3F]T(&5N M;W5G:"!M96UO<GD-"B0-"D)A9"!S=&%C:R!S:7IE('!A<F%M971E<@T*) T* M1$]3(#$N>'@@;F]T('-U<'!O<G1E9 T*) T*36%X(&]F(#,R(&%R9W,@86QL M;W=E9 T*) T*3E5,3"!F=6YC=&EO;B!P;VEN=&5R#0HD $AE;&QO M(%=O<FQD+@H " ! ' ! !P 0T*2&5A<"!I M<R!C;W)R=7!T960-"B0 ! 0 0 (! 0 ! M !@$" $ " 0, 0 (!! ! M M M M 8 end -- del AKA Erik Lindberg uunet!pilchuck!fnx!del Who is John Galt?
sonny@charybdis.harris-atd.com (Bob Davis) (11/15/90)
In article <773@fnx.UUCP> del@fnx.UUCP (Dag Erik Lindberg) writes: >In article <27016@cs.yale.edu> buddington-paul@cs.yale.edu (Paul Buddington) writes: >>convert it to a .COM file and run it. (The reverse is also true - you cannot >>run the .EXE file from which you generate a .COM file either.) The problem > >I just posted a contradiction of this in another newsgroup, isn't that >a coincidence? Fact is, if the EXE file is produced correctly, it will >run as either an EXE or as a COM. Zortech C, for example, generates >programs up to 64k which will run as either EXE or can be converted to >COM and run in that format. See the end of this article for a small >example generated by Zortech C. > Okay. I must be doing something wrong. For the following simple assembly language program, if I MASM it and LINK it to produce HELLO.EXE and then run HELLO.EXE, my system prints some garbage with the desired "HELLO, WORLD." message embedded in it. And then my system hangs, requiring reboot. If I EXE2BIN the HELLO.EXE file into HELLO.COM, then HELLO.COM runs fine. Why won't my .EXE file run as well as my .COM file? Thanks. ;************************************************************************** ; CodeSeg segment assume cs:CodeSeg,ds:CodeSeg ; org 100h ;ORG for all COM programs. ; ; Print Message: Entry: mov dx,Offset Msg ;dx points to message. mov ah,09h ;DOS Fcn. 09h=Display String. int 21h ;Display String via DOS. ; ; Terminate program: int 20h ; Msg: db 0Dh,0Ah db 'HELLO, WORLD.' db 0Dh,0Ah db 0Dh,0Ah,'$' ; CodeSeg ends end Entry ______________________________________________________________________________ Bob Davis, UofALA'66 \\ INTERNET : sonny@trantor.harris-atd.com | _ _ | Harris Corporation, ESS \\ UUCP : ...!uunet!x102a!trantor!sonny |_| |_| | | Advanced Technology Dept.\\ AETHER : K4VNO |==============|_/\/\/\|_| PO Box 37, MS 3A/1912 \\ VOICE : (407) 727-5886 | I SPEAK ONLY | |_| |_| | Melbourne, FL 32902 \\ FAX : (407) 729-2537 | FOR MYSELF. |_________|
sverrehu@ifi.uio.no (Sverre Holmsen Huseby) (11/15/90)
In EXE-programs, DS should be set before referencing data. Try this: Entry: mov ax, cs mov ds, ax : Sverre H. Huseby (sverrehu@ifi.uio.no) Student - University of Oslo, Norway