读入文本,(文本里有汇编程序,)运行,并返回指定寄存器的值 (对于完美解决的别开贴给300分重谢,其它的为本题分数中给)(100分)

  • 主题发起人 主题发起人 3304xfq
  • 开始时间 开始时间
3

3304xfq

Unregistered / Unconfirmed
GUEST, unregistred user!
在一程序中调入一文本

文本内有如
mov ax,bx
jmp 1313231
cmp ax,dx

(最好能够读入程序中的变量,像pascal中内置Asm那样)
或者是程序中有一函数或过程
abc(a:integer,b:boolean):integer
begin
代码
asda
end;

在程序中调用abc(1,ture) //有点像DLL,但是想让代码能够灵活点,能够随时自定义
或者说是给用户有个扩展的余地,必竟DLL不能用记事本修改,而如果是文本那简单多了

如果DELPHI自带了功能,并且文本的语言规范是Delphi那更好
 
你是不是想让程序执行你文本上的内容?
 
调用dos命令 Type aaa.txt|debug
 
结果可以生成的另一个文本
Type aaa.txt|debug >bbb.txt
 
to andy263 你傻的??
 
你是想实现:在程序中解释执行文本中的汇编代码以及显示指定寄存器的内容?
我的qq:71892967,我帮你写一个代码!且加详细注释。我以前在dos用c作过一个解释执行器
但是,目前我没空(在作别的程序),要等一个星期后才能帮你做,可以吗??
 
你的意思是:在文本框输入mov ax,45; 按一下按钮组件,就在程序中实际
的去执行一条mov ax,45的机器代码?还有,就是按另一个按钮时显示ax的当
前值?

这个是可以实现的,但是关键问题不在这,实际上你那条mov ax,45执行后ax
确实在刚执行后会变为45,但当你按另外一个按钮时,看到的可能不是45,你
知道为什么吗?我解释给你听啊。

在delphi每次asm...end,好象都会将AX等寄存器清零。所以难以实现。(不知别的朋友有办法吗?教我)
即使不清零也不行,因为当我们移动鼠标到另一个按钮上并单击,会诱发程序
作出大量响应动作,在此期间,就有可能导致ax的值变化!那么显示出来的ax
值也就不准确了.

不如我有空时帮你做一个可以解释执行汇编语言程序的虚拟机吧?如果作好了,
将是windows环境下学习汇编语言的好帮手!(目前没空)

另外你将那函数什么意思?就是在delphi制作的程序,读入包含函数源代码文件就可在程序调用这个函数?这是不可能的。
 
to 刘麻子:

对于读入pascal代码 运行是可以的!!,用IPS,dws2可以,但这要装第三方的控件,不好!!而且这两个也不好用,不灵活

我是想自己编写代码实现,或者说想知道一下Delphi是不是本身有这个功能或者已经为这提供了接口
也好让我编程时不用走弯路
 
to 3304xfg:
您好!
用IPS,dws2可以在程序运行中读入源代码并调用其中的函数?
还是,只是可以运行其中的程序?还是其他什么意思?
 
如果真能做到就可以写一个编译器了
 
真的能做到啊,不是编译器啊,只是解释执行啊,basic都可以,汇编语言写的程序为什么
不行?其实解释执行很简单的啊,只是没时间搞,不好意思啊.等等我啊
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部