汇编语言程序设计实验-----子程序设计

2025-04-07 15:57:46
推荐回答(1个)
回答1:

data segment
string db 'abc$'
text db 'hiaabckabiiabcyyfabcds$'
output db 'count=$'
count db 3
db ?
db 3 dup(?)
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
mov bx,offset count
mov cl,0
mov si,offset string
mov di,offset text
mov al,[si]
l0: mov ah,[di]
cmp ah,'$'
jz l4
cmp ah,al
jz l1
inc di
jmp l0
l1: inc si
inc di
mov al,[si]
mov ah,[di]
cmp al,'$'
jz l3
cmp ah,'$'
jz l4
cmp ah,al
jnz l5

jmp l1
l3: inc cl
l5: mov si,offset string
mov al,[si]

jmp l0
l4: mov ah,09h
mov dx,offset output
int 21h
mov dl,0dh ;回车
mov ah,02h
int 21h
mov dl,0ah ;换行
mov ah,02h
int 21h
add cl,30h
mov [bx],cl
inc bx
mov ah,'$'
mov [bx],ah
mov ah,09h
mov dx,offset count
int 21h
mov ah,4ch
int 21h
code ends
end start
微机作业还是自己动手比较好