1
學習如何遍歷命令行參數,我想是這樣如何在不破壞它的情況下輸出ecx寄存器?
ARG [0]輸出:CMDL
ARG [1]:d:/test.src
ARG [2]:FOO
在循環中,我推送eax,epb和ecx,然後輸出arg值。然後彈出3個寄存器,遞增ECX,清理堆棧等
我有一個可變的.bss中保留:
c: resd 1
這是我的循環結構:
.do:
push ebp
push eax
push ecx
mov [c], ecx
push DWORD [ebx]
push DWORD [c]
push marg
call _printf
add esp, 8 ; clean up stack
pop ecx
pop eax
pop ebp
add ebx, 4 ; move to next arg
inc ecx ; increment counter
cmp ecx, eax
jne .do
在.data段,瑪格被定義爲這樣:
marg: db "arg[%d]: %s", 10, 0
這是我的電流輸出和該應用管芯:
ARG [0]:CMDL
ARG [7020225]:d:/test.src
ARG [7019969]:FOO
ARG [7019929]:(空)