.model small
.stack 100H
.data
A db ' this is a test $'
.code
mov ax, @data
mov ds, ax
mov si, 0
mov cx, 0
myloop:
cmp A[si], '$'
je final
cmp A[si], ' '
inc si
je count
jmp myloop
count:
inc cx
jmp myloop
final:
mov dx, cx
mov ah, 9
int 21h
end
質問する
978 次
1 に答える
0
後続の「inc si」による「空白」比較のフラグをオーバーライドします。
.model small
.stack 100H
.data
A db ' this is a test $'
.code
mov ax, @data
mov ds, ax
mov si, 0
mov cx, 0
myloop:
cmp A[si], '$'
je final
cmp A[si], ' '
jne do_not_count ; skip count if it's not a blank
count:
inc cx ; it is a blank, count it
do_not_count:
inc si
jmp myloop
final:
;mov dx, cx ; this does NOT print CX
;mov ah, 9
;int 21h
mov dl, cl ; workaround: this works for cx < 10
add dl, '0'
mov ah, 2
int 21h
end
于 2016-06-07T09:13:33.413 に答える