0

文字が 0 ~ 9、AZ、az の間であるかどうかを確認するにはどうすればよいですか? cmp char 'A' または cmp char '0' などを使用できることは理解していますが、3 つの異なる範囲をチェックする必要がある場合は、どうすればよいですか?

'A'<= C <= 'Z' かどうかを確認する必要がある場合は、まず文字値が A 未満かどうかを確認し、次にそれが Z 以下かどうかを確認する必要があります。 A の下では、ロジックを台無しにせずにそれを説明するにはどうすればよいですか? z は Z の上にあるため、Z についても同じことが言えます。これまでのロジックで投稿します。単純なものを手に入れられないのはとてもばかげていると思いますが、私は初心者で、これに数日間取り組んできましたが、最初からやり直さなければならないので、どんな助けも大歓迎です.

_asm
{
   mov ecx, 127
   mov esi, 0
   mov ebx,LocalBuffer[esi] ;LocalBuffer is a c++ array 

Loop1:
   cmp ebx, 'a'     ;ebx is the 0'th index value of LocalBuffer
   jb notLowercase  ;If character value is below 'a'
   cmp ebx,'z'
   jbe CharCount    ;if it's less than or equal to 'z' 
   cmp ebx,'A'
   jb notUpperCase ;If less than 'A', but then won't this discard 0-9?
   cmp ebx,'Z'
   jb CharCount    ;If it's less than 'Z', but what about greater than Z?
   cmp ebx,'0'
   jb NotDigit     ;If less than '0'
   cmp ebx,'9'
   jb CharCount    ;What if it's greater than 9?


notLowerCase:  
;DO I LOOP BACK TO LOOP1, MOVE ON TO THE NEXT CHARACTER OR SOMETHING ELSE? 

notUpperCase:
;SAME ISSUE AS NotLowerCase

notDigit:
;SAME ISSUE AS LAST 2

CharCount:
;Do something


4

2 に答える 2