怎么编写带命令行参数的汇编程序

如何编写带命令行参数的汇编程序?
汇编作业要求,麻烦各位高手指点一下


------解决方案--------------------
命令行参数在 PSP:0080h 开始的地方,首字节为后面参数有效的字符个数,从0081开始就是整个参数部分的内容,程序得自己扫描整个参数串。进行需要的处理。想是获得参数的个数的话,就是统计由空格字符(20h)以及制表位字符(09h)分割的区块数了。

所谓PSP,就是程序前缀段,程序一开始的时候,DS和ES段地址都指向该PSP段。比如

start : mov ax, ds:[80h]; ax 为PSP:0080H内容

剩下的就是字符串的处理了。
------解决方案--------------------
上面说得有点出入,是0082h开始为参数。
我给鑫妹写了个示例,给你,并告诉你执行的步骤,用我给你的那个QASM就可以啦,嘿嘿。

Assembly code

        CODE  SEGMENT
              ASSUME    CS:CODE,DS:CODE
              ORG       100H

        MAIN  PROC      FAR
      START:  MOV       SI,80H      ; 指向psp的80h处
              LODSB                 ; 获取参数长度,记录在 al 中
              XOR       AH,AH
            ADD       SI,AX       ; SI指向参数末尾
              MOV       BYTE PTR [SI],0DH       ; 回车
              MOV       BYTE PTR [SI+1],0AH     ; 换行
              MOV       BYTE PTR [SI+2],24H     ;'$'

              MOV       DX,82H      ; 命令行参数首地址
              MOV       AH,09H
              INT       21H

              MOV       AH,4CH
              INT       21H

              RET
        MAIN  ENDP
        CODE  ENDS
              END       MAIN

------解决方案--------------------
对了……

你不用将exe转为com的话也可以。

命令:
e:\noname libo sunlixin
将显示
libo sunlixin

之所以转为 com,是因为 com 的四个段处于一个段内,都指向PSP,文件的入口必须是100H,较符合上述约定,而且执行快。exe四个段可以不在同一个段内,执行慢。
------解决方案--------------------
学习!
------解决方案--------------------
win32下用
 invoke GetCommandLine
invoke MessageBox,NULL,eax,addr szCaption,MB_OK
这样不可以么?