;实训汇编语言以格式“SUNXXXX”显示一段英文中SUN出现的次数。

data segment

STO db 100 dup(?)

Tip db 'Please enter a sentence include SUN:',13,10,'$'

SUN db 13,10,'SUN'

NUM db 4 dup(?),'$'

data ends

stack segment stack

str dw 256 dup(?)

stack ends

code segment

main proc far

assume ds:data,cs:code,ss:stack

start:

push ds

sub ax,ax

push ax

mov ax,data

mov ds,ax

mov ax,stack

mov ss,ax

lea dx,Tip

mov ah,9

int 21h

lea dx,STO

mov [STO],100

mov ah,0ah

int 21h

mov cx,word ptr[STO+1]

mov ax,0

mov bx,2

L1:

cmp [STO+bx],'S'

je L2

inc bx

loop L1

jmp next

L2:

inc bx

cmp [STO+bx],'U'

je L3

dec cx

jmp L5

L3:

inc bx

cmp [STO+bx],'N'

je L4

sub cx,2

jmp L5

L4:

inc ax

L5:inc bx

dec cx

jnz L1

next:

sub ax,2

mov ch,4

mov cl,4

lea bx,NUM

L6:

rol ax,cl

mov dx,ax

and dx,0fH

add dl,30h

cmp dl,39h

jle L7

add dl,07h

L7:

mov [bx],dl

inc bx

dec ch

jnz L6

L8:

lea dx,SUN

mov ah,9

int 21h

ret

main endp

code ends

end start