Karl168 发表于 2008-3-5 14:47

带参数的命令如何用汇编写呀

我们知道在C语言中用这样的语句main(int argc,char *argv[])可以使编译出来的工具带参数使用.如在CMD窗口中打入find /?就会看到find指令的使用方法.
可是在汇编中如何编写这样带参数使用的命令呢?
请各位大虾指点迷津啊!!!!!!!!!!!!!

紫霞轻舞 发表于 2008-3-13 18:47

参数都是放在psp段前缀(好像是这么说滴)里的。
参数个数存于80H,从文件名后的空格开始的参数从81H开始存的。
说不清出,具体操作如下
START: MOV AX,DATA
       MOV ES,AX
       MOV SI,80H
       MOV DI,OFFSET TEMP
       MOV CX,05H
       REP MOSB
;
       ASSUME DS:DATA
       MOV AX,****H
       MOV DS,AX
;

至此,参数全部存入temp字符串中,第一个为参数的长度。以后依次以参数的ASCII码形式存入。
例如:D:>TEMP.EXE 123
则temp的字符串为04H(空格加三个字符,共四个),20H(空格的ASCII码),31H(1的ASCII码),32H(2的ASCII码),33H(3的ASCII,码)

rediums 发表于 2008-3-13 22:02

提供一个解决方法,不知道可以不可以,楼主可以自己试试:
首先我们都知道在C语言里面如何获取参数,只需写一个最简单的带参数的C程序,然后看看它的反汇编代码就可以了(如果是用VS的话调试的时候就可以直接看到反汇编代码了)

jlu_windy 发表于 2008-3-17 23:27

大概有三种方法.
想知道的可以用二楼的方法查看哦.

Karl168 发表于 2008-3-19 09:25

谢谢大家的帮忙啦

页: [1]

编程论坛