WEB开发网
开发学院软件开发汇编语言 了解汇编命令行参数 阅读

了解汇编命令行参数

 2008-10-14 09:35:10 来源:WEB开发网   
核心提示:在dos下带命令行执行程序是常有的事,在windows下也是如此,了解汇编命令行参数,如何正确的从命令行提取需要的数据,首先必须了解命令行,用于分析命令行参数可能出现的情况.386.model flat,stdcallOption CaseMap:noneinclude windows.incinclude kerne

在dos下带命令行执行程序是常有的事,在windows下也是如此,如何正确的从命令行提取需要的数据,首先必须了解命令行。本程序就是用来分析命令行参数的。

---------------------------------------------------------------
;文件名:14.asm
;取命令行参数并显示,用于分析命令行参数可能出现的情况
     .386
     .model flat,stdcall
     Option CaseMap:none
include windows.inc
include kernel32.inc
include user32.inc
include masm32.inc
includelib kernel32.lib
includelib user32.lib
includelib masm32.lib
     .data
szCaption  db "GetCommandLine",0
Fg     db ' ',0        ;空格(分隔符)
Crlf    db 13,10,0       ;回车换行
     .data?
Temp    db 10 dup(?)      ;用来临时存放数据
OutString  db 600 dup(?)      ;存放输出字符串
     .code
start:
     invoke GetCommandLine          ;取命令行参数
     mov esi,eax
     invoke lstrcat,addr OutString,eax    ;合并字符串
     invoke lstrcat,addr OutString,addr Crlf
     invoke lstrlen,esi           ;取字符串长度
     mov ecx,eax
     cld
L1:
     push ecx
     xor eax,eax
     lodsb
     invoke dw2hex,eax,addr Temp
     invoke lstrcat,addr OutString,addr Temp+6
     invoke lstrcat,addr OutString,addr Fg
     pop ecx
     loop L1
     invoke MessageBox,NULL,addr OutString,addr szCaption,MB_OK
     invoke ExitProcess,NULL
     end start
---------------------------------------------------------------

程序执行的结果:

1、编译成console后在dos提示符下执行

2、编译成windows后在dos提示符下执行

3、编译成console/windows后创建可执行文件的快捷方式,设立命令行参数

4、不带任何参数

---------------------------------------------------------------

结论:

1、命令行上可有多个数据项

2、各个数据项用一个或多个空格或制表符分隔

3、第一个数据项代表当前执行的程序名

4、第一个数据两边可能有双引号,也可能没有

5、引号内的程序名串中间可能有空格

6、若不带任何参数,则最后一个字符总是空格

Tags:了解 汇编 命令

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接