我需要檢查是否給出了大量的參數。目前我的程序知道什麼時候沒有參數,什麼時候有兩個以上的參數。如果給出了一個,那麼它是不好的,但我的程序不會識別它。我不能做簡單的檢查,因爲在允許的時候有一種可能(當/?是參數時),並且cx隨着循環而改變。例如,如果我把它叫做prog /?,它應該打印說明,當我把它叫做prog arg1 arg2時,它應該被允許,但是prog arg1不應該。我如何檢查?當cx被修改時TASM檢查參數
mov ch, 0h
mov cl, [es:0080h]
push cx
cmp cx, 0
je print_description
mov bx, 81h
jmp search_help
jmp exit
search_help:
cmp [es:bx], '?/'
je print_description
inc bx
loop search_help
pop cx
cmp cx, 2
jne print_description
mov bx, 82h
mov si, offset input_filename
mov cx, 255
search_input_filename:
mov dl, [es:bx]
inc bx
cmp dl, 20h
je search_output_filename_prep
mov ds:[si], dl
inc si
loop search_input_filename
search_output_filename_prep:
mov si, offset output_filename
search_output_filename:
mov dl, [es:bx]
inc bx
cmp dl, 0Dh
je program
cmp dl, 20h
je print_description
mov ds:[si], dl
inc si
loop search_output_filename
這很容易,只是檢查你沒有找到2 /參數後,你有2個參數。 – Jester 2014-11-24 14:21:24
但mycx被改變,我不知道如何得到它比較,推動CX,然後彈出不起作用:( – Tomas 2014-11-24 15:04:11
推動和彈出應該工作,以及從內存中重新加載(或者甚至只是使用' cmp'與內存操作數) – Jester 2014-11-24 15:05:35