delphi写的程序可以在DOS下运行吗?(200分)

  • 主题发起人 主题发起人 ccdarkness
  • 开始时间 开始时间
C

ccdarkness

Unregistered / Unconfirmed
GUEST, unregistred user!
我想在dos下操作一个文本文件,我新建了一个console application,
在windows下可以运行,windows的CMD下也可以运行,但是在纯dos不可以运行,要怎么修改
或者delphi写的程序根本不能在纯dos下运行

我试着用trubo pascal编译,但是出错,在trubo pascal下怎么嵌入汇编代码?
谢谢!不知道也帮顶一下,ok!!!

完整代码如下:
//嵌入汇编代码,为了生成的程序小些
procedure CvtInt;
asm
OR CL,CL
JNZ @CvtLoop
@C1: OR EAX,EAX
JNS @C2
NEG EAX
CALL @C2
MOV AL,'-'
INC ECX
DEC ESI
MOV [ESI],AL
RET
@C2: MOV ECX,10

@CvtLoop:
PUSH EDX
PUSH ESI
@D1: XOR EDX,EDX
DIV ECX
DEC ESI
ADD DL,'0'
CMP DL,'0'+10
JB @D2
ADD DL,('A'-'0')-10
@D2: MOV [ESI],DL
OR EAX,EAX
JNE @D1
POP ECX
POP EDX
SUB ECX,ESI
SUB EDX,ECX
JBE @D5
ADD ECX,EDX
MOV AL,'0'
SUB ESI,EDX
JMP @z
@zloop: MOV [ESI+EDX],AL
@z: DEC EDX
JNZ @zloop
MOV [ESI],AL
@D5:
end;

function IntToStr(Value: Integer): string;
asm
PUSH ESI
MOV ESI, ESP
SUB ESP, 16
XOR ECX, ECX
PUSH EDX
XOR EDX, EDX
CALL CvtInt
MOV EDX, ESI
POP EAX
CALL System.@LStrFromPCharLen
ADD ESP, 16
POP ESI
end;

var
f: textfile;
begin
assignfile(f, 'c:/WATTCP.CFG');
rewrite(f);
Randomize;
writeln(f, 'IP=192.' + inttostr(Random(255)) + '.' + inttostr(Random(255)) + '.' + inttostr(Random(255)));
writeln(f, 'NETMASK=255.255.255.0');
writeln(f, 'GATEWAY=192.168.0.1');
CloseFile(f);
end.
 
begin...end;还是要的,标号好象不支持?不使用中断在dos下应该可以运行。
 
帮顶。学习
 
刚去网上找了些trubo pascal的资料写了一个
var
f:text;
begin
assign(f,'c:/wattcp.cfg');
rewrite(f);
randomize;
write(f,'ip=192.');
write(f,random(255));
write(f,'.');
write(f,random(255));
write(f,'.');
writeln(f,random(254)+1);
writeln(f,'NETMASK=255.255.255.0');
write(f,'GATEWAY=192.168.0.1');
close(f);
end.
现在在dos下运行问题是解决了,但是在delphi下怎么编写dos程序?

to newsmile
可以写个实例吗?
 
路过,旁听。
 
听不懂[:D]
 
不懂:(
 
其实汇编我也不懂,只是多按了个ctrl就出来了,不信试试[:D]
 
Delphi 1.0 来编译嘛
 
兄弟你说的太高深了,听不懂啦
 
to jfet
谢谢,试试看
 
trubo pascal里标号能这么写么?只有Delphi下支持吧。
@CvtLoop

@ 不是指取址符么?看看用 Label 标签定义个
如: Label CvtLoop; //这样写试试,让编译器来将其转化为地址,而不是直接取址
begin
asm
...
CvtLoop:
...
end;
end;
 
delphi下是不能直接编写dos程序的,如果您一定要编写可以借助wdosx,参考 http://www.delphibbs.com/delphibbs/dispq.asp?lid=3305549
http://tippach.business.t-online.de/wdosx/
 
多人接受答案了。
 

Similar threads

I
回复
0
查看
865
import
I
I
回复
0
查看
761
import
I
I
回复
0
查看
738
import
I
I
回复
0
查看
825
import
I
后退
顶部